{"version":3,"sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../../src/util/json.ts","../node_modules/react/jsx-runtime.js","../../src/google/protobuf/any.ts","../node_modules/long/src/long.js","../../src/@terra-money/wallet-types/types.ts","../../src/@terra-money/wallet-types/errors.ts","../../src/@terra-money/wallet-types/wallet.ts","../../src/@terra-money/wallet-types/lcd.ts","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../src/index.ts?0e3e","../../src/browser.ts","../../src/json.ts","../../src/local.ts","../../src/mobile.ts","../../src/constants.ts","../../src/encoding.ts","../../src/misc.ts","../../src/validators.ts","../../src/ethereum.ts","../../src/payload.ts","../../src/url.ts","../../src/session.ts","../node_modules/protobufjs/minimal.js","../node_modules/buffer/index.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/webpack/buildin/global.js","../node_modules/tslib/tslib.es6.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../node_modules/inherits/inherits_browser.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../src/internal/util/isFunction.ts","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../src/@terra-money/web-extension-interface/models/states.ts","../../src/@terra-money/web-extension-interface/models/tx.ts","../../src/@terra-money/web-extension-interface/errors.ts","../../src/@terra-money/wallet-controller/exception/isError.ts","../../src/index.ts","../../src/constants/length.ts","../../src/constants/default.ts","../../src/constants/operations.ts","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/process/browser.js","../../src/internal/util/pipe.ts","../../src/internal/Observable.ts","../node_modules/safe-buffer/index.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../../src/cosmos/base/v1beta1/coin.ts","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../../src/core/Coins.ts","../../src/client/lcd/api/BaseAPI.ts","../../src/core/numeric.ts","../../src/internal/operators/OperatorSubscriber.ts","../../src/@terra-money/use-wallet/useWallet.ts","../../src/@terra-money/use-wallet/useConnectedWallet.ts","../../src/@terra-money/wallet-controller/getChainOptions.ts","../../src/@terra-money/wallet-provider/WalletProvider.tsx","../../src/core/index.ts","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../src/core/Coin.ts","../../src/core/ibc/msgs/client/Height.ts","../node_modules/elliptic/lib/elliptic/utils.js","../../src/internal/util/lift.ts","../../src/internal/observable/innerFrom.ts","../../src/internal/util/executeSchedule.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/internal/config.ts","../../src/lib/browser.ts","../../src/errors.ts","../../src/events.ts","../../src/storage.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/types.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/errors.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/modal.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/modal.style.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/connect.ts","../../src/ibc/core/channel/v1/tx.ts","../node_modules/bn.js/lib/bn.js","../node_modules/hash.js/lib/hash/utils.js","../../src/@terra-money/wallet-controller/utils/browser-check.ts","../../src/internal/util/UnsubscriptionError.ts","../../src/internal/Subscription.ts","../../src/google/protobuf/timestamp.ts","../../src/core/PublicKey.ts","../node_modules/events/events.js","../../packages/react-router-dom/index.tsx","../../src/internal/util/errorContext.ts","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../src/internal/util/noop.ts","../../src/internal/NotificationFactories.ts","../../src/internal/Subscriber.ts","../node_modules/protobufjs/src/util/minimal.js","../../src/cosmos/gov/v1beta1/gov.ts","../../src/ibc/core/client/v1/client.ts","../../src/terra/wasm/v1beta1/tx.ts","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/minimalistic-assert/index.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/mode.js","../../src/error.ts","../../src/internal/util/isReadableStreamLike.ts","../node_modules/hash-base/node_modules/readable-stream/errors-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/sha.js/hash.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/errors-browser.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../src/internal/util/createErrorClass.ts","../../src/internal/symbol/observable.ts","../../src/browser/index.ts","../../src/internal/operators/map.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/@terra-money/wallet-controller/modules/legacy-extension/createFixedExtension.ts","../../src/@terra-money/wallet-controller/modules/legacy-extension/LegacyExtensionConnector.ts","../../src/@terra-money/wallet-controller/modules/extension-router/modal.ts","../../src/@terra-money/wallet-controller/modules/extension-router/modal.style.ts","../../src/@terra-money/wallet-controller/modules/extension-router/types.ts","../../src/@terra-money/wallet-controller/modules/extension-router/session.ts","../../src/@terra-money/wallet-controller/modules/extension-router/ExtensionRouter.ts","../../src/cosmos/staking/v1beta1/tx.ts","../../src/cosmos/staking/v1beta1/staking.ts","../../src/cosmos/tx/signing/v1beta1/signing.ts","../node_modules/core-util-is/lib/util.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/jscrypto/index.js","../../src/helpers/index.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/impl/socket-transport/index.ts","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../src/internal/util/arrRemove.ts","../../src/internal/util/identity.ts","../../src/@terra-money/wallet-controller/modules/extension-router/multiChannel.ts","../../src/internal/operators/observeOn.ts","../../src/internal/operators/subscribeOn.ts","../../src/internal/scheduled/scheduleAsyncIterable.ts","../../src/internal/scheduled/scheduled.ts","../../src/internal/scheduled/scheduleObservable.ts","../../src/internal/scheduled/scheduleArray.ts","../../src/internal/scheduled/schedulePromise.ts","../../src/internal/scheduled/scheduleIterable.ts","../../src/internal/scheduled/scheduleReadableStreamLike.ts","../../src/internal/observable/from.ts","../../src/internal/util/args.ts","../../src/internal/util/isScheduler.ts","../node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js","../../src/@terra-money/wallet-controller/modules/readonly-wallet/storage.ts","../../src/@terra-money/wallet-controller/modules/readonly-wallet/connect.ts","../../src/@terra-money/wallet-controller/modules/readonly-wallet/modal.ts","../../src/@terra-money/wallet-controller/modules/readonly-wallet/modal.style.ts","../../src/cosmos/distribution/v1beta1/tx.ts","../../src/core/feegrant/allowances/BasicAllowance.ts","../../src/google/protobuf/duration.ts","../../src/cosmos/gov/v1beta1/tx.ts","../../src/cosmos/upgrade/v1beta1/upgrade.ts","../../src/core/staking/Validator.ts","../../src/util/hash.ts","../../src/ibc/core/client/v1/tx.ts","../../src/ibc/core/connection/v1/tx.ts","../../src/ibc/core/channel/v1/channel.ts","../../src/core/ibc/msgs/channel/Packet.ts","../../src/cosmos/tx/v1beta1/tx.ts","../../src/cosmos/crypto/multisig/v1beta1/multisig.ts","../../src/core/Tx.ts","../../src/core/SignatureV2.ts","../node_modules/process-nextick-args/index.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/axios/lib/cancel/Cancel.js","../../src/@terra-money/wallet-controller/operators/toConnectedWallet.ts","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../src/internal/util/reportUnhandledError.ts","../../src/internal/scheduler/timeoutProvider.ts","../../src/internal/util/isInteropObservable.ts","../../src/internal/util/isArrayLike.ts","../../src/internal/util/isPromise.ts","../../src/internal/util/isAsyncIterable.ts","../../src/internal/util/isIterable.ts","../../src/internal/symbol/iterator.ts","../../src/internal/util/throwUnobservableError.ts","../../src/@terra-money/wallet-controller/env.ts","../../src/@terra-money/wallet-controller/exception/mapExtensionTxError.ts","../node_modules/mobile-detect/mobile-detect.js","../../src/core/Msg.ts","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../../src/core/feegrant/allowances/index.ts","../../src/cosmos/feegrant/v1beta1/feegrant.ts","../../src/core/feegrant/allowances/PeriodicAllowance.ts","../../src/core/authz/authorizations/index.ts","../../src/cosmos/authz/v1beta1/authz.ts","../../src/cosmos/authz/v1beta1/tx.ts","../../src/terra/oracle/v1beta1/tx.ts","../node_modules/bech32/dist/index.js","../../src/ibc/core/connection/v1/connection.ts","../../src/core/ibc/msgs/connection/Version.ts","../../src/core/CompactBitArray.ts","../../src/core/auth/BaseAccount.ts","../node_modules/create-hash/browser.js","../node_modules/util-deprecate/browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/ripemd160/index.js","../node_modules/sha.js/index.js","../node_modules/cipher-base/index.js","../node_modules/readable-stream/readable-browser.js","../node_modules/readable-stream/node_modules/safe-buffer/index.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/hash.js/lib/hash.js","../node_modules/typeforce/native.js","../node_modules/axios/lib/defaults/index.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/object-assign/index.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/secp256k1/elliptic.js","../node_modules/is-typedarray/index.js","../node_modules/query-string/index.js","../node_modules/bowser/es5.js","../../src/internal/util/ObjectUnsubscribedError.ts","../../src/internal/Subject.ts","../../src/internal/BehaviorSubject.ts","../node_modules/protobufjs/src/writer.js","../node_modules/protobufjs/src/reader.js","../../src/core/bank/msgs/index.ts","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../src/cosmos/bank/v1beta1/tx.ts","../../src/cosmos/bank/v1beta1/bank.ts","../../src/core/distribution/msgs/index.ts","../../src/core/feegrant/msgs/index.ts","../../src/core/feegrant/allowances/AllowedMsgAllowance.ts","../../src/cosmos/feegrant/v1beta1/tx.ts","../../src/core/gov/msgs/index.ts","../../src/core/gov/Proposal.ts","../../src/core/distribution/proposals/index.ts","../../src/core/params/proposals/index.ts","../../src/core/params/ParamChange.ts","../../src/cosmos/params/v1beta1/params.ts","../../src/core/gov/proposals/index.ts","../../src/core/gov/Vote.ts","../../src/core/market/msgs/index.ts","../../src/terra/market/v1beta1/tx.ts","../../src/core/authz/msgs/index.ts","../../src/core/authz/authorizations/StakeAuthorization.ts","../../src/core/authz/authorizations/SendAuthorization.ts","../../src/core/authz/authorizations/GenericAuthorization.ts","../../src/core/oracle/msgs/index.ts","../node_modules/jscrypto/SHA256.js","../../src/core/oracle/msgs/MsgAggregateExchangeRatePrevote.ts","../../src/core/slashing/msgs/index.ts","../../src/core/staking/msgs/index.ts","../../src/tendermint/types/types.ts","../../src/tendermint/crypto/proof.ts","../../src/tendermint/crypto/keys.ts","../node_modules/isarray/index.js","../../src/core/wasm/msgs/index.ts","../../src/core/ibc-transfer/msgs/index.ts","../../src/core/ibc/msgs/client/index.ts","../../src/core/ibc/msgs/connection/index.ts","../../src/core/ibc/msgs/connection/Counterparty.ts","../../src/ibc/core/commitment/v1/commitment.ts","../../src/core/ibc/msgs/channel/index.ts","../../src/core/ibc/msgs/channel/Channel.ts","../../src/core/Fee.ts","../../src/cosmos/base/abci/v1beta1/abci.ts","../../src/cosmos/auth/v1beta1/auth.ts","../../src/core/auth/LazyGradedVestingAccount.ts","../../src/cosmos/vesting/v1beta1/vesting.ts","../../src/terra/oracle/v1beta1/oracle.ts","../../src/core/staking/Delegation.ts","../../src/core/staking/Redelegation.ts","../../src/key/Key.ts","../../src/key/MnemonicKey.ts","../node_modules/md5.js/index.js","../node_modules/hash-base/index.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha512.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/create-hmac/browser.js","../node_modules/create-hash/md5.js","../node_modules/bs58check/index.js","../node_modules/webpack/buildin/module.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/brorand/index.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/typeforce/errors.js","../node_modules/pbkdf2/lib/precondition.js","../node_modules/pbkdf2/lib/default-encoding.js","../node_modules/pbkdf2/lib/sync-browser.js","../node_modules/pbkdf2/lib/to-buffer.js","../node_modules/bip39/src/_wordlists.js","../../src/key/RawKey.ts","../../src/client/lcd/LCDClient.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../../src/client/lcd/api/index.ts","../../src/client/lcd/api/TxAPI.ts","../../src/client/lcd/Wallet.ts","../node_modules/ws/browser.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/_stream_transform.js","../../src/@terra-money/wallet-controller/controller.ts","../../src/env.ts","../../src/format.ts","../../src/types.ts","../../src/provider.ts","../../src/browser/aes.ts","../../src/browser/hmac.ts","../../src/helpers/env.ts","../../src/helpers/validators.ts","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/renderer/utils.js","../../src/@terra-money/wallet-controller/verifyBytes.ts","../node_modules/fast-deep-equal/index.js","../../src/@terra-money/wallet-controller/exception/mapWalletConnectError.ts","../node_modules/detect-browser/es/index.js","../node_modules/typedarray-to-buffer/index.js","../node_modules/js-sha3/src/sha3.js","../../src/network.ts","../../src/@terra-money/wallet-controller/modules/walletconnect/impl/socket-transport/network.ts","../node_modules/qrcode/lib/browser.js","../../src/@terra-money/wallet-controller/operators/toLcdClient.ts","../../src/@terra-money/wallet-controller/utils/checkExtensionReady.ts","../../src/@terra-money/wallet-controller/utils/sortConnections.ts","../node_modules/react-dom/index.js","../../src/internal/observable/of.ts","../../src/internal/operators/catchError.ts","../../src/@terra-money/wallet-controller/operators/getExtensions.ts","../../src/internal/operators/switchMap.ts","../../src/internal/observable/dom/fetch.ts","../../src/@terra-money/wallet-controller/modules/connect-modal/index.ts","../../src/@terra-money/wallet-controller/modules/connect-modal/style.ts","../node_modules/decimal.js/decimal.js","../node_modules/protobufjs/src/index-minimal.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/inquire/index.js","../node_modules/@protobufjs/utf8/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/protobufjs/src/util/longbits.js","../node_modules/protobufjs/src/writer_buffer.js","../node_modules/protobufjs/src/reader_buffer.js","../node_modules/protobufjs/src/rpc.js","../node_modules/protobufjs/src/rpc/service.js","../node_modules/protobufjs/src/roots.js","../../src/core/bank/msgs/MsgSend.ts","../../src/core/bank/msgs/MsgMultiSend.ts","../../src/core/distribution/msgs/MsgSetWithdrawAddress.ts","../../src/core/distribution/msgs/MsgWithdrawDelegatorReward.ts","../../src/core/distribution/msgs/MsgWithdrawValidatorCommission.ts","../../src/core/distribution/msgs/MsgFundCommunityPool.ts","../../src/core/feegrant/msgs/MsgGrantAllowance.ts","../../src/core/feegrant/msgs/MsgRevokeAllowance.ts","../../src/core/gov/msgs/MsgDeposit.ts","../../src/core/gov/msgs/MsgSubmitProposal.ts","../../src/core/distribution/proposals/CommunityPoolSpendProposal.ts","../../src/cosmos/distribution/v1beta1/distribution.ts","../../src/core/params/proposals/ParameterChangeProposal.ts","../../src/core/ibc/proposals/index.ts","../../src/core/ibc/proposals/ClientUpdateProposal.ts","../../src/core/gov/proposals/TextProposal.ts","../../src/core/upgrade/proposals/index.ts","../../src/core/upgrade/proposals/SoftwareUpgradeProposal.ts","../../src/core/upgrade/Plan.ts","../../src/core/upgrade/proposals/CancelSoftwareUpgradeProposal.ts","../../src/core/gov/msgs/MsgVote.ts","../../src/core/gov/msgs/MsgVoteWeighted.ts","../../src/core/market/msgs/MsgSwap.ts","../../src/core/market/msgs/MsgSwapSend.ts","../../src/core/authz/msgs/MsgGrantAuthorization.ts","../../src/cosmos/staking/v1beta1/authz.ts","../../src/cosmos/bank/v1beta1/authz.ts","../../src/core/authz/authorizations/Authorization.ts","../../src/core/authz/msgs/MsgRevokeAuthorization.ts","../../src/core/authz/msgs/MsgExecAuthorized.ts","../../src/core/oracle/msgs/MsgDelegateFeedConsent.ts","../../src/core/oracle/msgs/MsgAggregateExchangeRateVote.ts","../../src/core/slashing/msgs/MsgUnjail.ts","../../src/cosmos/slashing/v1beta1/tx.ts","../../src/core/staking/msgs/MsgDelegate.ts","../../src/tendermint/version/types.ts","../../src/tendermint/types/validator.ts","../../src/core/staking/msgs/MsgUndelegate.ts","../../src/core/staking/msgs/MsgBeginRedelegate.ts","../../src/core/staking/msgs/MsgCreateValidator.ts","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/jscrypto/RIPEMD160.js","../node_modules/jscrypto/Base64.js","../../src/cosmos/crypto/multisig/keys.ts","../../src/cosmos/crypto/secp256k1/keys.ts","../../src/cosmos/crypto/ed25519/keys.ts","../../src/core/staking/msgs/MsgEditValidator.ts","../../src/core/wasm/msgs/MsgStoreCode.ts","../../src/core/wasm/msgs/MsgMigrateCode.ts","../../src/core/wasm/msgs/MsgInstantiateContract.ts","../../src/core/wasm/msgs/MsgExecuteContract.ts","../../src/core/wasm/msgs/MsgMigrateContract.ts","../../src/core/wasm/msgs/MsgUpdateContractAdmin.ts","../../src/core/wasm/msgs/MsgClearContractAdmin.ts","../../src/core/ibc-transfer/msgs/MsgTransfer.ts","../../src/ibc/applications/transfer/v1/tx.ts","../../src/core/ibc/msgs/client/MsgCreateClient.ts","../../src/core/ibc/msgs/client/MsgUpdateClient.ts","../../src/core/ibc/msgs/client/MsgUpgradeClient.ts","../../src/core/ibc/msgs/client/MsgSubmitMisbehaviour.ts","../../src/core/ibc/msgs/connection/MsgConnectionOpenInit.ts","../../src/confio/proofs.ts","../../src/core/ibc/core/commitment/MerklePrefix.ts","../../src/core/ibc/msgs/connection/MsgConnectionOpenTry.ts","../../src/core/ibc/msgs/connection/MsgConnectionOpenConfirm.ts","../../src/core/ibc/msgs/connection/MsgConnectionOpenAck.ts","../../src/core/ibc/msgs/channel/MsgChannelOpenInit.ts","../../src/core/ibc/msgs/channel/Counterparty.ts","../../src/core/ibc/msgs/channel/MsgChannelOpenTry.ts","../../src/core/ibc/msgs/channel/MsgChannelOpenConfirm.ts","../../src/core/ibc/msgs/channel/MsgChannelOpenAck.ts","../../src/core/ibc/msgs/channel/MsgChannelCloseInit.ts","../../src/core/ibc/msgs/channel/MsgChannelCloseConfirm.ts","../../src/core/ibc/msgs/channel/MsgRecvPacket.ts","../../src/core/ibc/msgs/channel/MsgRecvAcknowledgement.ts","../../src/core/ibc/msgs/channel/MsgTimeout.ts","../../src/core/ibc/msgs/channel/MsgTimeoutClose.ts","../../src/core/crisis/index.ts","../../src/core/crisis/MsgVerifyInvariant.ts","../../src/cosmos/crisis/v1beta1/tx.ts","../../src/core/SignDoc.ts","../../src/core/TxInfo.ts","../../src/tendermint/abci/types.ts","../../src/tendermint/types/params.ts","../../src/core/Deposit.ts","../../src/core/MultiSignature.ts","../../src/core/auth/Account.ts","../../src/core/auth/BaseVestingAccount.ts","../../src/terra/vesting/v1beta1/vesting.ts","../../src/core/oracle/AggregateExchangeRatePrevote.ts","../../src/core/oracle/AggregateExchangeRateVote.ts","../../src/core/staking/UnbondingDelegation.ts","../../src/core/treasury/PolicyConstraints.ts","../../src/terra/treasury/v1beta1/treasury.ts","../../src/core/bech32.ts","../../src/key/index.ts","../node_modules/bip32/src/index.js","../node_modules/bip32/src/bip32.js","../node_modules/bip32/src/crypto.js","../node_modules/hash-base/node_modules/readable-stream/readable-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha384.js","../node_modules/stream-browserify/index.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/writable-browser.js","../node_modules/readable-stream/duplex-browser.js","../node_modules/readable-stream/transform.js","../node_modules/readable-stream/passthrough.js","../node_modules/create-hmac/legacy.js","../node_modules/bs58check/base.js","../node_modules/bs58/index.js","../node_modules/base-x/src/index.js","../node_modules/tiny-secp256k1/js.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/tiny-secp256k1/rfc6979.js","../node_modules/typeforce/index.js","../node_modules/typeforce/extra.js","../node_modules/wif/index.js","../node_modules/bip39/src/index.js","../node_modules/pbkdf2/browser.js","../node_modules/pbkdf2/lib/async.js","../node_modules/randombytes/browser.js","../node_modules/secp256k1/lib/index.js","../node_modules/secp256k1/lib/elliptic.js","../../src/client/index.ts","../../src/client/lcd/APIRequester.ts","../node_modules/axios/index.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../../src/cosmos/tx/v1beta1/service.ts","../../src/cosmos/base/query/v1beta1/pagination.ts","../../src/client/lcd/api/AuthAPI.ts","../../src/client/lcd/api/BankAPI.ts","../../src/client/lcd/api/DistributionAPI.ts","../../src/client/lcd/api/FeeGrantAPI.ts","../../src/client/lcd/api/GovAPI.ts","../../src/client/lcd/api/MarketAPI.ts","../../src/client/lcd/api/AuthzAPI.ts","../../src/client/lcd/api/OracleAPI.ts","../../src/client/lcd/api/SlashingAPI.ts","../../src/client/lcd/api/StakingAPI.ts","../../src/client/lcd/api/TendermintAPI.ts","../../src/client/lcd/api/TreasuryAPI.ts","../../src/client/lcd/api/WasmAPI.ts","../../src/client/lcd/api/MintAPI.ts","../../src/client/lcd/api/IbcAPI.ts","../../src/core/ibc/msgs/client/IdentifiedClient.ts","../../src/client/lcd/api/IbcTransferAPI.ts","../../src/core/ibc-transfer/DenomTrace.ts","../../src/ibc/applications/transfer/v1/transfer.ts","../../src/client/lcd/LCDUtils.ts","../../src/client/LocalTerra.ts","../../src/client/WebSocketClient.ts","../../src/extension/index.ts","../../src/extension/PostMessageStream.ts","../node_modules/@terra-money/terra.js/node_modules/readable-stream/readable-browser.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/@terra-money/terra.js/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../src/util/index.ts","../../src/util/contract.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/webpack/buildin/amd-options.js","../../src/crypto.ts","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/query-string/node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/@walletconnect/socket-transport/node_modules/ws/browser.js","../node_modules/webpack/buildin/amd-define.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/encode-utf8/index.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../../src/internal/operators/filter.ts","../../src/internal/util/argsArgArrayOrObject.ts","../../src/internal/util/mapOneOrManyArgs.ts","../../src/internal/util/createObject.ts","../../src/internal/observable/combineLatest.ts","../../src/internal/util/EmptyError.ts","../../src/internal/firstValueFrom.ts"],"names":["module","exports","require","Long","wasm","WebAssembly","Instance","Module","Uint8Array","e","low","high","unsigned","this","isLong","obj","prototype","__isLong__","Object","defineProperty","value","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","length","Error","RangeError","p","indexOf","substring","radixToPower","result","i","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","b00","divide","divisor","approx","res","div_u","div_s","toUnsigned","shru","shr","shl","max","floor","log2","ceil","log","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","WalletStatus","ConnectType","name","message","tx","JSON","stringify","txhash","raw_message","createConnectedWallet","connection","post","sign","signBytes","supportFeatures","wallets","status","network","WALLET_CONNECTED","validate","terraAddress","connectType","design","walletAddress","availablePost","has","availableSign","availableSignBytes","createInstallableWallets","installations","WALLET_NOT_CONNECTED","clients","Map","createLCDClient","lcdClientConfig","clientConfig","URL","lcd","chainID","cacheKey","get","lcdClient","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","local","arrBuf","parsePersonalSign","params","test","address","txData","code","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","__proto__","encodingOrOffset","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","isBuffer","len","checked","copy","buffer","type","data","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","m","bidirectionalIndexOf","dir","arrayIndexOf","call","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","configurable","fill","allocUnsafeSlow","_isBuffer","a","x","y","concat","list","pos","swap16","swap32","swap64","inspect","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","_defineProperties","props","descriptor","enumerable","writable","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","unsupportedIterableToArray","o","allowArrayLike","it","iterator","F","s","_e","f","normalCompletion","didErr","step","next","_e2","__esModule","g","Function","window","extendStatics","d","setPrototypeOf","hasOwnProperty","__extends","__","constructor","create","__assign","assign","t","__rest","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","__generator","body","_","label","sent","trys","ops","verb","v","op","pop","__values","__read","r","ar","__spreadArray","to","pack","l","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncValues","NavigationContext","React","LocationContext","RouteContext","outlet","matches","invariant","cond","matchRoutes","basename","pathname","stripBasename","locationArg","parsePath","location","branches","flattenRoutes","siblings","compareIndexes","meta","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","routes","relativePath","route","caseSensitive","childrenIndex","path","joinPaths","routesMeta","score","computeScore","paramRe","isSplat","segments","initialScore","index","segment","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","pattern","paramNames","regexpSource","RegExp","compilePath","captureGroups","paramName","splatValue","memo","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","toPathname","routePathnameIndex","routePathnames","toSegments","fromPathname","search","hash","relativeSegments","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","useHref","useInRouterContext","navigator","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","useLocation","useNavigate","locationPathname","routePathnamesJson","activeRef","options","_renderMatches","parentMatches","children","Route","Router","basenameProp","navigationType","NavigationType","static","staticProp","navigationContext","locationProp","state","trailingPathname","Routes","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","useRoutes","createRoutesFromChildren","element","ctor","superCtor","super_","TempCtor","_slicedToArray","_i","_s","_n","_d","ownKeys","object","enumerableOnly","keys","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","source","forEach","getOwnPropertyDescriptors","defineProperties","WebExtensionStatus","WebExtensionTxStatus","isError","errorType","LENGTH_512","ENCRYPT_OP","DECRYPT_OP","_inherits","subClass","superClass","_typeof","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","getPrototypeOf","NewTarget","Reflect","construct","_extends","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","copyProps","SafeBuffer","Parent","Class","bind","_cache","Wrapper","INTERNAL_ERROR","SERVER_ERROR","Int","WalletContext","useWallet","useConnectedWallet","FALLBACK_MAINNET","FALLBACK","defaultNetwork","walletConnectChainIds","getChainOptions","fetch","json","values","reduce","walletconnectID","chainOptions","catch","console","EMPTY_ARRAY","EMPTY_SUPPORT_FEATURES","Set","WalletProvider","connectorOpts","pushServerOpts","createReadonlyWalletSession","selectExtension","waitingChromeExtensionInstallCheck","dangerously__chromeExtensionCompatibleBrowserCheck","controller","availableConnectTypes","setAvailableConnectTypes","availableInstallTypes","setAvailableInstallTypes","availableConnections","setAvailableConnections","availableInstallations","setAvailableInstallations","INITIALIZING","states","setStates","availableConnectTypesSubscription","subscribe","availableInstallTypesSubscription","availableConnectionsSubscription","availableInstallationsSubscription","statesSubscription","unsubscribe","install","connect","connectReadonly","disconnect","hasCW20Tokens","addCW20Tokens","hasNetwork","addNetwork","refetchStates","recheckStatus","isChromeExtensionCompatibleBrowser","Provider","__exportStar","isUndefined","isArrayBuffer","isObject","isPlainObject","isFunction","isFormData","isArrayBufferView","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","isStandardBrowserEnv","product","document","merge","assignValue","extend","stripBOM","content","_createForOfIteratorHelper","Coin","utils","BN","minAssert","minUtils","assert","toArray","zero2","encode","getNAF","num","w","bits","naf","bitLength","ws","k","clone","z","andln","isubn","iushrn","getJSF","k1","k2","jsf","m8","d1","d2","cmpn","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","_defineProperty","ERROR_SESSION_CONNECTED","ERROR_SESSION_DISCONNECTED","WalletConnectSessionStatus","modalContainer","styleContainer","callback","setCloseCallback","open","uri","cb","_qrcodeModalOptions","createElement","stylecontainer","query","encodeURIComponent","schemeUri","onClose","isMobile","openTerraStationMobile","href","container","setAttribute","dim","appendChild","img","span","textContent","description","button","addEventListener","canvas","width","margin","color","dark","createModalElement","close","querySelector","parentElement","removeChild","WALLETCONNECT_STORAGE_KEY","connectIfSessionExists","storedSession","localStorage","getItem","useCachedSession","connector","sessionSubject","BehaviorSubject","DISCONNECTED","qrcodeModal","bridge","initEvents","payload","CONNECTED","peerMeta","accounts","chainId","cachedSession","cachedSessionObject","parse","clientId","draftConnector","session","cryptoLib","transport","protocol","url","subscriptions","connected","createSession","REQUESTED","killSession","asObservable","getLatestSession","getValue","id","Date","now","serializedTxOptions","msgs","map","msg","fee","gas","gasPrices","gasAdjustment","feeDenoms","timeoutHeight","btoa","handshakeTopic","sendCustomRequest","method","throwError","reader","inherits","number","base","endian","isBN","negative","words","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","total","word","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","padding","groupSize","groupBase","modn","idivn","toBuffer","toArrayLike","ArrayType","reqLength","clz32","_countBits","_zeroBits","zeroBits","toTwos","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","iuor","ior","uor","iuand","iand","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","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","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","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_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","round","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","yp","xp","im","jm","gcd","_invmp","x1","x2","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","u","isSurrogatePair","htonl","zero8","enc","toHex32","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","userAgent","os","isDesktopChrome","getParser","mobileDetect","satisfies","chrome","edge","getDesktopBrowserType","mobile","chromium","SimplePublicKey","ReflectOwnKeys","R","ReflectApply","receiver","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","emitter","errorListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","unshift","warned","count","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","er","context","position","originalListener","spliceOne","rawListeners","eventNames","BrowserRouter","historyRef","createBrowserHistory","history","action","Link","rest","internalOnClick","navigate","event","isModifiedEvent","createPath","replaceProp","useLinkClickHandler","onClick","ref","_toConsumableArray","arrayLikeToArray","iter","util","ifNotSet","newError","CustomError","properties","captureStackTrace","stack","asPromise","float","inquire","utf8","pool","LongBits","isNode","Boolean","node","emptyArray","freeze","emptyObject","isInteger","isset","isSet","prop","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","toHash","zeroHash","longFromHash","fromHash","lcFirst","charAt","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","_configure","StringDecoder","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","equal","toSJISFunction","CODEWORDS_COUNT","getSymbolSize","getSymbolTotalCodewords","getBCHDigit","digit","setToSJISFunction","isKanjiModeEnabled","toSJIS","kanji","VersionCheck","Regex","NUMERIC","ccBits","ALPHANUMERIC","BYTE","KANJI","MIXED","getCharCountIndicator","isValid","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","defaultValue","codes","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","determiner","this_len","endsWith","getBuffer","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","update","block","accum","assigned","remainder","_update","digest","_hash","_setPrototypeOf","_unsupportedIterableToArray","minLen","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","getErrorMessage","toExplicitError","isValidResult","success","identifier","hostWindow","statesObserver","_states","_extension","requestApproval","recheckStates","subject","PROGRESS","SUCCEED","complete","recid","signature","public_key","inTransactionProgress","infoResult","connectResult","READY","focusedWalletAddress","extension","_inTransactionProgress","postResolvers","signResolvers","signBytesResolvers","infoResolvers","connectResolvers","delete","clear","purgeQueue","createFixedExtension","selectModal","extensionInfos","onComplete","extensionInfo","item","icon","iconImg","arrow","createElementNS","ExtensionRouterConnectorType","ExtensionRouterStatus","storage","SESSION_KEY","clearSession","removeItem","_connector","getLastStates","find","select","selectedExtensionInfo","createConnector","latestStates","wallet","tokenAddrs","nextStates","NO_AVAILABLE","isConnectorExists","isApproved","itemWallet","connectorType","LEGACY","WEB_EXTENSION","setItem","storeSession","_extensionInfos","getStoredSession","objectToString","isBoolean","isNull","isNullOrUndefined","isSymbol","isRegExp","isPrimitive","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","AES","O","H","nSigBytes","encryptBlock","decryptBlock","createEncryptor","transformMode","ENC_TRANSFORM_MODE","createDecryptor","DEC_TRANSFORM_MODE","encrypt","E","decrypt","keySize","G","CBCMAC","Cipher","K","mac","DES","I","U","L","X","Z","ivSize","DES3","J","Y","$","nn","GMAC","V","Hmac","tn","finalize","clamp","rn","en","reset","HmacMD5","MD5","HmacSHA1","SHA1","HmacSHA224","SHA224","HmacSHA256","SHA256","HmacSHA384","SHA384","HmacSHA512","SHA512","un","S","M","cn","sn","an","nBytes","RC4","generateKeyStreamWord","RC4Drop","drop","RIPEMD160","Rabbit","hn","vn","wn","ln","nextState","SHA3","bn","dn","outputLength","T","W","Q","yn","pn","On","jn","mn","An","gn","En","to32","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","toUint8Array","random","splice","cipher","iv","processBlock","pad","unpad","formatter","cipherText","salt","Algorithm","KDF","kdfHasher","kdfIterations","kdfModule","execute","kdfSalt","Hasher","iterations","getKey","Sn","Mn","kn","compute","Hn","Cn","xorBlock","Encryptor","Decryptor","I4","z6","ur","exec","escape","unescape","Base64","EvpKDF","Hex","Latin1","OpenSSLKDF","PBKDF2","Utf16","Utf16BE","Utf16LE","Utf8","Word32Array","Word64","Word64Array","crypto","msCrypto","getRandomValues","randomBytes","Bn","Nn","In","getB0","formatAssociatedDataAndPayload","genCtr","combineCipherTextAndAuthTag","splitCipherTextAndAuthTag","authTag","zn","Dn","Un","getJ0","GHASH","inc32","GCTR","globalThis","toStringTag","CipherParams","PasswordBasedCipher","SerializableCipher","generateKeyStreamAndEncrypt","Fn","xn","CBC","CFB","CTR","ECB","OFB","GCM","CCM","AnsiX923","ISO10126","ISO97971","Pkcs7","NoPadding","Zero","OpenSSLFormatter","WS","WebSocket","SocketTransport","opts","_queue","_subscriptions","_socketCreate","_socketClose","send","topic","silent","_socketSend","_nextSocket","webUrl","splitUrl","startsWith","host","queryString","getWebSocketUrl","_url","_protocol","_version","onmessage","_socketReceive","onopen","_socketOpen","onerror","_socketError","onclose","_socket","_queueSubscriptions","_pushQueue","socketMessage","readyState","_setToQueue","itemEvent","_netMonitor","netMonitor","_getPrototypeOf","_arrayLikeToArray","arr2","getTerraExtensions","terraWallets","isTerraExtensionAvailable","parseHex","STORAGE_KEY","storedSessionString","readonlyWalletModal","networks","selectContainer","selectLabel","selectWrapper","itemNetwork","option","toUpperCase","svg","inputContainer","inputLabel","disabled","hasAttribute","withdrawAddress","expiration","_super","baseMsgSubmitMisbehaviour","sequence","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","_fixedNafMul","doubles","_getDoubles","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","beta","_getBeta","_hasDoubles","dbl","Cancel","__CANCEL__","toConnectedWallet","_isNativeReflectConstruct","sham","Proxy","valueOf","CHROME_EXTENSION_INSTALL_URL","DEFAULT_CHROME_EXTENSION_COMPATIBLE_BROWSER_CHECK","mapExtensionTxError","mapExtensionSignBytesError","define","impl","fullPattern","shortPattern","tabletPattern","hasOwnProp","equalIC","containsIC","valueLC","convertPropsToRegExp","MobileDetect","maxPhoneWidth","ua","prepareUserAgent","FALLBACK_PHONE","FALLBACK_TABLET","FALLBACK_MOBILE","verPos","mobileDetectRules","oss","phones","tablets","uas","oss0","WindowsPhoneOS","WindowsMobileOS","findMatch","rules","findMatches","getVersionStr","propertyName","patterns","getVersion","prepareVersionNo","NaN","numbers","isMobileFallback","detectMobileBrowsers","isTabletFallback","prepareDetectionCache","phone","tablet","phoneSized","isPhoneSized","mobileGrade","$isMobile","is","detectOS","getDeviceSmallerSide","screen","height","userAgents","versionStr","grade","_impl","factory","period","bech32m","bech32","ALPHABET","ALPHABET_MAP","polymodStep","pre","prefixChk","prefix","chk","convert","inBits","outBits","maxV","toWords","fromWordsUnsafe","fromWords","getLibraryFromEncoding","ENCODING_CONST","__decode","LIMIT","lowered","uppered","wordChars","decodeUnsafe","decode","sha","_final","alg","config","trace","ERR_STREAM_PREMATURE_CLOSE","eos","stream","called","_key","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onrequest","req","setHeader","abort","isRequest","HashBase","ARRAY16","zl","zr","sl","sr","hl","hr","_a","_b","_c","rotl","fn1","fn2","fn3","fn4","fn5","br","cr","dr","tl","tr","_blockOffset","_length","algorithm","sha1","sha224","sha256","sha384","sha512","Transform","CipherBase","hashMode","_finalOrDigest","final","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_flush","fin","Stream","PassThrough","CorkedRequest","_this","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","deprecate","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","destroy","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","curves","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","common","ripemd","hmac","ripemd160","types","Nil","typeName","Null","normalizeHeaderName","enhanceError","transitionalDefaults","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","defaults","transitional","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","rawValue","parser","encoder","stringifySafely","transformResponse","silentJSONParsing","forcedJSONParsing","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","level","isTypedArray","strict","isStrictTypedArray","loose","isLooseTypedArray","names","strictUriEncode","decodeComponent","splitOnFirst","validateArrayFormatSeparator","keysSorter","sort","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","accumulator","newValue","parserForArrayFormat","param","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","parseUrl","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","default","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","reverse","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","electron","epiphany","firefox","focus","generic","googlebot","google_search","k_meleon","maxthon","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","getResult","_ua","parsedResult","getUA","parseBrowser","some","describe","getBrowser","getBrowserName","getBrowserVersion","getOS","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","isOS","isPlatform","isBrowser","compareVersion","isEngine","versionName","vendor","model","Writer","BufferWriter","Op","State","writer","head","tail","writeByte","VarintOp","writeVarint64","writeFixed32","_push","uint32","int32","sint32","uint64","int64","sint64","zzEncode","bool","fixed32","sfixed32","fixed64","sfixed64","double","writeBytes","fork","ldelim","BufferWriter_","Reader","BufferReader","indexOutOfRange","writeLength","create_array","readLongVarint","readFixed32_end","readFixed64","_slice","skip","skipType","wireType","BufferReader_","zzDecode","allowedMessages","final_tally_result","Proposal","WeightedVoteOption","client_id","fnF","fnG","fnH","fnI","_finalized","throwIfNotStringOrBuffer","ReadableState","EElistenerCount","debug","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","nReadingNextTick","resume_","fromList","first","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","ev","wrap","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","T1","T2","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_this2","Legacy","md5","ZEROS","blocksize","_alg","ipad","_ipad","opad","_opad","createHash","bs58checkBase","webpackPolyfill","elliptic","rand","ec","eddsa","Rand","generate","_rand","getBytes","getByte","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","sha512_K","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","native","getTypeName","getValueTypeName","tfJSON","tfErrorString","valueTypeName","valueJson","TfTypeError","__type","__value","__valueTypeName","TfPropertyTypeError","property","tfPropertyErrorString","__label","__property","tfCustomError","tfSubError","MAX_ALLOC","keylen","checkParameters","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","password","DK","block1","destPos","hLen","_default","wordlists","czech","chinese_simplified","chinese_traditional","korean","french","italian","spanish","japanese","JA","portuguese","english","EN","paramsSerializer","serializedParams","parts","toISOString","hashmarkIndex","request","response","isAxiosError","fileName","lineNumber","columnNumber","clarifyTimeoutError","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","onCanceled","requestData","requestHeaders","cancelToken","signal","auth","username","Authorization","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancel","aborted","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","isTxError","CONNECTIONS","READONLY","WALLETCONNECT","WALLETCONNECT_SUPPORT_FEATURES","WalletController","walletConnect","readonlyWallet","disableReadonlyWallet","disableExtension","disableWalletConnect","_availableConnectTypes","connectTypes","connections","EXTENSION","terraExtensions","terraExtension","memoConnection","_availableInstallTypes","extensions","installedIdentifiers","connectedWallet","_type","_identifier","selector","selectConnection","selected","readonlyWalletSession","enableReadonlyWallet","enableWalletConnect","enableExtension","updateStates","_notConnected","subscription","txResult","fromData","availableExtensionFeature","feature","extensionSubscription","extensionStates","walletConnectSessionSubscription","_initializing","numSessionCheck","ready","draftReadonlyWallet","draftWalletConnect","memoizedConnections","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","numeric","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","hex2rgba","hex","hexCode","hexValue","getOptions","scale","light","rendererOpts","getScale","qrSize","getImageWidth","qrToImageData","imgData","qr","modules","symbolSize","scaledMargin","palette","posDst","pxColor","mapWalletConnectError","__spreadArrays","il","jl","BrowserInfo","NodeInfo","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","detect","parseUserAgent","matchUserAgent","matched","regex","uaMatch","matchedRule","versionParts","ii","createVersionParts","searchBotMatch","INPUT_ERROR","WINDOW","root","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","methods","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","methodName","newMethodName","blocks","finalized","blockCount","byteCount","outputBlocks","extraBytes","notString","lastByteIndex","encodeString","strs","paddingBytes","arrayBuffer","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","b10","b11","b12","b13","b14","b15","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b49","NetworkMonitor","_eventEmitters","trigger","eventEmitters","eventEmitter","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","getContext","toCanvas","render","toDataURL","renderToDataURL","toLcdClient","interval","checkExtensionReady","check","sortConnections","stationIndex","findIndex","station","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","whitelist","urls","getExtensions","currentBrowser","fromFetch","ok","of","catchError","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","precision","rounding","toExpNeg","toExpPos","minE","maxE","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","tag","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","digitsToString","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","clampedTo","Ctor","comparedTo","xdL","ydL","xd","yd","ys","cosine","pr","sd","tinyPow","taylorSeries","times","cos2x","minus","plus","toLessThanHalfPi","cubeRoot","cbrt","rep","t3","t3plusx","toExponential","decimalPlaces","dp","dividedBy","dividedToIntegerBy","divToInt","greaterThanOrEqualTo","hyperbolicCosine","cosh","cosh2_x","d8","hyperbolicSine","sinh","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","halfPi","getPi","asin","inverseHyperbolicCosine","acosh","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","atan","inverseTangent","px","isInt","isPos","lessThanOrEqualTo","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","toFixed","toFraction","maxD","d0","n0","n1","toHexadecimal","toNearest","toOctal","toPower","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","temp","aL","bL","logBase","more","prod","prodL","qd","remL","rem0","xi","xL","yd0","yL","yz","isTruncated","roundUp","xdi","isExp","nonFiniteToString","zs","truncate","maxOrMin","ltgt","guard","sum","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","pi","atan2","useDefaults","ps","hypot","isDecimalInstance","log10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","protobuf","configure","build","rpc","roots","b64","s64","invalidEncoding","evt","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloat_ieee754","writeUint","exponent","readFloat_ieee754","readUint","uint","mantissa","writeUintLE","writeUintBE","readUintLE","readUintBE","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDouble_ieee754","off0","off1","readDouble_ieee754","moduleName","eval","SIZE","MAX","slab","toLong","part0","part1","part2","writeStringBuffer","writeBytesBuffer","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","endedByRPC","depositor","granter","proposal_id","from_address","pubkey","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","eLen","eMax","eBias","nBits","rt","MsgStoreCode","signer","MsgSubmitMisbehaviour","key_prefix","toData","packet","MsgVerifyInvariant","end_time","delegator_address","entries","bip32_1","fromSeed","fromBase58","fromPublicKey","fromPrivateKey","bs58check","ecc","typeforce","wif","UINT256_TYPE","BufferN","NETWORK_TYPE","compile","UInt8","bip32","public","UInt32","private","BITCOIN","messagePrefix","pubKeyHash","scriptHash","HIGHEST_BIT","UINT31_MAX","BIP32Path","UInt31","BIP32","__D","__Q","chainCode","__DEPTH","__INDEX","__PARENT_FINGERPRINT","lowR","pointFromScalar","hash160","publicKey","fromPublicKeyLocal","depth","parentFingerprint","isNeutered","privateKey","isHardened","hd","hmacSHA512","IL","IR","isPrivate","derive","Ki","pointAddScalar","fingerprint","ki","privateAdd","fromPrivateKeyLocal","splitPath","prevHd","indexStr","deriveHardened","sig","extraData","counter","signWithEntropy","verify","isPoint","inString","seed","createHmac","sha256Hash","pipeline","custom","_getString","_getBuffer","_objectSpread","customInspect","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","EE","_isStdio","didOnEnd","cleanup","scope","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","onGlobalMessage","attachEvent","installPostMessageImplementation","MessageChannel","channel","port1","port2","installMessageChannelImplementation","html","documentElement","script","installReadyStateChangeImplementation","task","base58","checksumFn","decodeRaw","checksum","newChecksum","basex","_Buffer","BASE_MAP","xc","LEADER","FACTOR","iFACTOR","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","secp256k1","EC","deterministicGenerateK","ZERO32","EC_GROUP_ORDER","EC_P","nDiv2","THROW_BAD_PRIVATE","THROW_BAD_POINT","THROW_BAD_TWEAK","THROW_BAD_HASH","isScalar","isOrderScalar","decodeFrom","__isPointCompressed","assumeCompression","fromBuffer","getEncoded","compressed","__sign","addData","kI","isPointCompressed","pointAdd","pA","pB","__compressed","pp","tweak","tt","uu","pointCompress","dd","pointMultiply","dt","privateSub","isSignature","sInv","mulAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","jmulAdd","_precompute","zinv","zinv2","ay","pz2","z2","s1","s2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","MontCurve","i4","a24","normalize","aa","bb","diffAdd","da","jumlAdd","EdwardsCurve","twisted","mOneA","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","sha1_K","Kh","Ah","Bh","Dh","Eh","rh","sh","inner","outer","HmacDRBG","KeyPair","Signature","nh","keyPair","keyFromPrivate","priv","fromPrivate","keyFromPublic","pub","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","kmac","reseed","addEnc","_importPrivate","privEnc","_importPublic","pubEnc","reason","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","EDDSA","pointClass","encodingLength","secret","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","_secret","_pub","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","ONE1","ZERO1","checkSig","extraEntropy","ERRORS","NATIVE","TYPES","arrayOf","_arrayOf","minLength","maxLength","every","maybe","_maybe","propertyType","propertyKeyType","_map","propertyValue","uncompiled","typePropertyName","_object","anyOf","_anyOf","allOf","_allOf","quacksLike","_quacksLike","tuple","_tuple","_value","surrogate","EXTRA","_LengthN","Length","_ArrayN","_BufferN","_HexN","_StringN","INT53_MAX","ArrayN","Finite","HexN","Int8","Int16","Int32","Int53","Range","_range","StringN","UInt16","UInt53","encodeRaw","pbkdf2_1","_wordlists_1","DEFAULT_WORDLIST","INVALID_MNEMONIC","INVALID_ENTROPY","WORDLIST_REQUIRED","lpad","padString","binaryToByte","bin","bytesToBinary","deriveChecksumBits","entropyBuffer","CS","mnemonicToEntropy","mnemonic","wordlist","dividerIndex","entropyBits","checksumBits","entropyBytes","entropyToMnemonic","binary","mnemonicToSeedSync","mnemonicBuffer","saltBuffer","pbkdf2Sync","mnemonicToSeed","saltMixin","pbkdf2","derivedKey","pbkdf2Promise","generateMnemonic","strength","rng","validateMnemonic","setDefaultWordlist","language","getDefaultWordlist","lang","_wordlists_2","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","algo","importKey","deriveBits","resolvePromise","prom","checkNative","resp","MAX_BYTES","MAX_UINT32","generated","errors","isUint8Array","isCompressed","toTypeString","getAssertedOutput","contextRandomize","privateKeyVerify","seckey","privateKeyNegate","privateKeyTweakAdd","privateKeyTweakMul","publicKeyVerify","publicKeyCreate","publicKeyConvert","publicKeyNegate","publicKeyCombine","pubkeys","publicKeyTweakAdd","publicKeyTweakMul","signatureNormalize","signatureExport","outputlen","signatureImport","ecdsaSign","msg32","noncefn","ecdsaVerify","ecdsaRecover","ecdh","hashfn","xbuf","ybuf","ecparams","loadPublicKey","loadCompressedPublicKey","x3","loadUncompressedPublicKey","savePublicKey","tweaked","pair","pairs","sigR","sigS","lenR","posR","lenS","posS","_noncefn","sigObj","sigr","sigs","scalar","Axios","mergeConfig","axios","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","expires","domain","secure","cookie","toGMTString","remove","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","line","originURL","msie","urlParsingNode","resolveURL","hostname","port","requestURL","deprecatedWarnings","formatMessage","opt","desc","schema","allowUnknown","executor","token","onfulfilled","_resolve","baseDenom","sendEnabled","Fragment","StrictMode","Profiler","Suspense","for","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","setState","forceUpdate","isPureReactComponent","__self","__source","defaultProps","$$typeof","_owner","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","lazy","_payload","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","runtime","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","__webpack_amd_options__","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","singleMatcher","multiMatcher","decodeComponents","components","tokens","encodedURI","replaceMap","customDecodeURIComponent","separator","separatorIndex","Utils","BitBuffer","BitMatrix","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Mode","Segments","setupFormatInfo","matrix","maskPattern","getEncodedBits","createData","put","dataTotalCodewordsBits","getLengthInBits","putBit","remainingByte","bitBuffer","totalCodewords","ecTotalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","dcData","ecData","maxDataSize","dataSize","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","getPositions","row","col","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","isReserved","setupData","getBestMask","applyMask","toSJISFunc","bufIndex","reservedBit","reserved","getRowColCoords","posCount","intervals","positions","coords","posLength","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","Polynomial","degree","genPoly","initialize","generateECPolynomial","paddedData","buff","GF","coeff","divident","poly","EXP_TABLE","LOG_TABLE","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getBitsLength","getCapacity","usableBits","seg","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","G15_BCH","NumericData","AlphanumericData","ByteData","KanjiData","dijkstra","getStringByteLength","getSegments","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","nodes","segs","buildNodes","graph","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","find_path","optimizedSegs","curr","prevSeg","mergeSegments","group","remainingNum","ALPHA_NUM_CHARS","encodeUtf8","second","single_source_shortest_paths","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","cost","extract_shortest_path_from_predecessor_list","sorter","default_sorter","qrData","canvasEl","getCanvasElement","image","createImageData","clearRect","style","clearCanvas","putImageData","quality","getColorAttrib","attrib","svgCmd","cmd","qrcodesize","bg","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","jsx","jsxs","ba","ca","ea","fa","ha","ia","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","removeAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","ownerDocument","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","kb","lb","mb","ob","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","sb","tb","setProperty","ub","menuitem","area","embed","keygen","link","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","jd","kd","ld","md","nd","od","keyCode","charCode","pd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","he","date","datetime","email","month","range","tel","time","week","me","oe","pe","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","tagName","ih","memoizedProps","revealOrder","jh","kh","lh","mh","oh","pendingProps","qh","th","uh","_workInProgressVersionPrimary","vh","wh","Fh","Gh","Hh","baseQueue","Ih","Jh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ji","li","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createTextNode","Hi","Ii","Ji","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","createObject"],"mappings":"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CA,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,sEAINnjC,IAAK,CACHsb,IAAK,EACL6nB,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,mE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","file":"static/js/2.a17b1109.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","\"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 () {\n return JSON.stringify(prepareSignBytes(this.toData()));\n };\n JSONSerializable.prototype.toAminoJSON = function () {\n return JSON.stringify(prepareSignBytes(this.toAmino()));\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';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\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.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","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","import { CreateTxOptions, PublicKey, Tx } from '@terra-money/terra.js';\n\nexport interface NetworkInfo {\n /** Network name (e.g. mainnet) */\n name: string;\n\n /** chainID (e.g. columbus-5) */\n chainID: string;\n\n /** lcd endpoint (e.g. https://lcd.terra.dev) */\n lcd: string;\n}\n\nexport interface TxResult extends CreateTxOptions {\n result: {\n height: number;\n raw_log: string;\n txhash: string;\n };\n success: boolean;\n}\n\nexport interface SignResult extends CreateTxOptions {\n result: Tx;\n success: boolean;\n}\n\nexport interface SignBytesResult {\n //encryptedBytes: string;\n result: {\n recid: number;\n signature: Uint8Array;\n public_key?: PublicKey;\n };\n success: boolean;\n}\n\nexport enum WalletStatus {\n INITIALIZING = 'INITIALIZING',\n WALLET_NOT_CONNECTED = 'WALLET_NOT_CONNECTED',\n WALLET_CONNECTED = 'WALLET_CONNECTED',\n}\n\nexport enum ConnectType {\n /** Terra Station Extension or compatible browser extensions */\n EXTENSION = 'EXTENSION',\n\n /** Terra Station Mobile or compatible mobile wallets */\n WALLETCONNECT = 'WALLETCONNECT',\n\n /** Read only mode - View an address */\n READONLY = 'READONLY',\n}\n\nexport interface Connection {\n type: ConnectType;\n identifier?: string;\n\n name: string;\n icon: string;\n}\n\nexport interface Installation {\n type: ConnectType;\n identifier: string;\n\n name: string;\n icon: string;\n url: string;\n}\n\nexport interface WalletInfo {\n connectType: ConnectType;\n terraAddress: string;\n design?: string;\n}\n\nexport type WalletStates =\n | {\n status: WalletStatus.INITIALIZING;\n network: NetworkInfo;\n }\n | {\n status: WalletStatus.WALLET_NOT_CONNECTED;\n network: NetworkInfo;\n }\n | {\n status: WalletStatus.WALLET_CONNECTED;\n connection: Connection;\n network: NetworkInfo;\n wallets: WalletInfo[];\n /** This type is same as `import type { TerraWebExtensionFeatures } from '@terra-money/web-extension-interface'` */\n supportFeatures: Set<\n 'post' | 'sign' | 'sign-bytes' | 'cw20-token' | 'network'\n >;\n };\n","import { CreateTxOptions } from '@terra-money/terra.js';\n\n/** User denied the request */\nexport class UserDenied extends Error {\n constructor() {\n super('User Denied');\n this.name = 'UserDenied';\n }\n\n toString = () => {\n return `[${this.name}]`;\n };\n}\n\n/** the user did not complete the action during a specific time */\nexport class Timeout extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'Timeout';\n }\n\n toString = () => {\n return `[${this.name} message=\"${this.message}\"]`;\n };\n}\n\n/** failed on signBytes() */\nexport class SignBytesFailed extends Error {\n constructor(public readonly bytes: Buffer, message: string) {\n super(message);\n this.name = 'SignBytesFailed';\n }\n\n toString = () => {\n return `[${this.name} message=\"${this.message}\"]`;\n };\n}\n\n/** Failed to create tx (did not make a txhash) */\nexport class CreateTxFailed extends Error {\n constructor(public readonly tx: CreateTxOptions, message: string) {\n super(message);\n this.name = 'CreateTxFailed';\n }\n\n toString = () => {\n return `[${this.name} message=\"${this.message}\"]\\n${JSON.stringify(\n this.tx,\n null,\n 2,\n )}`;\n };\n}\n\n/** Failed process the tx (maked a txhash) */\nexport class TxFailed extends Error {\n constructor(\n public readonly tx: CreateTxOptions,\n public readonly txhash: string | undefined,\n message: string,\n public readonly raw_message: any,\n ) {\n super(message);\n this.name = 'TxFailed';\n }\n\n toString = () => {\n return `[${this.name} txhash=\"${this.txhash}\" message=\"${\n this.message\n }\"]\\n${JSON.stringify(this.tx, null, 2)}\\n${JSON.stringify(\n this.raw_message,\n null,\n 2,\n )}`;\n };\n}\n\n/** Unknown error */\nexport class TxUnspecifiedError extends Error {\n constructor(public readonly tx: CreateTxOptions, message: string) {\n super(message);\n this.name = 'TxUnspecifiedError';\n }\n\n toString = () => {\n return `[${this.name} message=\"${this.message}\"]\\n${JSON.stringify(\n this.tx,\n null,\n 2,\n )}`;\n };\n}\n","import { AccAddress, CreateTxOptions } from '@terra-money/terra.js';\nimport {\n Connection,\n ConnectType,\n Installation,\n NetworkInfo,\n SignBytesResult,\n SignResult,\n TxResult,\n WalletInfo,\n WalletStatus,\n} from './types';\n\ntype HumanAddr = string & { __type: 'HumanAddr' };\n\nexport interface ConnectedWallet {\n network: NetworkInfo;\n walletAddress: HumanAddr;\n /** terraAddress is same as walletAddress */\n terraAddress: HumanAddr;\n design?: string;\n post: (tx: CreateTxOptions) => Promise;\n sign: (tx: CreateTxOptions) => Promise;\n signBytes: (bytes: Buffer) => Promise;\n availablePost: boolean;\n availableSign: boolean;\n availableSignBytes: boolean;\n connectType: ConnectType;\n connection: Connection;\n}\n\ninterface CreateConnectedWalletParams {\n status: WalletStatus;\n network: NetworkInfo;\n wallets: WalletInfo[];\n connection: Connection | undefined;\n post: (tx: CreateTxOptions, terraAddress?: string) => Promise;\n sign: (tx: CreateTxOptions, terraAddress?: string) => Promise;\n signBytes: (bytes: Buffer, terraAddress?: string) => Promise;\n supportFeatures: Set<\n 'post' | 'sign' | 'sign-bytes' | 'cw20-token' | 'network'\n >;\n}\n\nexport function createConnectedWallet({\n connection,\n post,\n sign,\n signBytes,\n supportFeatures,\n wallets,\n status,\n network,\n}: CreateConnectedWalletParams): ConnectedWallet | undefined {\n try {\n if (\n status === WalletStatus.WALLET_CONNECTED &&\n wallets.length > 0 &&\n AccAddress.validate(wallets[0].terraAddress) &&\n !!connection\n ) {\n const { terraAddress, connectType, design } = wallets[0];\n\n return {\n network,\n terraAddress: terraAddress as HumanAddr,\n walletAddress: terraAddress as HumanAddr,\n design,\n post: (tx: CreateTxOptions) => {\n return post(tx, terraAddress);\n },\n sign: (tx: CreateTxOptions) => {\n return sign(tx, terraAddress);\n },\n signBytes: (bytes: Buffer) => {\n return signBytes(bytes, terraAddress);\n },\n availablePost: supportFeatures.has('post'),\n availableSign: supportFeatures.has('sign'),\n availableSignBytes: supportFeatures.has('sign-bytes'),\n connectType,\n connection,\n };\n } else {\n return undefined;\n }\n } catch {\n return undefined;\n }\n}\n\ninterface CreateInstallableWallets {\n status: WalletStatus;\n installations: Installation[];\n}\n\nexport function createInstallableWallets({\n status,\n installations,\n}: CreateInstallableWallets): Installation[] | undefined {\n if (status === WalletStatus.WALLET_NOT_CONNECTED) {\n return installations;\n }\n return undefined;\n}\n","import { LCDClient, LCDClientConfig } from '@terra-money/terra.js';\nimport { NetworkInfo } from './types';\n\ntype Config = Omit;\nexport type WalletLCDClientConfig = Config | ((network: NetworkInfo) => Config);\n\ninterface Params {\n lcdClientConfig?: WalletLCDClientConfig;\n network: NetworkInfo;\n}\n\nconst clients = new Map();\n\nexport function createLCDClient({\n lcdClientConfig,\n network,\n}: Params): LCDClient {\n const clientConfig: LCDClientConfig = {\n URL: network.lcd,\n chainID: network.chainID,\n ...(typeof lcdClientConfig === 'function'\n ? lcdClientConfig(network)\n : lcdClientConfig\n ? lcdClientConfig\n : {}),\n };\n\n const cacheKey = JSON.stringify(clientConfig);\n\n if (clients.has(cacheKey)) {\n return clients.get(cacheKey)!;\n }\n\n const lcdClient = new LCDClient(clientConfig);\n\n clients.set(cacheKey, lcdClient);\n\n return lcdClient;\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import { isBrowser, getLocation, getQueryString, detectEnv, appendToQueryString, } from \"@walletconnect/utils\";\nimport NetworkMonitor from \"./network\";\nconst WS = typeof global.WebSocket !== \"undefined\" ? global.WebSocket : require(\"ws\");\nclass SocketTransport {\n constructor(opts) {\n this.opts = opts;\n this._queue = [];\n this._events = [];\n this._subscriptions = [];\n this._protocol = opts.protocol;\n this._version = opts.version;\n this._url = \"\";\n this._netMonitor = null;\n this._socket = null;\n this._nextSocket = null;\n this._subscriptions = opts.subscriptions || [];\n this._netMonitor = opts.netMonitor || new NetworkMonitor();\n if (!opts.url || typeof opts.url !== \"string\") {\n throw new Error(\"Missing or invalid WebSocket url\");\n }\n this._url = opts.url;\n this._netMonitor.on(\"online\", () => this._socketCreate());\n }\n set readyState(value) {\n }\n get readyState() {\n return this._socket ? this._socket.readyState : -1;\n }\n set connecting(value) {\n }\n get connecting() {\n return this.readyState === 0;\n }\n set connected(value) {\n }\n get connected() {\n return this.readyState === 1;\n }\n set closing(value) {\n }\n get closing() {\n return this.readyState === 2;\n }\n set closed(value) {\n }\n get closed() {\n return this.readyState === 3;\n }\n open() {\n this._socketCreate();\n }\n close() {\n this._socketClose();\n }\n send(message, topic, silent) {\n if (!topic || typeof topic !== \"string\") {\n throw new Error(\"Missing or invalid topic field\");\n }\n this._socketSend({\n topic: topic,\n type: \"pub\",\n payload: message,\n silent: !!silent,\n });\n }\n subscribe(topic) {\n this._socketSend({\n topic: topic,\n type: \"sub\",\n payload: \"\",\n silent: true,\n });\n }\n on(event, callback) {\n this._events.push({ event, callback });\n }\n _socketCreate() {\n if (this._nextSocket) {\n return;\n }\n const url = getWebSocketUrl(this._url, this._protocol, this._version);\n this._nextSocket = new WS(url);\n if (!this._nextSocket) {\n throw new Error(\"Failed to create socket\");\n }\n this._nextSocket.onmessage = (event) => this._socketReceive(event);\n this._nextSocket.onopen = () => this._socketOpen();\n this._nextSocket.onerror = (event) => this._socketError(event);\n this._nextSocket.onclose = () => {\n setTimeout(() => {\n this._nextSocket = null;\n this._socketCreate();\n }, 1000);\n };\n }\n _socketOpen() {\n this._socketClose();\n this._socket = this._nextSocket;\n this._nextSocket = null;\n this._queueSubscriptions();\n this._pushQueue();\n }\n _socketClose() {\n if (this._socket) {\n this._socket.onclose = () => {\n };\n this._socket.close();\n }\n }\n _socketSend(socketMessage) {\n const message = JSON.stringify(socketMessage);\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(message);\n }\n else {\n this._setToQueue(socketMessage);\n this._socketCreate();\n }\n }\n async _socketReceive(event) {\n let socketMessage;\n try {\n socketMessage = JSON.parse(event.data);\n }\n catch (error) {\n return;\n }\n this._socketSend({\n topic: socketMessage.topic,\n type: \"ack\",\n payload: \"\",\n silent: true,\n });\n if (this._socket && this._socket.readyState === 1) {\n const events = this._events.filter(event => event.event === \"message\");\n if (events && events.length) {\n events.forEach(event => event.callback(socketMessage));\n }\n }\n }\n _socketError(e) {\n const events = this._events.filter(event => event.event === \"error\");\n if (events && events.length) {\n events.forEach(event => event.callback(e));\n }\n }\n _queueSubscriptions() {\n const subscriptions = this._subscriptions;\n subscriptions.forEach((topic) => this._queue.push({\n topic: topic,\n type: \"sub\",\n payload: \"\",\n silent: true,\n }));\n this._subscriptions = this.opts.subscriptions || [];\n }\n _setToQueue(socketMessage) {\n this._queue.push(socketMessage);\n }\n _pushQueue() {\n const queue = this._queue;\n queue.forEach((socketMessage) => this._socketSend(socketMessage));\n this._queue = [];\n }\n}\nfunction getWebSocketUrl(_url, protocol, version) {\n var _a, _b;\n const url = _url.startsWith(\"https\")\n ? _url.replace(\"https\", \"wss\")\n : _url.startsWith(\"http\")\n ? _url.replace(\"http\", \"ws\")\n : _url;\n const splitUrl = url.split(\"?\");\n const params = isBrowser()\n ? {\n protocol,\n version,\n env: \"browser\",\n host: ((_a = getLocation()) === null || _a === void 0 ? void 0 : _a.host) || \"\",\n }\n : {\n protocol,\n version,\n env: ((_b = detectEnv()) === null || _b === void 0 ? void 0 : _b.name) || \"\",\n };\n const queryString = appendToQueryString(getQueryString(splitUrl[1] || \"\"), params);\n return splitUrl[0] + \"?\" + queryString;\n}\nexport default SocketTransport;\n//# sourceMappingURL=index.js.map","import * as windowMetadata from \"@walletconnect/window-metadata\";\nimport * as windowGetters from \"@walletconnect/window-getters\";\nimport { detect, } from \"detect-browser\";\nexport function detectEnv(userAgent) {\n return detect(userAgent);\n}\nexport function detectOS() {\n const env = detectEnv();\n return env && env.os ? env.os : undefined;\n}\nexport function isAndroid() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\nexport function isIOS() {\n const os = detectOS();\n return os\n ? os.toLowerCase().includes(\"ios\") ||\n (os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1)\n : false;\n}\nexport function isMobile() {\n const os = detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\nexport function isNode() {\n const env = detectEnv();\n const result = env && env.name ? env.name.toLowerCase() === \"node\" : false;\n return result;\n}\nexport function isBrowser() {\n const result = !isNode() && !!getNavigator();\n return result;\n}\nexport const getFromWindow = windowGetters.getFromWindow;\nexport const getFromWindowOrThrow = windowGetters.getFromWindowOrThrow;\nexport const getDocumentOrThrow = windowGetters.getDocumentOrThrow;\nexport const getDocument = windowGetters.getDocument;\nexport const getNavigatorOrThrow = windowGetters.getNavigatorOrThrow;\nexport const getNavigator = windowGetters.getNavigator;\nexport const getLocationOrThrow = windowGetters.getLocationOrThrow;\nexport const getLocation = windowGetters.getLocation;\nexport const getCryptoOrThrow = windowGetters.getCryptoOrThrow;\nexport const getCrypto = windowGetters.getCrypto;\nexport const getLocalStorageOrThrow = windowGetters.getLocalStorageOrThrow;\nexport const getLocalStorage = windowGetters.getLocalStorage;\nexport function getClientMeta() {\n return windowMetadata.getWindowMetadata();\n}\n//# sourceMappingURL=browser.js.map","import * as safeJson from \"@walletconnect/safe-json\";\nexport const safeJsonParse = safeJson.safeJsonParse;\nexport const safeJsonStringify = safeJson.safeJsonStringify;\n//# sourceMappingURL=json.js.map","import { safeJsonParse, safeJsonStringify } from \"./json\";\nimport { getLocalStorage } from \"./browser\";\nexport function setLocal(key, data) {\n const raw = safeJsonStringify(data);\n const local = getLocalStorage();\n if (local) {\n local.setItem(key, raw);\n }\n}\nexport function getLocal(key) {\n let data = null;\n let raw = null;\n const local = getLocalStorage();\n if (local) {\n raw = local.getItem(key);\n }\n data = raw ? safeJsonParse(raw) : raw;\n return data;\n}\nexport function removeLocal(key) {\n const local = getLocalStorage();\n if (local) {\n local.removeItem(key);\n }\n}\n//# sourceMappingURL=local.js.map","import { setLocal } from \"./local\";\nexport const mobileLinkChoiceKey = \"WALLETCONNECT_DEEPLINK_CHOICE\";\nexport function formatIOSMobile(uri, entry) {\n const encodedUri = encodeURIComponent(uri);\n return entry.universalLink\n ? `${entry.universalLink}/wc?uri=${encodedUri}`\n : entry.deepLink\n ? `${entry.deepLink}${entry.deepLink.endsWith(\":\") ? \"//\" : \"/\"}wc?uri=${encodedUri}`\n : \"\";\n}\nexport function saveMobileLinkInfo(data) {\n const focusUri = data.href.split(\"?\")[0];\n setLocal(mobileLinkChoiceKey, Object.assign(Object.assign({}, data), { href: focusUri }));\n}\nexport function getMobileRegistryEntry(registry, name) {\n return registry.filter((entry) => entry.name.toLowerCase().includes(name.toLowerCase()))[0];\n}\nexport function getMobileLinkRegistry(registry, whitelist) {\n let links = registry;\n if (whitelist) {\n links = whitelist.map((name) => getMobileRegistryEntry(registry, name)).filter(Boolean);\n }\n return links;\n}\n//# sourceMappingURL=mobile.js.map","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\n//# sourceMappingURL=constants.js.map","import BN from \"bn.js\";\nimport * as encoding from \"@walletconnect/encoding\";\nexport function convertArrayBufferToBuffer(arrBuf) {\n return encoding.arrayToBuffer(new Uint8Array(arrBuf));\n}\nexport function convertArrayBufferToUtf8(arrBuf) {\n return encoding.arrayToUtf8(new Uint8Array(arrBuf));\n}\nexport function convertArrayBufferToHex(arrBuf, noPrefix) {\n return encoding.arrayToHex(new Uint8Array(arrBuf), !noPrefix);\n}\nexport function convertArrayBufferToNumber(arrBuf) {\n return encoding.arrayToNumber(new Uint8Array(arrBuf));\n}\nexport function concatArrayBuffers(...args) {\n return encoding.hexToArray(args.map(b => encoding.arrayToHex(new Uint8Array(b))).join(\"\")).buffer;\n}\nexport function convertBufferToArrayBuffer(buf) {\n return encoding.bufferToArray(buf).buffer;\n}\nexport function convertBufferToUtf8(buf) {\n return encoding.bufferToUtf8(buf);\n}\nexport function convertBufferToHex(buf, noPrefix) {\n return encoding.bufferToHex(buf, !noPrefix);\n}\nexport function convertBufferToNumber(buf) {\n return encoding.bufferToNumber(buf);\n}\nexport function concatBuffers(...args) {\n return encoding.concatBuffers(...args);\n}\nexport function convertUtf8ToArrayBuffer(utf8) {\n return encoding.utf8ToArray(utf8).buffer;\n}\nexport function convertUtf8ToBuffer(utf8) {\n return encoding.utf8ToBuffer(utf8);\n}\nexport function convertUtf8ToHex(utf8, noPrefix) {\n return encoding.utf8ToHex(utf8, !noPrefix);\n}\nexport function convertUtf8ToNumber(utf8) {\n return new BN(utf8, 10).toNumber();\n}\nexport function convertHexToBuffer(hex) {\n return encoding.hexToBuffer(hex);\n}\nexport function convertHexToArrayBuffer(hex) {\n return encoding.hexToArray(hex).buffer;\n}\nexport function convertHexToUtf8(hex) {\n return encoding.hexToUtf8(hex);\n}\nexport function convertHexToNumber(hex) {\n return new BN(encoding.removeHexPrefix(hex), \"hex\").toNumber();\n}\nexport function convertNumberToBuffer(num) {\n return encoding.numberToBuffer(num);\n}\nexport function convertNumberToArrayBuffer(num) {\n return encoding.numberToArray(num).buffer;\n}\nexport function convertNumberToUtf8(num) {\n return new BN(num).toString();\n}\nexport function convertNumberToHex(num, noPrefix) {\n const hex = encoding.removeHexPrefix(encoding.sanitizeHex(new BN(num).toString(16)));\n return noPrefix ? hex : encoding.addHexPrefix(hex);\n}\n//# sourceMappingURL=encoding.js.map","export class IEvents {\n}\n//# sourceMappingURL=misc.js.map","export function isJsonRpcPayload(payload) {\n return \"id\" in payload && \"jsonrpc\" in payload && payload.jsonrpc === \"2.0\";\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","import { keccak_256 } from \"js-sha3\";\nimport { removeHexPrefix, addHexPrefix } from \"@walletconnect/encoding\";\nimport { convertUtf8ToHex, convertNumberToHex, convertUtf8ToBuffer } from \"./encoding\";\nimport { sanitizeHex, removeHexLeadingZeros } from \"./misc\";\nimport { isEmptyArray, isHexString, isEmptyString } from \"./validators\";\nexport function toChecksumAddress(address) {\n address = removeHexPrefix(address.toLowerCase());\n const hash = removeHexPrefix(keccak_256(convertUtf8ToBuffer(address)));\n let checksum = \"\";\n for (let i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) > 7) {\n checksum += address[i].toUpperCase();\n }\n else {\n checksum += address[i];\n }\n }\n return addHexPrefix(checksum);\n}\nexport const isValidAddress = (address) => {\n if (!address) {\n return false;\n }\n else if (address.toLowerCase().substring(0, 2) !== \"0x\") {\n return false;\n }\n else if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n }\n else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n return true;\n }\n else {\n return address === toChecksumAddress(address);\n }\n};\nexport function parsePersonalSign(params) {\n if (!isEmptyArray(params) && !isHexString(params[0])) {\n params[0] = convertUtf8ToHex(params[0]);\n }\n return params;\n}\nexport function parseTransactionData(txData) {\n if (typeof txData.type !== \"undefined\" && txData.type !== \"0\")\n return txData;\n if (typeof txData.from === \"undefined\" || !isValidAddress(txData.from)) {\n throw new Error(`Transaction object must include a valid 'from' value.`);\n }\n function parseHexValues(value) {\n let result = value;\n if (typeof value === \"number\" || (typeof value === \"string\" && !isEmptyString(value))) {\n if (!isHexString(value)) {\n result = convertNumberToHex(value);\n }\n else if (typeof value === \"string\") {\n result = sanitizeHex(value);\n }\n }\n if (typeof result === \"string\") {\n result = removeHexLeadingZeros(result);\n }\n return result;\n }\n const txDataRPC = {\n from: sanitizeHex(txData.from),\n to: typeof txData.to === \"undefined\" ? undefined : sanitizeHex(txData.to),\n gasPrice: typeof txData.gasPrice === \"undefined\" ? \"\" : parseHexValues(txData.gasPrice),\n gas: typeof txData.gas === \"undefined\"\n ? typeof txData.gasLimit === \"undefined\"\n ? \"\"\n : parseHexValues(txData.gasLimit)\n : parseHexValues(txData.gas),\n value: typeof txData.value === \"undefined\" ? \"\" : parseHexValues(txData.value),\n nonce: typeof txData.nonce === \"undefined\" ? \"\" : parseHexValues(txData.nonce),\n data: typeof txData.data === \"undefined\" ? \"\" : sanitizeHex(txData.data) || \"0x\",\n };\n const prunable = [\"gasPrice\", \"gas\", \"value\", \"nonce\"];\n Object.keys(txDataRPC).forEach((key) => {\n if ((typeof txDataRPC[key] === \"undefined\" ||\n (typeof txDataRPC[key] === \"string\" && !txDataRPC[key].trim().length)) &&\n prunable.includes(key)) {\n delete txDataRPC[key];\n }\n });\n return txDataRPC;\n}\n//# sourceMappingURL=ethereum.js.map","export function promisify(originalFn, thisArg) {\n const promisifiedFunction = async (...callArgs) => {\n return new Promise((resolve, reject) => {\n const callback = (err, data) => {\n if (err === null || typeof err === \"undefined\") {\n reject(err);\n }\n resolve(data);\n };\n originalFn.apply(thisArg, [...callArgs, callback]);\n });\n };\n return promisifiedFunction;\n}\nexport function formatRpcError(error) {\n const message = error.message || \"Failed or Rejected Request\";\n let code = -32000;\n if (error && !error.code) {\n switch (message) {\n case \"Parse error\":\n code = -32700;\n break;\n case \"Invalid request\":\n code = -32600;\n break;\n case \"Method not found\":\n code = -32601;\n break;\n case \"Invalid params\":\n code = -32602;\n break;\n case \"Internal error\":\n code = -32603;\n break;\n default:\n code = -32000;\n break;\n }\n }\n const result = {\n code,\n message,\n };\n return result;\n}\n//# sourceMappingURL=payload.js.map","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","import { parseQueryString } from \"./url\";\nexport function isWalletConnectSession(object) {\n return typeof object.bridge !== \"undefined\";\n}\nexport function parseWalletConnectUri(str) {\n const pathStart = str.indexOf(\":\");\n const pathEnd = str.indexOf(\"?\") !== -1 ? str.indexOf(\"?\") : undefined;\n const protocol = str.substring(0, pathStart);\n const path = str.substring(pathStart + 1, pathEnd);\n function parseRequiredParams(path) {\n const separator = \"@\";\n const values = path.split(separator);\n const requiredParams = {\n handshakeTopic: values[0],\n version: parseInt(values[1], 10),\n };\n return requiredParams;\n }\n const requiredParams = parseRequiredParams(path);\n const queryString = typeof pathEnd !== \"undefined\" ? str.substr(pathEnd) : \"\";\n function parseQueryParams(queryString) {\n const result = parseQueryString(queryString);\n const parameters = {\n key: result.key || \"\",\n bridge: result.bridge || \"\",\n };\n return parameters;\n }\n const queryParams = parseQueryParams(queryString);\n const result = Object.assign(Object.assign({ protocol }, requiredParams), queryParams);\n return result;\n}\n//# sourceMappingURL=session.js.map","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\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\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\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(null, 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(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0\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.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 var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var 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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1\n var arrLength = arr.length\n var 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 var i\n if (dir) {\n var 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 var found = true\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = ''\n var 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 var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\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 var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var 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 var i = byteLength\n var mul = 1\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\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 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 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 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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var 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 var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\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 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 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 (!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('sourceStart out of bounds')\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 var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\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 } else if (typeof val === 'number') {\n val = val & 255\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 var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var 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 var byteArray = []\n for (var 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 var c, hi, lo\n var byteArray = []\n for (var 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 for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\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","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import type { WebExtensionNetworkInfo } from './network';\nimport type { WebExtensionWalletInfo } from './wallet';\n\nexport enum WebExtensionStatus {\n INITIALIZING = 'initializing',\n NO_AVAILABLE = 'no_available',\n READY = 'ready',\n}\n\nexport interface WebExtensionInitializing {\n type: WebExtensionStatus.INITIALIZING;\n}\n\nexport interface WebExtensionNoAvailable {\n type: WebExtensionStatus.NO_AVAILABLE;\n isConnectorExists: boolean;\n isApproved?: boolean;\n}\n\nexport interface WebExtensionReady {\n type: WebExtensionStatus.READY;\n focusedWalletAddress: string | undefined;\n wallets: WebExtensionWalletInfo[];\n network: WebExtensionNetworkInfo;\n}\n\nexport type WebExtensionStates =\n | WebExtensionInitializing\n | WebExtensionNoAvailable\n | WebExtensionReady;\n","import {\n CreateTxOptions,\n Fee,\n Msg,\n PublicKey,\n Tx,\n} from '@terra-money/terra.js';\nimport {\n WebExtensionCreateTxFailed,\n WebExtensionTxFailed,\n WebExtensionTxUnspecifiedError,\n} from '../errors';\n\nexport enum WebExtensionTxStatus {\n PROGRESS = 'PROGRESS',\n SUCCEED = 'SUCCEED',\n FAIL = 'FAIL',\n DENIED = 'DENIED',\n}\n\nexport interface WebExtensionTxProgress {\n status: WebExtensionTxStatus.PROGRESS;\n payload?: unknown;\n}\n\nexport interface WebExtensionPostPayload {\n height: number;\n raw_log: string;\n txhash: string;\n}\n\nexport type WebExtensionSignPayload = Tx.Data;\n\nexport interface WebExtensionSignBytesPayload {\n recid: number;\n\n /**\n * base64 Uint8Array\n *\n * @example\n * ```\n * // stringified by\n * Buffer.from(Uint8Array).toString('base64')\n *\n * // to Uint8Array\n * Uint8Array.from(Buffer.from(base64String, 'base64'))\n * ```\n */\n signature: string;\n\n /**\n * @example\n * ```\n * PublicKey.fromData(public_key)\n * ```\n */\n public_key?: PublicKey.Data;\n}\n\nexport interface WebExtensionTxSucceed {\n status: WebExtensionTxStatus.SUCCEED;\n payload: Payload;\n}\n\nexport interface WebExtensionTxFail {\n status: WebExtensionTxStatus.FAIL;\n error:\n | WebExtensionCreateTxFailed\n | WebExtensionTxFailed\n | WebExtensionTxUnspecifiedError;\n}\n\nexport interface WebExtensionTxDenied {\n status: WebExtensionTxStatus.DENIED;\n}\n\nexport type WebExtensionTxResult =\n | WebExtensionTxProgress\n | WebExtensionTxSucceed\n | WebExtensionTxFail\n | WebExtensionTxDenied;\n\n// ---------------------------------------------\n// functions\n// ---------------------------------------------\nexport interface SerializedCreateTxOptions\n extends Omit {\n msgs: string[];\n fee: string | undefined;\n}\n\nexport function serializeTx(tx: CreateTxOptions): SerializedCreateTxOptions {\n return {\n msgs: tx.msgs.map((msg) => msg.toJSON()),\n fee: tx.fee?.toJSON(),\n memo: tx.memo,\n gasPrices: tx.gasPrices?.toString(),\n gasAdjustment: tx.gasAdjustment?.toString(),\n feeDenoms: tx.feeDenoms,\n };\n}\n\nexport function deserializeTx(tx: SerializedCreateTxOptions): CreateTxOptions {\n const msgs = tx.msgs.map((msg) => JSON.parse(msg));\n const isProto = '@type' in msgs[0];\n\n return {\n ...tx,\n msgs: msgs.map((msg) => (isProto ? Msg.fromData(msg) : Msg.fromAmino(msg))),\n fee: tx.fee\n ? isProto\n ? Fee.fromData(JSON.parse(tx.fee))\n : Fee.fromAmino(JSON.parse(tx.fee))\n : undefined,\n };\n}\n","export class WebExtensionUserDenied extends Error {\n constructor() {\n super('User Denied');\n this.name = 'WebExtensionUserDenied';\n }\n\n toString = () => {\n return `[${this.name}]`;\n };\n\n toJSON = () => {\n return {\n name: this.name,\n };\n };\n}\n\nexport class WebExtensionCreateTxFailed extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'WebExtensionCreateTxFailed';\n }\n\n toString = () => {\n return `[${this.name} message=\"${this.message}\"]`;\n };\n\n toJSON = () => {\n return {\n name: this.name,\n message: this.message,\n };\n };\n}\n\nexport class WebExtensionTxFailed extends Error {\n constructor(\n public readonly txhash: string | undefined,\n message: string,\n public readonly raw_message: any,\n ) {\n super(message);\n this.name = 'WebExtensionTxFailed';\n }\n\n toString = () => {\n return `[${this.name} txhash=\"${this.txhash}\" message=\"${\n this.message\n }\"]\\n${JSON.stringify(this.raw_message, null, 2)}`;\n };\n\n toJSON = () => {\n return {\n name: this.name,\n txhash: this.txhash,\n message: this.message,\n raw_message: this.raw_message,\n };\n };\n}\n\nexport class WebExtensionTxUnspecifiedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'WebExtensionTxUnspecifiedError';\n }\n\n toString = () => {\n return `[${this.name} message=\"${this.message}\"]`;\n };\n\n toJSON = () => {\n return {\n name: this.name,\n message: this.message,\n };\n };\n}\n\nexport class WebExtensionLedgerError extends Error {\n constructor(public readonly code: number, message: string) {\n super(message);\n this.name = 'WebExtensionLedgerError';\n }\n\n toString = () => {\n return `[${this.name} code=\"${this.code}\" message=\"${this.message}\"]`;\n };\n\n toJSON = () => {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n };\n };\n}\n\n// ---------------------------------------------\n// functions\n// ---------------------------------------------\nexport function isWebExtensionError(error: unknown): boolean {\n return (\n error instanceof WebExtensionUserDenied ||\n error instanceof WebExtensionCreateTxFailed ||\n error instanceof WebExtensionTxFailed ||\n error instanceof WebExtensionLedgerError ||\n error instanceof WebExtensionTxUnspecifiedError\n );\n}\n\nexport function createTxErrorFromJson(\n json: any,\n):\n | WebExtensionUserDenied\n | WebExtensionCreateTxFailed\n | WebExtensionTxFailed\n | WebExtensionLedgerError\n | WebExtensionTxUnspecifiedError {\n switch (json.name) {\n case 'WebExtensionUserDenied':\n return new WebExtensionUserDenied();\n case 'WebExtensionCreateTxFailed':\n return new WebExtensionCreateTxFailed(json.message);\n case 'WebExtensionLedgerError':\n return new WebExtensionLedgerError(json.code, json.message);\n case 'WebExtensionTxFailed':\n return new WebExtensionTxFailed(\n json.txhash,\n json.message,\n json.raw_message,\n );\n default:\n return new WebExtensionTxUnspecifiedError(\n 'message' in json ? json.message : String(json),\n );\n }\n}\n","export function isError(\n error: unknown,\n errorType: { new (...args: any[]): E },\n): error is E {\n try {\n return (\n //@ts-ignore\n error instanceof errorType || error.constructor.name === errorType.name\n );\n } catch {\n return false;\n }\n}\n","\"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(\"./core\"), exports);\n__exportStar(require(\"./key\"), exports);\n__exportStar(require(\"./client\"), exports);\n__exportStar(require(\"./extension\"), exports);\n__exportStar(require(\"./util\"), exports);\n//# sourceMappingURL=index.js.map","export const LENGTH_0 = 0;\nexport const LENGTH_1 = 1;\nexport const LENGTH_16 = 16;\nexport const LENGTH_32 = 32;\nexport const LENGTH_64 = 64;\nexport const LENGTH_128 = 128;\nexport const LENGTH_256 = 256;\nexport const LENGTH_512 = 512;\nexport const LENGTH_1024 = 1024;\n//# sourceMappingURL=length.js.map","import { LENGTH_1, LENGTH_32, LENGTH_16, LENGTH_256 } from \"./length\";\nexport const AES_LENGTH = LENGTH_256;\nexport const HMAC_LENGTH = LENGTH_256;\nexport const AES_BROWSER_ALGO = \"AES-CBC\";\nexport const HMAC_BROWSER_ALGO = `SHA-${AES_LENGTH}`;\nexport const HMAC_BROWSER = \"HMAC\";\nexport const SHA256_BROWSER_ALGO = \"SHA-256\";\nexport const SHA512_BROWSER_ALGO = \"SHA-512\";\nexport const AES_NODE_ALGO = `aes-${AES_LENGTH}-cbc`;\nexport const HMAC_NODE_ALGO = `sha${HMAC_LENGTH}`;\nexport const SHA256_NODE_ALGO = \"sha256\";\nexport const SHA512_NODE_ALGO = \"sha512\";\nexport const RIPEMD160_NODE_ALGO = \"ripemd160\";\nexport const PREFIX_LENGTH = LENGTH_1;\nexport const KEY_LENGTH = LENGTH_32;\nexport const IV_LENGTH = LENGTH_16;\nexport const MAC_LENGTH = LENGTH_32;\n//# sourceMappingURL=default.js.map","export const ENCRYPT_OP = \"encrypt\";\nexport const DECRYPT_OP = \"decrypt\";\nexport const SIGN_OP = \"sign\";\nexport const VERIFY_OP = \"verify\";\n//# sourceMappingURL=operations.js.map","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","/*! 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","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\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.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","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"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,12000uluna`\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,12302uluna`\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.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 __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","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import {\n Connection,\n ConnectType,\n Installation,\n NetworkInfo,\n SignBytesResult,\n SignResult,\n TxResult,\n WalletInfo,\n WalletStatus,\n} from '@terra-money/wallet-types';\nimport { CreateTxOptions } from '@terra-money/terra.js';\nimport { Context, createContext, useContext } from 'react';\n\nexport interface Wallet {\n /**\n * current client status\n *\n * this will be one of WalletStatus.INITIALIZING | WalletStatus.WALLET_NOT_CONNECTED | WalletStatus.WALLET_CONNECTED\n *\n * INITIALIZING = checking that the session and the chrome extension installation. (show the loading to users)\n * WALLET_NOT_CONNECTED = there is no connected wallet (show the connect and install options to users)\n * WALLET_CONNECTED = there is aconnected wallet (show the wallet info and disconnect button to users)\n *\n * @see Wallet#refetchStates\n * @see WalletController#status\n */\n status: WalletStatus;\n\n /**\n * current selected network\n *\n * - if status is INITIALIZING or WALLET_NOT_CONNECTED = this will be the defaultNetwork\n * - if status is WALLET_CONNECTED = this depends on the connected environment\n *\n * @see WalletProviderProps#defaultNetwork\n * @see WalletController#network\n */\n network: NetworkInfo;\n\n /**\n * available connect types on the browser\n *\n * @see Wallet#connect\n * @see WalletController#availableConnectTypes\n */\n availableConnectTypes: ConnectType[];\n\n /**\n * available connections includes identifier, name, icon\n *\n * @example\n * ```\n * const { availableConnections, connect } = useWallet()\n *\n * return (\n *
\n * {\n * availableConnections.map(({type, identifier, name, icon}) => (\n * connect(type, identifier)}>\n * {name}\n * \n * ))\n * }\n *
\n * )\n * ```\n */\n availableConnections: Connection[];\n\n /**\n * current connected connection\n */\n connection: Connection | undefined;\n\n /**\n * connect to wallet\n *\n * @example\n * ```\n * const { status, availableConnectTypes, connect } = useWallet()\n *\n * return status === WalletStatus.WALLET_NOT_CONNECTED &&\n * availableConnectTypes.includs(ConnectType.EXTENSION) &&\n * \n * ```\n *\n * @see Wallet#availableConnectTypes\n * @see WalletController#connect\n */\n connect: (type?: ConnectType, identifier?: string) => void;\n\n /**\n * manual connect to read only session\n *\n * @see Wallet#connectReadonly\n */\n connectReadonly: (terraAddress: string, network: NetworkInfo) => void;\n\n /**\n * available install types on the browser\n *\n * in this time, this only contains [ConnectType.EXTENSION]\n *\n * @see Wallet#install\n * @see WalletController#availableInstallTypes\n */\n availableInstallTypes: ConnectType[];\n\n /**\n * available installations includes identifier, name, icon, url\n *\n * @example\n * ```\n * const { availableInstallations } = useWallet()\n *\n * return (\n *
\n * )\n * ```\n *\n * @see Wallet#install\n * @see WalletController#availableInstallations\n */\n availableInstallations: Installation[];\n\n /**\n * @deprecated Please use availableInstallations\n *\n * install for the connect type\n *\n * @example\n * ```\n * const { status, availableInstallTypes } = useWallet()\n *\n * return status === WalletStatus.WALLET_NOT_CONNECTED &&\n * availableInstallTypes.includes(ConnectType.EXTENSION) &&\n * \n * ```\n *\n * @see Wallet#availableInstallTypes\n * @see WalletController#install\n */\n install: (type: ConnectType) => void;\n\n /**\n * connected wallets\n *\n * this will be like\n * `[{ connectType: ConnectType.WALLETCONNECT, terraAddress: 'XXXXXXXXX' }]`\n *\n * in this time, you can get only one wallet. `wallets[0]`\n *\n * @see WalletController#wallets\n */\n wallets: WalletInfo[];\n\n /**\n * disconnect\n *\n * @example\n * ```\n * const { status, disconnect } = useWallet()\n *\n * return status === WalletStatus.WALLET_CONNECTED &&\n * \n * ```\n */\n disconnect: () => void;\n\n /**\n * reload the connected wallet states\n *\n * in this time, this only work on the ConnectType.EXTENSION\n *\n * @see WalletController#refetchStates\n */\n refetchStates: () => void;\n\n /**\n * @deprecated please use refetchStates(). this function will remove on next major update\n */\n recheckStatus: () => void;\n\n /**\n * support features of this connection\n *\n * @example\n * ```\n * const { supportFeatures } = useWallet()\n *\n * return (\n *
\n * {\n * supportFeatures.has('post') &&\n * \n * }\n * {\n * supportFeatures.has('cw20-token') &&\n * \n * }\n *
\n * )\n * ```\n *\n * This type is same as `import type { TerraWebExtensionFeatures } from '@terra-money/web-extension-interface'`\n */\n supportFeatures: Set<\n 'post' | 'sign' | 'sign-bytes' | 'cw20-token' | 'network'\n >;\n\n /**\n * post transaction\n *\n * @example\n * ```\n * const { post } = useWallet()\n *\n * const callback = useCallback(async () => {\n * try {\n * const result: TxResult = await post({...CreateTxOptions})\n * // DO SOMETHING...\n * } catch (error) {\n * if (error instanceof UserDenied) {\n * // DO SOMETHING...\n * } else {\n * // DO SOMETHING...\n * }\n * }\n * }, [])\n * ```\n *\n * @param { CreateTxOptions } tx transaction data\n * @param terraAddress - does not work at this time. for the future extension\n *\n * @return { Promise }\n *\n * @throws { UserDenied } user denied the tx\n * @throws { CreateTxFailed } did not create txhash (error dose not broadcasted)\n * @throws { TxFailed } created txhash (error broadcated)\n * @throws { Timeout } user does not act anything in specific time\n * @throws { TxUnspecifiedError } unknown error\n *\n * @see WalletController#post\n */\n post: (tx: CreateTxOptions, terraAddress?: string) => Promise;\n\n /**\n * sign transaction\n *\n * @example\n * ```\n * const { sign } = useWallet()\n *\n * const callback = useCallback(async () => {\n * try {\n * const result: SignResult = await sign({...CreateTxOptions})\n *\n * // Broadcast SignResult\n * const tx = result.result\n *\n * const lcd = new LCDClient({\n * chainID: connectedWallet.network.chainID,\n * URL: connectedWallet.network.lcd,\n * })\n *\n * const txResult = await lcd.tx.broadcastSync(tx)\n *\n * // DO SOMETHING...\n * } catch (error) {\n * if (error instanceof UserDenied) {\n * // DO SOMETHING...\n * } else {\n * // DO SOMETHING...\n * }\n * }\n * }, [])\n * ```\n *\n * @param { CreateTxOptions } tx transaction data\n * @param terraAddress - does not work at this time. for the future extension\n *\n * @return { Promise }\n *\n * @throws { UserDenied } user denied the tx\n * @throws { CreateTxFailed } did not create txhash (error dose not broadcasted)\n * @throws { TxFailed } created txhash (error broadcated)\n * @throws { Timeout } user does not act anything in specific time\n * @throws { TxUnspecifiedError } unknown error\n *\n * @see WalletController#sign\n */\n sign: (tx: CreateTxOptions, terraAddress?: string) => Promise;\n\n /**\n * sign any bytes\n *\n * @example\n * ```\n * const { signBytes } = useWallet()\n *\n * const BYTES = Buffer.from('hello world')\n *\n * const callback = useCallback(async () => {\n * try {\n * const { result }: SignBytesResult = await signBytes(BYTES)\n *\n * console.log(result.recid)\n * console.log(result.signature)\n * console.log(result.public_key)\n *\n * const verified: boolean = verifyBytes(BYTES, result)\n * } catch (error) {\n * if (error instanceof UserDenied) {\n * // DO SOMETHING...\n * } else {\n * // DO SOMETHING...\n * }\n * }\n * }, [])\n * ```\n *\n * @param bytes\n */\n signBytes: (bytes: Buffer, terraAddress?: string) => Promise;\n\n /**\n * check if tokens are added on the extension\n *\n * @param chainID\n * @param tokenAddrs cw20 token addresses\n *\n * @return token exists\n *\n * @see WalletController#hasCW20Tokens\n */\n hasCW20Tokens: (\n chainID: string,\n ...tokenAddrs: string[]\n ) => Promise<{ [tokenAddr: string]: boolean }>;\n\n /**\n * request add token addresses to browser extension\n *\n * @param chainID\n * @param tokenAddrs cw20 token addresses\n *\n * @return token exists\n *\n * @see WalletController#addCW20Tokens\n */\n addCW20Tokens: (\n chainID: string,\n ...tokenAddrs: string[]\n ) => Promise<{ [tokenAddr: string]: boolean }>;\n\n /**\n * check if network is added on the extension\n *\n * @param network\n *\n * @return network exists\n *\n * @see WalletController#hasNetwork\n */\n hasNetwork: (network: Omit) => Promise;\n\n /**\n * request add network to browser extension\n *\n * @param network\n *\n * @return network exists\n *\n * @see WalletController#addNetwork\n */\n addNetwork: (network: NetworkInfo) => Promise;\n\n /**\n * Some mobile wallet emulates the behavior of chrome extension.\n * It confirms that the current connection environment is such a wallet.\n * (If you are running connect() by checking availableConnectType, you do not need to use this API.)\n *\n * @see WalletController#isChromeExtensionCompatibleBrowser\n */\n isChromeExtensionCompatibleBrowser: () => boolean;\n}\n\n// @ts-ignore\nexport const WalletContext: Context = createContext();\n\nexport function useWallet(): Wallet {\n return useContext(WalletContext);\n}\n","import {\n ConnectedWallet,\n createConnectedWallet,\n} from '@terra-money/wallet-types';\nimport { useMemo } from 'react';\nimport { useWallet } from './useWallet';\n\nexport function useConnectedWallet(): ConnectedWallet | undefined {\n const {\n status,\n network,\n wallets,\n post,\n sign,\n signBytes,\n supportFeatures,\n connection,\n } = useWallet();\n\n return useMemo(() => {\n return createConnectedWallet({\n status,\n network,\n wallets,\n post,\n sign,\n signBytes,\n supportFeatures,\n connection,\n });\n }, [\n connection,\n network,\n post,\n sign,\n signBytes,\n status,\n supportFeatures,\n wallets,\n ]);\n}\n","import { NetworkInfo } from '@terra-money/wallet-types';\nimport { WalletControllerOptions } from './controller';\n\ninterface ChainInfo {\n name: string;\n chainID: string;\n lcd: string;\n walletconnectID?: number;\n}\n\nexport type WalletControllerChainOptions = Pick<\n WalletControllerOptions,\n 'defaultNetwork' | 'walletConnectChainIds'\n>;\n\nconst FALLBACK_MAINNET = {\n name: 'mainnet',\n chainID: 'columbus-5',\n lcd: 'https://lcd.terra.dev',\n};\n\nconst FALLBACK: WalletControllerChainOptions = {\n defaultNetwork: FALLBACK_MAINNET,\n walletConnectChainIds: {\n 1: FALLBACK_MAINNET,\n 0: {\n name: 'testnet',\n chainID: 'bombay-12',\n lcd: 'https://bombay-lcd.terra.dev',\n },\n },\n};\n\nlet cache: WalletControllerChainOptions;\n\nexport async function getChainOptions(): Promise {\n return fetch('https://assets.terra.money/chains.json')\n .then((res) => res.json())\n .then((data: Record) => {\n const chains = Object.values(data);\n const walletConnectChainIds = chains.reduce((result, network) => {\n if (typeof network.walletconnectID === 'number') {\n result[network.walletconnectID] = network;\n } else if (!result[1] && network.name === 'mainnet') {\n result[1] = network;\n } else if (!result[0] && network.name === 'testnet') {\n result[0] = network;\n }\n return result;\n }, {} as Record);\n const chainOptions: WalletControllerChainOptions = {\n defaultNetwork: walletConnectChainIds[1],\n walletConnectChainIds,\n };\n cache = chainOptions;\n return chainOptions;\n })\n .catch((error) => {\n console.error('Failed to fetch chains.json', error);\n return cache ?? FALLBACK;\n });\n}\n","import { TerraWebExtensionFeatures } from '@terra-money/web-extension-interface';\nimport {\n Connection,\n ConnectType,\n Installation,\n Wallet,\n WalletContext,\n WalletInfo,\n WalletStates,\n WalletStatus,\n} from '@terra-money/use-wallet';\nimport {\n WalletController,\n WalletControllerOptions,\n} from '@terra-money/wallet-controller';\nimport React, { ReactNode, useEffect, useMemo, useState } from 'react';\n\nexport interface WalletProviderProps extends WalletControllerOptions {\n children: ReactNode;\n}\n\nconst EMPTY_ARRAY: WalletInfo[] = [];\nconst EMPTY_SUPPORT_FEATURES = new Set();\n\nexport function WalletProvider({\n children,\n defaultNetwork,\n walletConnectChainIds,\n connectorOpts,\n pushServerOpts,\n createReadonlyWalletSession,\n selectExtension,\n waitingChromeExtensionInstallCheck,\n dangerously__chromeExtensionCompatibleBrowserCheck,\n}: WalletProviderProps) {\n const [controller] = useState(\n () =>\n new WalletController({\n defaultNetwork,\n walletConnectChainIds,\n connectorOpts,\n pushServerOpts,\n createReadonlyWalletSession,\n selectExtension,\n waitingChromeExtensionInstallCheck,\n dangerously__chromeExtensionCompatibleBrowserCheck,\n }),\n );\n\n const [availableConnectTypes, setAvailableConnectTypes] = useState<\n ConnectType[]\n >(() => []);\n\n const [availableInstallTypes, setAvailableInstallTypes] = useState<\n ConnectType[]\n >(() => []);\n\n const [availableConnections, setAvailableConnections] = useState<\n Connection[]\n >(() => []);\n\n const [availableInstallations, setAvailableInstallations] = useState<\n Installation[]\n >(() => []);\n\n const [states, setStates] = useState(() => ({\n status: WalletStatus.INITIALIZING,\n network: defaultNetwork,\n }));\n\n useEffect(() => {\n const availableConnectTypesSubscription = controller\n .availableConnectTypes()\n .subscribe({\n next: (value) => {\n setAvailableConnectTypes(value);\n },\n });\n\n const availableInstallTypesSubscription = controller\n .availableInstallTypes()\n .subscribe({\n next: (value) => {\n setAvailableInstallTypes(value);\n },\n });\n\n const availableConnectionsSubscription = controller\n .availableConnections()\n .subscribe({\n next: (value) => {\n setAvailableConnections(value);\n },\n });\n\n const availableInstallationsSubscription = controller\n .availableInstallations()\n .subscribe({\n next: (value) => {\n setAvailableInstallations(value);\n },\n });\n\n const statesSubscription = controller.states().subscribe({\n next: (value) => {\n setStates(value);\n },\n });\n\n return () => {\n availableConnectTypesSubscription.unsubscribe();\n availableInstallTypesSubscription.unsubscribe();\n availableConnectionsSubscription.unsubscribe();\n availableInstallationsSubscription.unsubscribe();\n statesSubscription.unsubscribe();\n };\n }, [controller]);\n\n const state = useMemo(() => {\n return {\n availableConnectTypes,\n availableInstallTypes,\n availableConnections,\n availableInstallations,\n status: states.status,\n network: states.network,\n wallets:\n states.status === WalletStatus.WALLET_CONNECTED\n ? states.wallets\n : EMPTY_ARRAY,\n install: controller.install,\n connect: controller.connect,\n connectReadonly: controller.connectReadonly,\n disconnect: controller.disconnect,\n connection:\n states.status === WalletStatus.WALLET_CONNECTED\n ? states.connection\n : undefined,\n supportFeatures:\n states.status === WalletStatus.WALLET_CONNECTED\n ? states.supportFeatures\n : EMPTY_SUPPORT_FEATURES,\n post: controller.post,\n sign: controller.sign,\n signBytes: controller.signBytes,\n hasCW20Tokens: controller.hasCW20Tokens,\n addCW20Tokens: controller.addCW20Tokens,\n hasNetwork: controller.hasNetwork,\n addNetwork: controller.addNetwork,\n refetchStates: controller.refetchStates,\n recheckStatus: controller.refetchStates,\n isChromeExtensionCompatibleBrowser:\n controller.isChromeExtensionCompatibleBrowser,\n };\n }, [\n availableConnectTypes,\n availableInstallTypes,\n availableConnections,\n availableInstallations,\n controller,\n states,\n ]);\n\n return (\n {children}\n );\n}\n","\"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/LazyGradedVestingAccount\"), 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// WASM\n__exportStar(require(\"./wasm/msgs\"), 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-transfer/msgs\"), exports);\n// bech32 types\n__exportStar(require(\"./bech32\"), exports);\n//# sourceMappingURL=index.js.map","'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/**\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 * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\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 (toString.call(val) !== '[object 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 * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\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 URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\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\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};\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","\"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('uluna', 1500) -> 1500uluna`\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 __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';\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","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import * as env from \"@walletconnect/environment\";\nimport { ENCRYPT_OP, DECRYPT_OP, SIGN_OP, VERIFY_OP, AES_BROWSER_ALGO, AES_LENGTH, HMAC_BROWSER_ALGO, HMAC_BROWSER, HMAC_LENGTH, SHA256_BROWSER_ALGO, SHA512_BROWSER_ALGO, LENGTH_512, } from \"../constants\";\nexport function getAlgo(type) {\n return type === AES_BROWSER_ALGO\n ? { length: AES_LENGTH, name: AES_BROWSER_ALGO }\n : {\n hash: { name: HMAC_BROWSER_ALGO },\n name: HMAC_BROWSER,\n };\n}\nexport function getOps(type) {\n return type === AES_BROWSER_ALGO\n ? [ENCRYPT_OP, DECRYPT_OP]\n : [SIGN_OP, VERIFY_OP];\n}\nexport async function browserExportKey(cryptoKey, type = AES_BROWSER_ALGO) {\n const subtle = env.getSubtleCrypto();\n return new Uint8Array(await subtle.exportKey(\"raw\", cryptoKey));\n}\nexport async function browserImportKey(buffer, type = AES_BROWSER_ALGO) {\n return env.getSubtleCrypto().importKey(\"raw\", buffer, getAlgo(type), true, getOps(type));\n}\nexport async function browserAesEncrypt(iv, key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, AES_BROWSER_ALGO);\n const result = await subtle.encrypt({\n iv,\n name: AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nexport async function browserAesDecrypt(iv, key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, AES_BROWSER_ALGO);\n const result = await subtle.decrypt({\n iv,\n name: AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nexport async function browserHmacSha256Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: HMAC_LENGTH,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function browserHmacSha512Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: LENGTH_512,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function browserSha256(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA256_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\nexport async function browserSha512(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA512_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\n//# sourceMappingURL=browser.js.map","export const ERROR_SESSION_CONNECTED = \"Session currently connected\";\nexport const ERROR_SESSION_DISCONNECTED = \"Session currently disconnected\";\nexport const ERROR_SESSION_REJECTED = \"Session Rejected\";\nexport const ERROR_MISSING_JSON_RPC = \"Missing JSON RPC response\";\nexport const ERROR_MISSING_RESULT = `JSON-RPC success response must include \"result\" field`;\nexport const ERROR_MISSING_ERROR = `JSON-RPC error response must include \"error\" field`;\nexport const ERROR_MISSING_METHOD = `JSON RPC request must have valid \"method\" value`;\nexport const ERROR_MISSING_ID = `JSON RPC request must have valid \"id\" value`;\nexport const ERROR_MISSING_REQUIRED = \"Missing one of the required parameters: bridge / uri / session\";\nexport const ERROR_INVALID_RESPONSE = \"JSON RPC response format is invalid\";\nexport const ERROR_INVALID_URI = \"URI format is invalid\";\nexport const ERROR_QRCODE_MODAL_NOT_PROVIDED = \"QRCode Modal not provided\";\nexport const ERROR_QRCODE_MODAL_USER_CLOSED = \"User close QRCode Modal\";\n//# sourceMappingURL=errors.js.map","import { isJsonRpcRequest, isJsonRpcResponseSuccess, isJsonRpcResponseError, isInternalEvent, isReservedEvent, } from \"@walletconnect/utils\";\nclass EventManager {\n constructor() {\n this._eventEmitters = [];\n }\n subscribe(eventEmitter) {\n this._eventEmitters.push(eventEmitter);\n }\n unsubscribe(event) {\n this._eventEmitters = this._eventEmitters.filter(x => x.event !== event);\n }\n trigger(payload) {\n let eventEmitters = [];\n let event;\n if (isJsonRpcRequest(payload)) {\n event = payload.method;\n }\n else if (isJsonRpcResponseSuccess(payload) || isJsonRpcResponseError(payload)) {\n event = `response:${payload.id}`;\n }\n else if (isInternalEvent(payload)) {\n event = payload.event;\n }\n else {\n event = \"\";\n }\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n if ((!eventEmitters || !eventEmitters.length) &&\n !isReservedEvent(event) &&\n !isInternalEvent(event)) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === \"call_request\");\n }\n eventEmitters.forEach((eventEmitter) => {\n if (isJsonRpcResponseError(payload)) {\n const error = new Error(payload.error.message);\n eventEmitter.callback(error, null);\n }\n else {\n eventEmitter.callback(null, payload);\n }\n });\n }\n}\nexport default EventManager;\n//# sourceMappingURL=events.js.map","import { isWalletConnectSession, getLocal, setLocal, removeLocal } from \"@walletconnect/utils\";\nclass SessionStorage {\n constructor(storageId = \"walletconnect\") {\n this.storageId = storageId;\n }\n getSession() {\n let session = null;\n const json = getLocal(this.storageId);\n if (json && isWalletConnectSession(json)) {\n session = json;\n }\n return session;\n }\n setSession(session) {\n setLocal(this.storageId, session);\n return session;\n }\n removeSession() {\n removeLocal(this.storageId);\n }\n}\nexport default SessionStorage;\n//# sourceMappingURL=storage.js.map","import { IClientMeta } from '@walletconnect/types';\n\n// ---------------------------------------------\n// session\n// ---------------------------------------------\nexport enum WalletConnectSessionStatus {\n REQUESTED = 'REQUESTED',\n CONNECTED = 'CONNECTED',\n DISCONNECTED = 'DISCONNECTED',\n}\n\nexport interface WalletConnectSessionRequested {\n status: WalletConnectSessionStatus.REQUESTED;\n}\n\nexport interface WalletConnectSessionConnected {\n status: WalletConnectSessionStatus.CONNECTED;\n chainId: number;\n terraAddress: string;\n peerMeta: IClientMeta;\n}\n\nexport interface WalletConnectSessionDisconnected {\n status: WalletConnectSessionStatus.DISCONNECTED;\n}\n\nexport type WalletConnectSession =\n | WalletConnectSessionRequested\n | WalletConnectSessionConnected\n | WalletConnectSessionDisconnected;\n\n// ---------------------------------------------\n// tx\n// ---------------------------------------------\nexport interface WalletConnectTxResult {\n height: number;\n raw_log: string;\n txhash: string;\n}\n","export class WalletConnectUserDenied extends Error {}\n\nexport class WalletConnectCreateTxFailed extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'WalletConnectCreateTxFailed';\n }\n}\n\nexport class WalletConnectTxFailed extends Error {\n constructor(\n public readonly txhash: string,\n message: string,\n public readonly raw_message: any,\n ) {\n super(message);\n this.name = 'WalletConnectTxFailed';\n }\n}\n\nexport class WalletConnectTimeout extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'WalletConnectTimeout';\n }\n}\n\nexport class WalletConnectTxUnspecifiedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'WalletConnectTxUnspecifiedError';\n }\n}\n","import { IQRCodeModal, IQRCodeModalOptions } from '@walletconnect/types';\nimport { toCanvas } from 'qrcode';\nimport { isMobile as isMobileBrowser } from '../../utils/browser-check';\nimport { modalStyle } from './modal.style';\n\nexport class TerraWalletconnectQrcodeModal implements IQRCodeModal {\n modalContainer: HTMLDivElement | null = null;\n styleContainer: HTMLStyleElement | null = null;\n\n private callback: (() => void) | null = null;\n\n setCloseCallback = (callback: () => void) => {\n this.callback = callback;\n };\n\n open = (\n uri: string,\n cb: () => void,\n _qrcodeModalOptions?: IQRCodeModalOptions,\n ) => {\n const modalContainer = document.createElement('div');\n const stylecontainer = document.createElement('style');\n\n const query = encodeURIComponent(\n `action=wallet_connect&payload=${encodeURIComponent(uri)}`,\n );\n\n const schemeUri = `https://terrastation.page.link/?link=https://terra.money?${query}&apn=money.terra.station&ibi=money.terra.station&isi=1548434735`;\n\n const element = createModalElement({\n schemeUri,\n onClose: () => {\n if (this.callback) {\n this.callback();\n this.callback = null;\n }\n this.close();\n },\n });\n\n if (isMobileBrowser()) {\n window.location.href = schemeUri;\n }\n\n stylecontainer.textContent = modalStyle;\n modalContainer.appendChild(element);\n\n document.querySelector('head')?.appendChild(stylecontainer);\n document.querySelector('body')?.appendChild(modalContainer);\n\n this.modalContainer = modalContainer;\n this.styleContainer = stylecontainer;\n };\n\n close = () => {\n if (this.modalContainer) {\n this.modalContainer.parentElement?.removeChild(this.modalContainer);\n }\n\n if (this.styleContainer) {\n this.styleContainer.parentElement?.removeChild(this.styleContainer);\n }\n\n this.callback = null;\n };\n}\n\nfunction createModalElement({\n schemeUri,\n onClose,\n}: {\n schemeUri: string;\n onClose: () => void;\n}): HTMLElement {\n const isMobile = isMobileBrowser();\n\n const openTerraStationMobile = () => {\n window.location.href = schemeUri;\n };\n\n // ---------------------------------------------\n // container\n // ---------------------------------------------\n const container = document.createElement('div');\n container.setAttribute('class', 'wallet-wc-modal');\n\n // ---------------------------------------------\n // container > div.wallet-wc-modal--dim\n // ---------------------------------------------\n const dim = document.createElement('div');\n dim.setAttribute('class', 'wallet-wc-modal--dim');\n\n container.appendChild(dim);\n\n // ---------------------------------------------\n // container > div.wallet-wc-modal--content\n // ---------------------------------------------\n const content = document.createElement('section');\n content.setAttribute('class', 'wallet-wc-modal--content');\n content.setAttribute('data-device', isMobile ? 'mobile' : 'desktop');\n\n container.appendChild(content);\n\n // h1\n const title = document.createElement('h1');\n content.appendChild(title);\n\n const img = document.createElement('img');\n img.setAttribute(\n 'src',\n 'https://assets.terra.money/icon/wallet-provider/walletconnect.svg',\n );\n img.setAttribute(\n 'style',\n 'width: 1em; margin-right: 10px; transform: scale(1.5) translateY(0.08em)',\n );\n\n const span = document.createElement('span');\n span.textContent = 'Wallet Connect';\n\n title.appendChild(img);\n title.appendChild(span);\n\n // p\n const description = document.createElement('p');\n description.textContent =\n 'Scan QR code with a WalletConnect-compatible wallet';\n content.appendChild(description);\n\n if (isMobile) {\n // button\n const button = document.createElement('button');\n button.addEventListener('click', openTerraStationMobile);\n button.textContent = 'Open Terra Station Mobile';\n\n content.appendChild(button);\n } else {\n // qrcode\n const canvas = document.createElement('canvas');\n toCanvas(canvas, schemeUri, {\n width: 220,\n margin: 0,\n color: {\n dark: '#2043b5ff',\n },\n });\n\n content.appendChild(canvas);\n }\n\n // events\n dim.addEventListener('click', onClose);\n\n return container;\n}\n","// language=css\nexport const modalStyle = `\n\n@keyframes wallet-wc-modal--dim-enter {\n 0% {\n opacity: 0;\n }\n \n 100% {\n opacity: 1;\n }\n}\n\n@keyframes wallet-wc-modal--content-enter {\n 0% {\n opacity: 0;\n transform: scale(0.4);\n }\n \n 100% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.wallet-wc-modal {\n position: fixed;\n z-index: 100000;\n\n color: #212121;\n\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n\n display: grid;\n place-content: center;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--dim {\n position: fixed;\n z-index: -1;\n\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.3);\n\n animation: wallet-wc-modal--dim-enter 0.2s ease-in-out;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content {\n border-radius: 8px;\n\n background-color: #ffffff;\n box-shadow: 0 4px 18px 3px rgba(0, 0, 0, 0.43);\n \n text-align: center;\n\n animation: wallet-wc-modal--content-enter 0.2s ease-in-out;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content h1 {\n color: #3b99fc;\n \n font-size: 20px;\n font-family: sans-serif;\n font-weight: bold;\n \n margin: 0 0 12px 0;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content p {\n color: #212121;\n \n font-size: 14px;\n font-family: sans-serif;\n \n margin: 0 0 32px 0;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content button {\n display: block;\n \n cursor: pointer;\n outline: none;\n border: 0;\n \n width: 295px;\n height: 48px;\n border-radius: 30px;\n \n font-size: 14px;\n font-weight: bold;\n \n color: #ffffff;\n background-color: #2043b5;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content[data-device=\"desktop\"] {\n padding: 40px 80px;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content[data-device=\"mobile\"] {\n padding: 40px 20px;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content[data-device=\"mobile\"] h1 {\n margin-bottom: 32px;\n}\n\n.wallet-wc-modal > .wallet-wc-modal--content[data-device=\"mobile\"] p {\n display: none;\n}\n`;\n","import { CreateTxOptions } from '@terra-money/terra.js';\nimport Connector from '@walletconnect/core';\nimport * as cryptoLib from '@walletconnect/iso-crypto';\nimport {\n IPushServerOptions,\n IWalletConnectOptions,\n} from '@walletconnect/types';\nimport { uuid } from '@walletconnect/utils';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { isMobile } from '../../utils/browser-check';\nimport {\n WalletConnectCreateTxFailed,\n WalletConnectTimeout,\n WalletConnectTxFailed,\n WalletConnectTxUnspecifiedError,\n WalletConnectUserDenied,\n} from './errors';\nimport SocketTransport from './impl/socket-transport';\nimport { TerraWalletconnectQrcodeModal } from './modal';\nimport {\n WalletConnectSession,\n WalletConnectSessionStatus,\n WalletConnectTxResult,\n} from './types';\n\nexport interface WalletConnectControllerOptions {\n /**\n * Configuration parameter that `new WalletConnect(connectorOpts)`\n *\n * @default\n * ```js\n * {\n * bridge: 'https://walletconnect.terra.dev/',\n * qrcodeModal: new TerraWalletconnectQrcodeModal(),\n * }\n * ```\n */\n connectorOpts?: IWalletConnectOptions;\n\n /**\n * Configuration parameter that `new WalletConnect(_, pushServerOpts)`\n *\n * @default undefined\n */\n pushServerOpts?: IPushServerOptions;\n}\n\nexport interface WalletConnectController {\n session: () => Observable;\n getLatestSession: () => WalletConnectSession;\n post: (tx: CreateTxOptions) => Promise;\n disconnect: () => void;\n}\n\nconst WALLETCONNECT_STORAGE_KEY = 'walletconnect';\n\nexport function connectIfSessionExists(\n options: WalletConnectControllerOptions = {},\n): WalletConnectController | null {\n const storedSession = localStorage.getItem(WALLETCONNECT_STORAGE_KEY);\n\n if (typeof storedSession === 'string') {\n return connect(options, true);\n }\n\n return null;\n}\n\nexport function connect(\n options: WalletConnectControllerOptions = {},\n useCachedSession: boolean = false,\n): WalletConnectController {\n let connector: Connector | null = null;\n\n let sessionSubject: BehaviorSubject =\n new BehaviorSubject({\n status: WalletConnectSessionStatus.DISCONNECTED,\n });\n\n const qrcodeModal =\n options.connectorOpts?.qrcodeModal ?? new TerraWalletconnectQrcodeModal();\n\n const connectorOpts: IWalletConnectOptions = {\n bridge: 'https://walletconnect.terra.dev/',\n qrcodeModal,\n ...options.connectorOpts,\n };\n\n const pushServerOpts: IPushServerOptions | undefined = options.pushServerOpts;\n\n // ---------------------------------------------\n // event listeners\n // ---------------------------------------------\n function initEvents() {\n if (!connector) {\n throw new Error(`WalletConnect is not defined!`);\n }\n\n connector.on('session_update', async (error, payload) => {\n if (error) throw error;\n\n sessionSubject.next({\n status: WalletConnectSessionStatus.CONNECTED,\n peerMeta: payload.params[0],\n terraAddress: payload.params[0].accounts[0],\n chainId: payload.params[0].chainId,\n });\n\n console.log('WALLETCONNECT SESSION UPDATED:', payload.params[0]);\n });\n\n connector.on('connect', (error, payload) => {\n if (error) throw error;\n\n sessionSubject.next({\n status: WalletConnectSessionStatus.CONNECTED,\n peerMeta: payload.params[0],\n terraAddress: payload.params[0].accounts[0],\n chainId: payload.params[0].chainId,\n });\n });\n\n connector.on('disconnect', (error, payload) => {\n if (error) throw error;\n\n sessionSubject.next({\n status: WalletConnectSessionStatus.DISCONNECTED,\n });\n });\n }\n\n // ---------------------------------------------\n // initialize\n // ---------------------------------------------\n const cachedSession = localStorage.getItem('walletconnect');\n\n if (typeof cachedSession === 'string' && useCachedSession) {\n const cachedSessionObject = JSON.parse(cachedSession);\n const clientId = cachedSessionObject.clientId;\n const draftConnector = new Connector({\n connectorOpts: {\n ...connectorOpts,\n session: JSON.parse(cachedSession),\n },\n pushServerOpts,\n cryptoLib,\n transport: new SocketTransport({\n protocol: 'wc',\n version: 1,\n url: connectorOpts.bridge!,\n subscriptions: [clientId],\n }),\n });\n draftConnector.clientId = clientId;\n\n connector = draftConnector;\n\n initEvents();\n\n sessionSubject.next({\n status: WalletConnectSessionStatus.CONNECTED,\n peerMeta: draftConnector.peerMeta!,\n terraAddress: draftConnector.accounts[0],\n chainId: draftConnector.chainId,\n });\n } else {\n const clientId = uuid();\n const draftConnector = new Connector({\n connectorOpts,\n pushServerOpts,\n cryptoLib,\n transport: new SocketTransport({\n protocol: 'wc',\n version: 1,\n url: connectorOpts.bridge!,\n subscriptions: [clientId],\n }),\n });\n draftConnector.clientId = clientId;\n\n connector = draftConnector;\n\n if (!draftConnector.connected) {\n draftConnector.createSession().catch(console.error);\n\n if (qrcodeModal instanceof TerraWalletconnectQrcodeModal) {\n qrcodeModal.setCloseCallback(() => {\n sessionSubject.next({\n status: WalletConnectSessionStatus.DISCONNECTED,\n });\n });\n }\n\n initEvents();\n\n sessionSubject.next({\n status: WalletConnectSessionStatus.REQUESTED,\n });\n }\n }\n\n // ---------------------------------------------\n // methods\n // ---------------------------------------------\n function disconnect() {\n if (connector && connector.connected) {\n try {\n connector.killSession();\n } catch {}\n }\n\n sessionSubject.next({\n status: WalletConnectSessionStatus.DISCONNECTED,\n });\n }\n\n function session(): Observable {\n return sessionSubject.asObservable();\n }\n\n function getLatestSession(): WalletConnectSession {\n return sessionSubject.getValue();\n }\n\n /**\n * post transaction\n *\n * @param tx transaction data\n * @throws { WalletConnectUserDenied }\n * @throws { WalletConnectCreateTxFailed }\n * @throws { WalletConnectTxFailed }\n * @throws { WalletConnectTimeout }\n * @throws { WalletConnectTxUnspecifiedError }\n */\n function post(tx: CreateTxOptions): Promise {\n if (!connector || !connector.connected) {\n throw new Error(`WalletConnect is not connected!`);\n }\n\n const id = Date.now();\n\n const serializedTxOptions = {\n msgs: tx.msgs.map((msg) => msg.toJSON()),\n fee: tx.fee?.toJSON(),\n memo: tx.memo,\n gas: tx.gas,\n gasPrices: tx.gasPrices?.toString(),\n gasAdjustment: tx.gasAdjustment?.toString(),\n //account_number: tx.account_number,\n //sequence: tx.sequence,\n feeDenoms: tx.feeDenoms,\n timeoutHeight: tx.timeoutHeight,\n };\n\n if (isMobile()) {\n const payload = btoa(\n JSON.stringify({\n id,\n handshakeTopic: connector.handshakeTopic,\n params: serializedTxOptions,\n }),\n );\n\n // FIXME changed walletconnect confirm schema\n window.location.href = `terrastation://walletconnect_confirm/?payload=${payload}`;\n //window.location.href = `terrastation://wallet_connect_confirm?id=${id}&handshakeTopic=${\n // connector.handshakeTopic\n //}¶ms=${JSON.stringify([serializedTxOptions])}`;\n }\n\n return connector\n .sendCustomRequest({\n id,\n method: 'post',\n params: [serializedTxOptions],\n })\n .catch((error) => {\n let throwError = error;\n\n try {\n const { code, txhash, message, raw_message } = JSON.parse(\n error.message,\n );\n switch (code) {\n case 1:\n throwError = new WalletConnectUserDenied();\n break;\n case 2:\n throwError = new WalletConnectCreateTxFailed(message);\n break;\n case 3:\n throwError = new WalletConnectTxFailed(\n txhash,\n message,\n raw_message,\n );\n break;\n case 4:\n throwError = new WalletConnectTimeout(message);\n break;\n case 99:\n throwError = new WalletConnectTxUnspecifiedError(message);\n break;\n }\n } catch {\n throwError = new WalletConnectTxUnspecifiedError(error.message);\n }\n\n throw throwError;\n });\n }\n\n // ---------------------------------------------\n // return\n // ---------------------------------------------\n return {\n session,\n getLatestSession,\n post,\n disconnect,\n };\n}\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.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.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\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\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\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 = {};\nexports.MsgChannelOpenInitResponse = {\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({}, baseMsgChannelOpenInitResponse);\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({}, baseMsgChannelOpenInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\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 = {};\nexports.MsgRecvPacketResponse = {\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({}, baseMsgRecvPacketResponse);\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({}, baseMsgRecvPacketResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\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 = {};\nexports.MsgTimeoutResponse = {\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({}, baseMsgTimeoutResponse);\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({}, baseMsgTimeoutResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\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 = {};\nexports.MsgTimeoutOnCloseResponse = {\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({}, baseMsgTimeoutOnCloseResponse);\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({}, baseMsgTimeoutOnCloseResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\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 = {};\nexports.MsgAcknowledgementResponse = {\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({}, baseMsgAcknowledgementResponse);\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({}, baseMsgAcknowledgementResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\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) {\n const data = exports.MsgChannelOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenInit\", data);\n return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenTry(request) {\n const data = exports.MsgChannelOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenTry\", data);\n return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenAck(request) {\n const data = exports.MsgChannelOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenAck\", data);\n return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenConfirm(request) {\n const data = exports.MsgChannelOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenConfirm\", data);\n return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelCloseInit(request) {\n const data = exports.MsgChannelCloseInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseInit\", data);\n return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelCloseConfirm(request) {\n const data = exports.MsgChannelCloseConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseConfirm\", data);\n return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n RecvPacket(request) {\n const data = exports.MsgRecvPacket.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"RecvPacket\", data);\n return promise.then((data) => exports.MsgRecvPacketResponse.decode(new minimal_1.default.Reader(data)));\n }\n Timeout(request) {\n const data = exports.MsgTimeout.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Timeout\", data);\n return promise.then((data) => exports.MsgTimeoutResponse.decode(new minimal_1.default.Reader(data)));\n }\n TimeoutOnClose(request) {\n const data = exports.MsgTimeoutOnClose.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"TimeoutOnClose\", data);\n return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new minimal_1.default.Reader(data)));\n }\n Acknowledgement(request) {\n const data = exports.MsgAcknowledgement.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Acknowledgement\", data);\n return promise.then((data) => exports.MsgAcknowledgementResponse.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","(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 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","import bowser from 'bowser';\nimport MobileDetect from 'mobile-detect';\n\nexport const isMobile = () => {\n const mobileDetect = new MobileDetect(navigator.userAgent);\n\n return !!mobileDetect.os();\n};\n\nexport const isDesktopChrome = (\n isChromeExtensionCompatibleBrowser: boolean,\n): boolean => {\n const userAgent = navigator.userAgent;\n\n if (isChromeExtensionCompatibleBrowser) {\n return true;\n }\n\n const browser = bowser.getParser(userAgent);\n const mobileDetect = new MobileDetect(navigator.userAgent);\n\n return !!(\n browser.satisfies({\n chrome: '>60',\n edge: '>80',\n }) && !mobileDetect.os()\n );\n};\n\nexport const getDesktopBrowserType = (\n userAgent: string,\n): 'chrome' | 'edge' | 'firefox' | 'safari' | null => {\n const browser = bowser.getParser(userAgent);\n const mobileDetect = new MobileDetect(navigator.userAgent);\n\n if (!!mobileDetect.mobile()) {\n return null;\n }\n\n if (browser.satisfies({ chrome: '>60', chromium: '>60' })) {\n return 'chrome';\n } else if (browser.satisfies({ edge: '>80' })) {\n return 'edge';\n } else {\n return null;\n }\n};\n","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.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 __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('terra', bech32_1.bech32.toWords(this.rawAddress()));\n };\n SimplePublicKey.prototype.pubkeyAddress = function () {\n return bech32_1.bech32.encode('terrapub', 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('terra', bech32_1.bech32.toWords(this.rawAddress()));\n };\n LegacyAminoMultisigPublicKey.prototype.pubkeyAddress = function () {\n return bech32_1.bech32.encode('terrapub', 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('terravalcons', bech32_1.bech32.toWords(this.rawAddress()));\n };\n ValConsPublicKey.prototype.pubkeyAddress = function () {\n return bech32_1.bech32.encode('terravalconspub', bech32_1.bech32.toWords(this.encodeAminoPubkey()));\n };\n return ValConsPublicKey;\n}(json_1.JSONSerializable));\nexports.ValConsPublicKey = ValConsPublicKey;\n//# sourceMappingURL=PublicKey.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","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","\"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\";\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.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.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","// 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}","// 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// 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\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\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\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 () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (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 }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\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","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","import { INTERNAL_ERROR, SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[INTERNAL_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[INTERNAL_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[INTERNAL_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","'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});","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","'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});","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","import * as env from \"@walletconnect/environment\";\nexport function randomBytes(length) {\n const browserCrypto = env.getBrowerCrypto();\n return browserCrypto.getRandomValues(new Uint8Array(length));\n}\n//# sourceMappingURL=index.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { NetworkInfo } from '@terra-money/wallet-types';\nimport {\n WebExtensionCreateTxFailed,\n WebExtensionTxFailed,\n WebExtensionTxUnspecifiedError,\n WebExtensionUserDenied,\n} from '@terra-money/web-extension-interface';\nimport { CreateTxOptions, Extension, Tx } from '@terra-money/terra.js';\n\ntype ConnectResponse = { address?: string };\ntype PostResponse = {\n payload: {\n result: {\n height: number;\n raw_log: string;\n txhash: string;\n };\n };\n};\ntype SignResponse = {\n payload: {\n result: Tx.Data;\n };\n};\ntype SignBytesResponse = {\n payload: {\n result: {\n public_key: string;\n recid: number;\n signature: string;\n };\n };\n};\ntype InfoResponse = NetworkInfo;\n\nexport interface FixedExtension {\n post: (data: CreateTxOptions) => Promise;\n sign: (data: CreateTxOptions) => Promise;\n signBytes: (bytes: Buffer) => Promise;\n info: () => Promise;\n connect: () => Promise;\n inTransactionProgress: () => boolean;\n disconnect: () => void;\n}\n\nfunction getErrorMessage(error: any): string {\n try {\n if (typeof error.message === 'string') {\n return error.message;\n } else {\n return JSON.stringify(error);\n }\n } catch {\n return String(error);\n }\n}\n\nfunction toExplicitError(error: any) {\n if (error && 'code' in error) {\n switch (error.code) {\n // @see https://github.com/terra-project/station/blob/main/src/extension/Confirm.tsx#L182\n case 1:\n return new WebExtensionUserDenied();\n // @see https://github.com/terra-project/station/blob/main/src/extension/Confirm.tsx#L137\n case 2:\n if (error.data) {\n const { txhash } = error.data;\n return new WebExtensionTxFailed(txhash, getErrorMessage(error), null);\n } else {\n return new WebExtensionTxFailed(\n undefined,\n getErrorMessage(error),\n null,\n );\n }\n // @see https://github.com/terra-project/station/blob/main/src/extension/Confirm.tsx#L153\n case 3:\n return new WebExtensionCreateTxFailed(getErrorMessage(error));\n default:\n return new WebExtensionTxUnspecifiedError(getErrorMessage(error));\n }\n } else {\n return new WebExtensionTxUnspecifiedError(getErrorMessage(error));\n }\n}\n\nfunction isValidResult({ error, ...payload }: any): boolean {\n if (typeof payload.success !== 'boolean') {\n return false;\n } else if (\n typeof payload.result === 'undefined' &&\n typeof error === 'undefined'\n ) {\n return false;\n }\n return true;\n}\n\nconst pool = new Map();\n\nexport function createFixedExtension(identifier: string): FixedExtension {\n if (pool.has(identifier)) {\n return pool.get(identifier)!;\n }\n\n const extension = new Extension(identifier);\n\n let _inTransactionProgress = false;\n\n const postResolvers = new Map<\n number,\n [(data: any) => void, (error: any) => void]\n >();\n\n const signResolvers = new Map<\n number,\n [(data: any) => void, (error: any) => void]\n >();\n\n const signBytesResolvers = new Map<\n number,\n [(data: any) => void, (error: any) => void]\n >();\n\n const infoResolvers = new Set<[(data: any) => void, (error: any) => void]>();\n\n const connectResolvers = new Set<\n [(data: any) => void, (error: any) => void]\n >();\n\n extension.on('onPost', (result) => {\n if (!result || !isValidResult(result)) {\n return;\n }\n\n const { error, ...payload } = result;\n\n if (!postResolvers.has(payload.id)) {\n return;\n }\n\n const [resolve, reject] = postResolvers.get(payload.id)!;\n\n if (!payload.success) {\n reject(toExplicitError(error));\n } else if (resolve) {\n resolve({ name: 'onPost', payload });\n }\n\n postResolvers.delete(payload.id);\n\n if (postResolvers.size === 0) {\n _inTransactionProgress = false;\n }\n });\n\n extension.on('onSign', (result) => {\n if (!result || !isValidResult(result)) {\n return;\n }\n\n const { error, ...payload } = result;\n\n if (signResolvers.has(payload.id)) {\n const [resolve, reject] = signResolvers.get(payload.id)!;\n\n if (!payload.success) {\n reject(toExplicitError(error));\n } else if (resolve) {\n resolve({ name: 'onSign', payload });\n }\n\n signResolvers.delete(payload.id);\n\n if (signResolvers.size === 0) {\n _inTransactionProgress = false;\n }\n } else if (signBytesResolvers.has(payload.id)) {\n const [resolve, reject] = signBytesResolvers.get(payload.id)!;\n\n if (!payload.success) {\n reject(toExplicitError(error));\n } else if (resolve) {\n resolve({ name: 'onSignBytes', payload });\n }\n\n signBytesResolvers.delete(payload.id);\n\n if (signBytesResolvers.size === 0) {\n _inTransactionProgress = false;\n }\n }\n });\n\n extension.on('onInfo', (result) => {\n if (!result) return;\n const { error, ...payload } = result;\n\n for (const [resolve, reject] of infoResolvers) {\n if (error) {\n reject(error);\n } else {\n resolve(payload);\n }\n }\n\n infoResolvers.clear();\n });\n\n extension.on('onConnect', (result) => {\n if (!result) return;\n const { error, ...payload } = result;\n\n for (const [resolve, reject] of connectResolvers) {\n if (error) {\n reject(error);\n } else {\n resolve(payload);\n }\n }\n\n connectResolvers.clear();\n });\n\n function post(data: object) {\n return new Promise((...resolver) => {\n _inTransactionProgress = true;\n\n const id = extension.post({\n ...(data as any),\n purgeQueue: true,\n });\n\n postResolvers.set(id, resolver);\n\n setTimeout(() => {\n if (postResolvers.has(id)) {\n postResolvers.delete(id);\n\n if (postResolvers.size === 0) {\n _inTransactionProgress = false;\n }\n }\n }, 1000 * 120);\n });\n }\n\n function sign(data: object) {\n return new Promise((...resolver) => {\n _inTransactionProgress = true;\n\n const id = extension.sign({\n ...(data as any),\n purgeQueue: true,\n });\n\n signResolvers.set(id, resolver);\n\n setTimeout(() => {\n if (signResolvers.has(id)) {\n signResolvers.delete(id);\n\n if (signResolvers.size === 0) {\n _inTransactionProgress = false;\n }\n }\n }, 1000 * 120);\n });\n }\n\n function signBytes(bytes: Buffer) {\n return new Promise((...resolver) => {\n _inTransactionProgress = true;\n\n const id = extension.signBytes({\n bytes,\n purgeQueue: true,\n });\n\n signBytesResolvers.set(id, resolver);\n\n setTimeout(() => {\n if (signBytesResolvers.has(id)) {\n signBytesResolvers.delete(id);\n\n if (signBytesResolvers.size === 0) {\n _inTransactionProgress = false;\n }\n }\n }, 1000 * 120);\n });\n }\n\n function connect() {\n return new Promise((...resolver) => {\n connectResolvers.add(resolver);\n extension.connect();\n });\n }\n\n function info() {\n return new Promise((...resolver) => {\n infoResolvers.add(resolver);\n extension.info();\n });\n }\n\n function disconnect() {\n connectResolvers.clear();\n infoResolvers.clear();\n postResolvers.clear();\n signResolvers.clear();\n signBytesResolvers.clear();\n }\n\n function inTransactionProgress() {\n return _inTransactionProgress;\n }\n\n const result: FixedExtension = {\n post,\n sign,\n signBytes,\n connect,\n info,\n disconnect,\n inTransactionProgress,\n };\n\n pool.set(identifier, result);\n\n return result;\n}\n","import { NetworkInfo } from '@terra-money/wallet-types';\nimport {\n TerraWebExtensionConnector,\n TerraWebExtensionFeatures,\n WebExtensionPostPayload,\n WebExtensionSignBytesPayload,\n WebExtensionSignPayload,\n WebExtensionStates,\n WebExtensionStatus,\n WebExtensionTxResult,\n WebExtensionTxStatus,\n} from '@terra-money/web-extension-interface';\nimport { AccAddress, CreateTxOptions } from '@terra-money/terra.js';\nimport { BehaviorSubject, Observer, Subscribable, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { createFixedExtension, FixedExtension } from './createFixedExtension';\n\nconst supportFeatures: TerraWebExtensionFeatures[] = [\n 'post',\n 'sign',\n 'sign-bytes',\n];\n\nexport class LegacyExtensionConnector implements TerraWebExtensionConnector {\n private _states: BehaviorSubject;\n private _extension: FixedExtension;\n private hostWindow: Window | null = null;\n private statesSubscription: Subscription | null = null;\n\n supportFeatures() {\n return supportFeatures;\n }\n\n constructor(private identifier: string) {\n this._states = new BehaviorSubject({\n type: WebExtensionStatus.INITIALIZING,\n });\n\n this._extension = createFixedExtension(identifier);\n }\n\n open = (hostWindow: Window, statesObserver: Observer) => {\n this.hostWindow = hostWindow;\n this.statesSubscription = this._states\n .pipe(\n filter(\n (states: WebExtensionStates | null): states is WebExtensionStates =>\n !!states,\n ),\n )\n .subscribe(statesObserver);\n\n this.refetchStates();\n };\n\n close = () => {\n this._extension.disconnect();\n };\n\n requestApproval = () => {\n this.recheckStates();\n };\n\n refetchStates = () => {\n this.recheckStates();\n };\n\n post = (\n terraAddress: string,\n tx: CreateTxOptions,\n ): Subscribable> => {\n const subject = new BehaviorSubject<\n WebExtensionTxResult\n >({\n status: WebExtensionTxStatus.PROGRESS,\n });\n\n this._extension\n .post(tx)\n .then(({ payload }) => {\n subject.next({\n status: WebExtensionTxStatus.SUCCEED,\n payload: payload.result,\n });\n subject.complete();\n })\n .catch((error) => subject.error(error));\n\n return subject.asObservable();\n };\n\n sign = (\n terraAddress: string,\n tx: CreateTxOptions,\n ): Subscribable> => {\n const subject = new BehaviorSubject<\n WebExtensionTxResult\n >({\n status: WebExtensionTxStatus.PROGRESS,\n });\n\n this._extension\n .sign(tx)\n .then(({ payload }) => {\n subject.next({\n status: WebExtensionTxStatus.SUCCEED,\n payload: payload.result,\n });\n subject.complete();\n })\n .catch((error) => subject.error(error));\n\n return subject.asObservable();\n };\n\n signBytes = (\n terraAddress: string,\n bytes: Buffer,\n ): Subscribable> => {\n const subject = new BehaviorSubject<\n WebExtensionTxResult\n >({\n status: WebExtensionTxStatus.PROGRESS,\n });\n\n this._extension\n .signBytes(bytes)\n .then(({ payload }) => {\n subject.next({\n status: WebExtensionTxStatus.SUCCEED,\n payload: {\n recid: payload.result.recid,\n signature: payload.result.signature,\n public_key: {\n '@type': '/cosmos.crypto.secp256k1.PubKey',\n 'key': payload.result.public_key,\n },\n },\n });\n })\n .catch((error) => subject.error(error));\n\n return subject.asObservable();\n };\n\n hasCW20Tokens = () => {\n throw new Error(\n '[LegacyExtensionConnector] does not support hasCW20Tokens()',\n );\n };\n\n addCW20Tokens = () => {\n throw new Error(\n '[LegacyExtensionConnector] does not support addCW20Tokens()',\n );\n };\n\n hasNetwork = () => {\n throw new Error('[LegacyExtensionConnector] does not support hasNetwork()');\n };\n\n addNetwork = () => {\n throw new Error('[LegacyExtensionConnector] does not support addNetwork()');\n };\n\n // ---------------------------------------------\n // internal\n // ---------------------------------------------\n recheckStates = async () => {\n if (this._extension.inTransactionProgress()) {\n return;\n }\n\n const infoResult: NetworkInfo = await this._extension.info();\n const connectResult: { address?: string } = await this._extension.connect();\n\n if (connectResult.address && AccAddress.validate(connectResult.address)) {\n this._states.next({\n type: WebExtensionStatus.READY,\n network: infoResult,\n focusedWalletAddress: connectResult.address,\n wallets: [\n {\n name: '',\n terraAddress: connectResult.address,\n design: 'terra',\n },\n ],\n });\n } else {\n this._states.next({\n type: WebExtensionStatus.READY,\n network: infoResult,\n focusedWalletAddress: undefined,\n wallets: [],\n });\n }\n };\n}\n","import { ExtensionInfo } from './multiChannel';\nimport { modalStyle } from './modal.style';\n\nexport function selectModal(\n extensionInfos: ExtensionInfo[],\n): Promise {\n return new Promise((resolve) => {\n const modalContainer = document.createElement('div');\n const styleContainer = document.createElement('style');\n\n function onComplete(extensionInfo: ExtensionInfo | null) {\n resolve(extensionInfo);\n modalContainer.parentElement?.removeChild(modalContainer);\n styleContainer.parentElement?.removeChild(styleContainer);\n }\n\n const element = createModalElement({\n extensionInfos,\n onComplete,\n });\n\n styleContainer.textContent = modalStyle;\n modalContainer.appendChild(element);\n\n document.querySelector('head')?.appendChild(styleContainer);\n document.querySelector('body')?.appendChild(modalContainer);\n });\n}\n\nfunction createModalElement({\n extensionInfos,\n onComplete,\n}: {\n extensionInfos: ExtensionInfo[];\n onComplete: (extensionInfo: ExtensionInfo | null) => void;\n}): HTMLElement {\n // ---------------------------------------------\n // container\n // ---------------------------------------------\n const container = document.createElement('div');\n container.setAttribute('class', 'wallet-select-modal');\n\n // ---------------------------------------------\n // container > div.wallet-select-modal--dim\n // ---------------------------------------------\n const dim = document.createElement('div');\n dim.setAttribute('class', 'wallet-select-modal--dim');\n\n container.appendChild(dim);\n\n // ---------------------------------------------\n // content > div.wallet-select-modal--content\n // ---------------------------------------------\n const content = document.createElement('section');\n content.setAttribute('class', 'wallet-select-modal--content');\n\n container.appendChild(content);\n\n // h1\n const title = document.createElement('h1');\n title.textContent = 'Select a Wallet';\n content.appendChild(title);\n\n // ul\n const list = document.createElement('ul');\n content.appendChild(list);\n\n for (const extensionInfo of extensionInfos) {\n const item = document.createElement('li');\n\n const button = document.createElement('button');\n button.addEventListener('click', () => onComplete(extensionInfo));\n\n item.appendChild(button);\n\n const icon = document.createElement('span');\n icon.setAttribute('class', 'wallet-select-modal--icon');\n\n button.appendChild(icon);\n\n const iconImg = document.createElement('img');\n iconImg.setAttribute('src', extensionInfo.icon);\n iconImg.setAttribute(\n 'alt',\n `${extensionInfo.name} [${extensionInfo.identifier}]`,\n );\n\n icon.appendChild(iconImg);\n\n const description = document.createElement('span');\n description.setAttribute('class', 'wallet-select-modal--description');\n description.textContent = extensionInfo.name;\n\n button.appendChild(description);\n\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.setAttribute('viewBox', '0 0 24 24');\n\n button.appendChild(arrow);\n\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z');\n\n arrow.appendChild(path);\n\n list.appendChild(item);\n }\n\n // events\n dim.addEventListener('click', () => onComplete(null));\n\n return container;\n}\n","// language=css\nexport const modalStyle = `\n@keyframes wallet-select-modal--dim-enter {\n 0% {\n opacity: 0;\n }\n \n 100% {\n opacity: 1;\n }\n}\n\n@keyframes wallet-select-modal--content-enter {\n 0% {\n opacity: 0;\n transform: scale(0.4);\n }\n \n 100% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.wallet-select-modal {\n position: fixed;\n z-index: 100000;\n \n color: #212121;\n \n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n \n font-family: sans-serif;\n \n display: grid;\n place-content: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--dim {\n position: fixed;\n z-index: -1;\n \n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.3);\n \n animation: wallet-select-modal--dim-enter 0.2s ease-in-out;\n}\n\n.wallet-select-modal > .wallet-select-modal--content {\n box-sizing: border-box;\n \n border-radius: 8px;\n \n background-color: #ffffff;\n box-shadow: 0 4px 18px 3px rgba(0, 0, 0, 0.43);\n \n animation: wallet-select-modal--content-enter 0.2s ease-in-out;\n \n width: 100vw;\n max-width: 480px;\n padding: 40px;\n}\n\n.wallet-select-modal > .wallet-select-modal--content h1 {\n font-size: 20px;\n font-weight: bold;\n \n margin: 0 0 32px 0;\n \n text-align: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul {\n padding: 0;\n margin: 0;\n list-style: none;\n \n display: flex;\n flex-direction: column;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul li {\n border-top: 1px solid #cfd8ea;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul li:last-child {\n border-bottom: 1px solid #cfd8ea;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button {\n width: 100%;\n height: 66px;\n \n border: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n \n display: flex;\n gap: 10px;\n align-items: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button:hover {\n background-color: hsl(220, 39%, 86%, 0.25);\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--icon {\n display: inline-grid;\n width: 50px;\n height: 50px;\n \n place-content: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--icon img {\n width: 30px;\n height: 30px;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--description {\n flex: 1;\n text-align: left;\n \n font-size: 16px;\n font-weight: 600;\n color: #212121;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button svg {\n width: 18px;\n height: 18px;\n \n fill: #cfd8ea;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button:hover svg {\n fill: #2043b5;\n}\n\n@media (max-width: 450px) {\n .wallet-select-modal {\n place-content: flex-end;\n }\n \n .wallet-select-modal > .wallet-select-modal--content {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n`;\n","import {\n TerraWebExtensionFeatures,\n WebExtensionNetworkInfo,\n WebExtensionWalletInfo,\n} from '@terra-money/web-extension-interface';\nimport { ExtensionInfo } from './multiChannel';\n\nexport enum ExtensionRouterConnectorType {\n LEGACY = 'LEGACY',\n WEB_EXTENSION = 'WEB_EXTENSION',\n}\n\nexport enum ExtensionRouterStatus {\n INITIALIZING = 'INITIALIZING',\n NO_AVAILABLE = 'NO_AVAILABLE',\n WALLET_NOT_CONNECTED = 'WALLET_NOT_CONNECTED',\n WALLET_CONNECTED = 'WALLET_CONNECTED',\n}\n\nexport interface ExtensionRouterInitializing {\n type: ExtensionRouterStatus.INITIALIZING;\n network: WebExtensionNetworkInfo;\n}\n\nexport interface ExtensionRouterNoAvailable {\n type: ExtensionRouterStatus.NO_AVAILABLE;\n network: WebExtensionNetworkInfo;\n isConnectorExists: boolean;\n isApproved?: boolean;\n}\n\nexport interface ExtensionRouterWalletNotConnected {\n type: ExtensionRouterStatus.WALLET_NOT_CONNECTED;\n network: WebExtensionNetworkInfo;\n}\n\nexport interface ExtensionRouterWalletConnected {\n type: ExtensionRouterStatus.WALLET_CONNECTED;\n network: WebExtensionNetworkInfo;\n wallet: WebExtensionWalletInfo;\n connectorType: ExtensionRouterConnectorType;\n supportFeatures: Set;\n extensionInfo: ExtensionInfo;\n}\n\nexport type ExtensionRouterStates =\n | ExtensionRouterInitializing\n | ExtensionRouterNoAvailable\n | ExtensionRouterWalletNotConnected\n | ExtensionRouterWalletConnected;\n","export const storage = typeof window === 'undefined' ? undefined : localStorage;\n\ninterface Session {\n identifier: string;\n}\n\nconst SESSION_KEY = '__terra_extension_router_session__';\n\nexport function getStoredSession(): Session | undefined {\n const data = storage?.getItem(SESSION_KEY);\n\n if (!data) {\n return undefined;\n }\n\n try {\n const object = JSON.parse(data);\n\n if ('identifier' in object) {\n return {\n identifier: object['identifier'],\n };\n } else {\n storage?.removeItem(SESSION_KEY);\n return undefined;\n }\n } catch {\n storage?.removeItem(SESSION_KEY);\n return undefined;\n }\n}\n\nexport function storeSession(session: Session) {\n storage?.setItem(SESSION_KEY, JSON.stringify(session));\n}\n\nexport function clearSession() {\n storage?.removeItem(SESSION_KEY);\n}\n","import { NetworkInfo } from '@terra-money/wallet-types';\nimport {\n TerraWebExtensionConnector,\n WebExtensionNetworkInfo,\n WebExtensionPostPayload,\n WebExtensionSignBytesPayload,\n WebExtensionSignPayload,\n WebExtensionStates,\n WebExtensionStatus,\n WebExtensionTxResult,\n} from '@terra-money/web-extension-interface';\nimport { CreateTxOptions } from '@terra-money/terra.js';\nimport { BehaviorSubject, Subscribable } from 'rxjs';\nimport { LegacyExtensionConnector } from '../legacy-extension';\nimport { selectModal } from './modal';\nimport { ExtensionInfo, getTerraExtensions } from './multiChannel';\nimport { clearSession, getStoredSession, storeSession } from './session';\nimport {\n ExtensionRouterConnectorType,\n ExtensionRouterStates,\n ExtensionRouterStatus,\n} from './types';\n\nexport interface ExtensionRouterOptions {\n defaultNetwork: NetworkInfo;\n selectExtension?: (\n extensionInfos: ExtensionInfo[],\n ) => Promise;\n\n hostWindow?: Window;\n\n // ---------------------------------------------\n // development features\n // ---------------------------------------------\n dangerously__chromeExtensionCompatibleBrowserCheck: (\n userAgent: string,\n ) => boolean;\n}\n\nexport class ExtensionRouter {\n private readonly _states: BehaviorSubject;\n private readonly _extensionInfos: ExtensionInfo[];\n\n private _connector: TerraWebExtensionConnector | null = null;\n\n constructor(private readonly options: ExtensionRouterOptions) {\n this._states = new BehaviorSubject({\n type: ExtensionRouterStatus.INITIALIZING,\n network: options.defaultNetwork,\n });\n\n this._extensionInfos = getTerraExtensions();\n\n if (this._extensionInfos.length === 0) {\n this._states.next({\n type: ExtensionRouterStatus.NO_AVAILABLE,\n network: options.defaultNetwork,\n isConnectorExists: false,\n });\n\n return;\n }\n\n // ---------------------------------------------\n // initialize session\n // ---------------------------------------------\n const session = getStoredSession();\n\n if (session) {\n const extensionInfo = this._extensionInfos.find(\n (item) => item.identifier === session.identifier,\n );\n\n if (extensionInfo) {\n this.createConnector(extensionInfo);\n return;\n } else {\n console.warn(\n `Can't find an extension for the session \"${session.identifier}\"`,\n );\n clearSession();\n\n this._states.next({\n type: ExtensionRouterStatus.WALLET_NOT_CONNECTED,\n network: options.defaultNetwork,\n });\n }\n } else {\n this._states.next({\n type: ExtensionRouterStatus.WALLET_NOT_CONNECTED,\n network: options.defaultNetwork,\n });\n }\n }\n\n // ---------------------------------------------\n // states\n // ---------------------------------------------\n states = () => {\n return this._states.asObservable();\n };\n\n getLastStates = () => {\n return this._states.getValue();\n };\n\n // ---------------------------------------------\n // behaviors\n // ---------------------------------------------\n connect = async (identifier?: string) => {\n const extensionInfos = getTerraExtensions();\n\n if (extensionInfos.length === 0) {\n throw new Error(`[ExtensionRouter] Can't find connectors`);\n }\n\n let extensionInfo: ExtensionInfo | undefined;\n\n if (identifier) {\n extensionInfo = extensionInfos.find(\n (item) => item.identifier === identifier,\n );\n } else if (extensionInfos.length === 1) {\n extensionInfo = extensionInfos[0];\n } else {\n const select = this.options.selectExtension ?? selectModal;\n const selectedExtensionInfo = await select(extensionInfos);\n\n if (selectedExtensionInfo) {\n extensionInfo = selectedExtensionInfo;\n }\n }\n\n if (extensionInfo) {\n this.createConnector(extensionInfo);\n }\n };\n\n disconnect = () => {\n clearSession();\n\n this._states.next({\n type: ExtensionRouterStatus.WALLET_NOT_CONNECTED,\n network: this.options.defaultNetwork,\n });\n\n this._connector?.close();\n this._connector = null;\n };\n\n requestApproval = () => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n }\n\n this._connector.requestApproval();\n };\n\n refetchStates = () => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n }\n\n this._connector.refetchStates();\n };\n\n post = (\n tx: CreateTxOptions,\n terraAddress?: string,\n ): Subscribable> => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n }\n\n const latestStates = this.getLastStates();\n\n if (latestStates.type !== ExtensionRouterStatus.WALLET_CONNECTED) {\n throw new Error(`[ExtensionRouter] Wallet is not connected`);\n }\n\n return this._connector.post(\n terraAddress ?? latestStates.wallet.terraAddress,\n tx,\n );\n };\n\n sign = (\n tx: CreateTxOptions,\n terraAddress?: string,\n ): Subscribable> => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n }\n\n const latestStates = this.getLastStates();\n\n if (latestStates.type !== ExtensionRouterStatus.WALLET_CONNECTED) {\n throw new Error(`[ExtensionRouter] Wallet is not connected`);\n }\n\n return this._connector.sign(\n terraAddress ?? latestStates.wallet.terraAddress,\n tx,\n );\n };\n\n signBytes = (\n bytes: Buffer,\n terraAddress?: string,\n ): Subscribable> => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n }\n\n const latestStates = this.getLastStates();\n\n if (latestStates.type !== ExtensionRouterStatus.WALLET_CONNECTED) {\n throw new Error(`[ExtensionRouter] Wallet is not connected`);\n }\n\n return this._connector.signBytes(\n terraAddress ?? latestStates.wallet.terraAddress,\n bytes,\n );\n };\n\n hasCW20Tokens = (\n chainID: string,\n ...tokenAddrs: string[]\n ): Promise<{ [tokenAddr: string]: boolean }> => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n } else if (this._connector instanceof LegacyExtensionConnector) {\n throw new Error(\n '[ExtensionRouter] Legacy extension does not support hasCW20Tokens() ',\n );\n }\n\n return this._connector.hasCW20Tokens(chainID, ...tokenAddrs);\n };\n\n addCW20Tokens = (\n chainID: string,\n ...tokenAddrs: string[]\n ): Promise<{ [tokenAddr: string]: boolean }> => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n } else if (this._connector instanceof LegacyExtensionConnector) {\n throw new Error(\n '[ExtensionRouter] Legacy extension does not support addCW20Tokens() ',\n );\n }\n\n return this._connector.addCW20Tokens(chainID, ...tokenAddrs);\n };\n\n hasNetwork = (\n network: Omit,\n ): Promise => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n } else if (this._connector instanceof LegacyExtensionConnector) {\n throw new Error(\n '[ExtensionRouter] Legacy extension does not support hasNetwork() ',\n );\n }\n\n return this._connector.hasNetwork(network);\n };\n\n addNetwork = (network: WebExtensionNetworkInfo): Promise => {\n if (!this._connector) {\n throw new Error('[ExtensionRouter] No connector');\n } else if (this._connector instanceof LegacyExtensionConnector) {\n throw new Error(\n '[ExtensionRouter] Legacy extension does not support addNetwork() ',\n );\n }\n\n return this._connector.addNetwork(network);\n };\n\n // ---------------------------------------------\n // internal\n // ---------------------------------------------\n private createConnector = (extensionInfo: ExtensionInfo) => {\n this._connector?.close();\n\n const connectorPromise: Promise =\n extensionInfo.connector\n ? Promise.resolve(extensionInfo.connector())\n : Promise.resolve(\n new LegacyExtensionConnector(extensionInfo.identifier),\n );\n\n connectorPromise.then((connector) => {\n connector.open(this.options.hostWindow ?? window, {\n next: (nextStates: WebExtensionStates) => {\n if (nextStates.type === WebExtensionStatus.INITIALIZING) {\n this._states.next({\n type: ExtensionRouterStatus.INITIALIZING,\n network: this.options.defaultNetwork,\n });\n } else if (nextStates.type === WebExtensionStatus.NO_AVAILABLE) {\n this._states.next({\n type: ExtensionRouterStatus.NO_AVAILABLE,\n network: this.options.defaultNetwork,\n isConnectorExists: true,\n isApproved: nextStates.isApproved,\n });\n } else if (nextStates.wallets.length === 0) {\n this._states.next({\n type: ExtensionRouterStatus.WALLET_NOT_CONNECTED,\n network: nextStates.network,\n });\n } else {\n this._states.next({\n type: ExtensionRouterStatus.WALLET_CONNECTED,\n network: nextStates.network,\n wallet: nextStates.focusedWalletAddress\n ? nextStates.wallets.find(\n (itemWallet) =>\n itemWallet.terraAddress ===\n nextStates.focusedWalletAddress,\n ) ?? nextStates.wallets[0]\n : nextStates.wallets[0],\n connectorType:\n connector instanceof LegacyExtensionConnector\n ? ExtensionRouterConnectorType.LEGACY\n : ExtensionRouterConnectorType.WEB_EXTENSION,\n supportFeatures: new Set(connector.supportFeatures()),\n extensionInfo,\n });\n }\n },\n error: (error) => {\n console.error(error);\n },\n complete: () => {},\n });\n\n this._connector = connector;\n\n storeSession({\n identifier: extensionInfo.identifier,\n });\n });\n };\n}\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.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 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 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) {\n const data = exports.MsgCreateValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CreateValidator\", data);\n return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n EditValidator(request) {\n const data = exports.MsgEditValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"EditValidator\", data);\n return promise.then((data) => exports.MsgEditValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n Delegate(request) {\n const data = exports.MsgDelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Delegate\", data);\n return promise.then((data) => exports.MsgDelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n BeginRedelegate(request) {\n const data = exports.MsgBeginRedelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"BeginRedelegate\", data);\n return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n Undelegate(request) {\n const data = exports.MsgUndelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Undelegate\", data);\n return promise.then((data) => exports.MsgUndelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\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.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.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","// 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// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\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","!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}()}));","export * from \"./env\";\nexport * from \"./pkcs7\";\nexport * from \"./types\";\nexport * from \"./validators\";\n//# sourceMappingURL=index.js.map","import {\n ISocketMessage,\n ITransportEvent,\n INetworkMonitor,\n ITransportLib,\n ISocketTransportOptions,\n} from '@walletconnect/types';\nimport {\n isBrowser,\n getLocation,\n getQueryString,\n detectEnv,\n appendToQueryString,\n} from '@walletconnect/utils';\n\nimport NetworkMonitor from './network';\n\n// @ts-ignore\nconst WS =\n typeof global.WebSocket !== 'undefined' ? global.WebSocket : require('ws');\n\n// -- SocketTransport ------------------------------------------------------ //\n\nclass SocketTransport implements ITransportLib {\n private _protocol: string;\n private _version: number;\n private _url: string;\n private _netMonitor: INetworkMonitor | null;\n private _socket: WebSocket | null;\n private _nextSocket: WebSocket | null;\n private _queue: ISocketMessage[] = [];\n private _events: ITransportEvent[] = [];\n private _subscriptions: string[] = [];\n\n // -- constructor ----------------------------------------------------- //\n\n constructor(private opts: ISocketTransportOptions) {\n this._protocol = opts.protocol;\n this._version = opts.version;\n this._url = '';\n this._netMonitor = null;\n this._socket = null;\n this._nextSocket = null;\n this._subscriptions = opts.subscriptions || [];\n this._netMonitor = opts.netMonitor || new NetworkMonitor();\n\n if (!opts.url || typeof opts.url !== 'string') {\n throw new Error('Missing or invalid WebSocket url');\n }\n\n this._url = opts.url;\n\n this._netMonitor.on('online', () => this._socketCreate());\n }\n\n set readyState(value) {\n // empty\n }\n\n get readyState(): number {\n return this._socket ? this._socket.readyState : -1;\n }\n\n set connecting(value) {\n // empty\n }\n\n get connecting(): boolean {\n return this.readyState === 0;\n }\n\n set connected(value) {\n // empty\n }\n\n get connected(): boolean {\n return this.readyState === 1;\n }\n\n set closing(value) {\n // empty\n }\n\n get closing(): boolean {\n return this.readyState === 2;\n }\n\n set closed(value) {\n // empty\n }\n\n get closed(): boolean {\n return this.readyState === 3;\n }\n\n // -- public ---------------------------------------------------------- //\n\n public open = () => {\n this._socketCreate();\n };\n\n public close = () => {\n this._socketClose();\n };\n\n public send = (message: string, topic?: string, silent?: boolean): void => {\n if (!topic || typeof topic !== 'string') {\n throw new Error('Missing or invalid topic field');\n }\n\n this._socketSend({\n topic: topic,\n type: 'pub',\n payload: message,\n silent: !!silent,\n });\n };\n\n public subscribe = (topic: string) => {\n this._socketSend({\n topic: topic,\n type: 'sub',\n payload: '',\n silent: true,\n });\n };\n\n public on = (event: string, callback: (payload: any) => void) => {\n this._events.push({ event, callback });\n };\n\n // -- private ---------------------------------------------------------- //\n\n private _socketCreate = () => {\n if (this._nextSocket) {\n return;\n }\n\n const url = getWebSocketUrl(this._url, this._protocol, this._version);\n\n this._nextSocket = new WS(url);\n\n if (!this._nextSocket) {\n throw new Error('Failed to create socket');\n }\n\n this._nextSocket.onmessage = (event: MessageEvent) =>\n this._socketReceive(event);\n\n this._nextSocket.onopen = () => this._socketOpen();\n\n this._nextSocket.onerror = (event: Event) => this._socketError(event);\n\n this._nextSocket.onclose = () => {\n this._nextSocket = null;\n setTimeout(this._socketCreate, 500);\n };\n };\n\n private _socketOpen = () => {\n this._socketClose();\n this._socket = this._nextSocket;\n this._nextSocket = null;\n this._queueSubscriptions();\n this._pushQueue();\n };\n\n private _socketClose = () => {\n if (this._socket) {\n this._socket.onclose = () => {\n // empty\n };\n this._socket.close();\n }\n };\n\n private _socketSend = (socketMessage: ISocketMessage) => {\n const message: string = JSON.stringify(socketMessage);\n\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(message);\n } else {\n this._setToQueue(socketMessage);\n this._socketCreate();\n }\n };\n\n private _socketReceive = async (event: MessageEvent) => {\n let socketMessage: ISocketMessage;\n\n try {\n socketMessage = JSON.parse(event.data);\n } catch (error) {\n return;\n }\n\n this._socketSend({\n topic: socketMessage.topic,\n type: 'ack',\n payload: '',\n silent: true,\n });\n\n if (this._socket && this._socket.readyState === 1) {\n const events = this._events.filter(\n (itemEvent) => itemEvent.event === 'message',\n );\n if (events && events.length) {\n events.forEach((itemEvent) => itemEvent.callback(socketMessage));\n }\n }\n };\n\n private _socketError = (e: Event) => {\n const events = this._events.filter((event) => event.event === 'error');\n if (events && events.length) {\n events.forEach((event) => event.callback(e));\n }\n };\n\n private _queueSubscriptions = () => {\n const subscriptions = this._subscriptions;\n\n subscriptions.forEach((topic: string) =>\n this._queue.push({\n topic: topic,\n type: 'sub',\n payload: '',\n silent: true,\n }),\n );\n\n this._subscriptions = this.opts.subscriptions || [];\n };\n\n private _setToQueue = (socketMessage: ISocketMessage) => {\n this._queue.push(socketMessage);\n };\n\n private _pushQueue = () => {\n const queue = this._queue;\n\n queue.forEach((socketMessage: ISocketMessage) =>\n this._socketSend(socketMessage),\n );\n\n this._queue = [];\n };\n}\n\nfunction getWebSocketUrl(\n webUrl: string,\n protocol: string,\n version: number,\n): string {\n const url = webUrl.startsWith('https')\n ? webUrl.replace('https', 'wss')\n : webUrl.startsWith('http')\n ? webUrl.replace('http', 'ws')\n : webUrl;\n const splitUrl = url.split('?');\n const params = isBrowser()\n ? {\n protocol,\n version,\n env: 'browser',\n host: getLocation()?.host || '',\n }\n : {\n protocol,\n version,\n env: detectEnv()?.name || '',\n };\n const queryString = appendToQueryString(\n getQueryString(splitUrl[1] || ''),\n params,\n );\n return splitUrl[0] + '?' + queryString;\n}\n\nexport default SocketTransport;\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { TerraWebExtensionConnector } from '@terra-money/web-extension-interface';\n\nexport interface ExtensionInfo {\n name: string;\n identifier: string;\n icon: string;\n connector?: () =>\n | TerraWebExtensionConnector\n | Promise;\n}\n\ndeclare global {\n interface Window {\n terraWallets: ExtensionInfo[] | undefined;\n }\n}\n\nexport function getTerraExtensions(): ExtensionInfo[] {\n return Array.isArray(window.terraWallets)\n ? window.terraWallets\n : window.isTerraExtensionAvailable\n ? [\n {\n name: 'Terra Station',\n identifier: 'station',\n icon: 'https://assets.terra.money/icon/wallet-provider/station.svg',\n },\n ]\n : [];\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","(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 Buffer = require('buffer').Buffer;\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 }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\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 parseHex (str, start, end) {\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 <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\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 var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\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\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 r.strip();\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","import { AccAddress } from '@terra-money/terra.js';\nimport { ReadonlyWalletSession } from './types';\n\nconst STORAGE_KEY = '__terra-readonly-wallet-storage-key__';\n\nexport function getStoredSession(): ReadonlyWalletSession | undefined {\n const storedSessionString = localStorage.getItem(STORAGE_KEY);\n\n if (!storedSessionString) return undefined;\n\n try {\n const storedSession = JSON.parse(storedSessionString);\n\n if (\n 'terraAddress' in storedSession &&\n 'network' in storedSession &&\n typeof storedSession['terraAddress'] === 'string' &&\n AccAddress.validate(storedSession.terraAddress)\n ) {\n return storedSession;\n } else {\n localStorage.removeItem(STORAGE_KEY);\n return undefined;\n }\n } catch {\n localStorage.removeItem(STORAGE_KEY);\n return undefined;\n }\n}\n\nexport function storeSession(session: ReadonlyWalletSession) {\n if (!AccAddress.validate(session.terraAddress)) {\n throw new Error(`${session.terraAddress} is not a terraAddress`);\n }\n localStorage.setItem(STORAGE_KEY, JSON.stringify(session));\n}\n\nexport function clearStoredSession() {\n localStorage.removeItem(STORAGE_KEY);\n}\n","import { clearStoredSession, getStoredSession, storeSession } from './storage';\nimport { ReadonlyWalletSession } from './types';\n\nexport interface ReadonlyWalletController extends ReadonlyWalletSession {\n disconnect: () => void;\n}\n\nexport interface ReadonlyWalletOptions extends ReadonlyWalletSession {}\n\nexport function connectIfSessionExists(): ReadonlyWalletController | null {\n const storedSession = getStoredSession();\n\n if (!!storedSession) {\n return connect(storedSession);\n }\n\n return null;\n}\n\nexport function connect(\n options: ReadonlyWalletOptions,\n): ReadonlyWalletController {\n storeSession(options);\n\n function disconnect() {\n clearStoredSession();\n }\n\n return {\n ...options,\n disconnect,\n };\n}\n","import { NetworkInfo } from '@terra-money/wallet-types';\nimport { AccAddress } from '@terra-money/terra.js';\nimport { modalStyle } from './modal.style';\nimport { ReadonlyWalletSession } from './types';\n\ninterface Options {\n networks: NetworkInfo[];\n}\n\nexport function readonlyWalletModal({\n networks,\n}: Options): Promise {\n return new Promise((resolve) => {\n const styleContainer = document.createElement('style');\n const modalContainer = document.createElement('div');\n\n function onComplete(session: ReadonlyWalletSession | null) {\n resolve(session);\n styleContainer.parentElement?.removeChild(styleContainer);\n modalContainer.parentElement?.removeChild(modalContainer);\n }\n\n const element = createModalElement({\n networks,\n onComplete,\n });\n\n styleContainer.textContent = modalStyle;\n modalContainer.appendChild(element);\n\n document.querySelector('head')?.appendChild(styleContainer);\n document.querySelector('body')?.appendChild(modalContainer);\n });\n}\n\nfunction createModalElement({\n networks,\n onComplete,\n}: Options & {\n onComplete: (session: ReadonlyWalletSession | null) => void;\n}): HTMLElement {\n let chainID: string = networks[0].chainID;\n let address: string = '';\n\n // ---------------------------------------------\n // container\n // ---------------------------------------------\n const container = document.createElement('div');\n container.setAttribute('class', 'wallet-readonly-modal');\n\n // ---------------------------------------------\n // container > div.wallet-readonly-modal--dim\n // ---------------------------------------------\n const dim = document.createElement('div');\n dim.setAttribute('class', 'wallet-readonly-modal--dim');\n\n container.appendChild(dim);\n\n // ---------------------------------------------\n // content > div.wallet-readonly-modal--content\n // ---------------------------------------------\n const content = document.createElement('section');\n content.setAttribute('class', 'wallet-readonly-modal--content');\n\n container.appendChild(content);\n\n // h1\n const title = document.createElement('h1');\n title.textContent = 'View an Address';\n content.appendChild(title);\n\n // div\n const selectContainer = document.createElement('div');\n content.appendChild(selectContainer);\n\n // div > label\n const selectLabel = document.createElement('label');\n selectLabel.textContent = 'Network';\n selectContainer.appendChild(selectLabel);\n\n // div > .select-wrapper\n const selectWrapper = document.createElement('div');\n selectWrapper.setAttribute('class', 'select-wrapper');\n selectContainer.appendChild(selectWrapper);\n\n // div > .select-wrapper > select\n const select = document.createElement('select');\n\n for (const itemNetwork of networks) {\n const option = document.createElement('option');\n option.setAttribute('value', itemNetwork.chainID);\n\n if (chainID === itemNetwork.chainID) {\n option.setAttribute('selected', '');\n }\n\n option.textContent = `${itemNetwork.name[0].toUpperCase()}${itemNetwork.name.slice(\n 1,\n )} - ${itemNetwork.chainID}`;\n\n select.appendChild(option);\n }\n\n selectWrapper.appendChild(select);\n\n // div > .select-wrapper > svg\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('viewbox', '0 0 24 24');\n\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n arrow.setAttribute('d', 'M7 10l5 5 5-5z');\n svg.appendChild(arrow);\n\n selectWrapper.appendChild(svg);\n\n // div\n const inputContainer = document.createElement('div');\n content.appendChild(inputContainer);\n\n // div > label\n const inputLabel = document.createElement('label');\n inputLabel.textContent = 'Address';\n\n inputContainer.appendChild(inputLabel);\n\n // div > input\n const input = document.createElement('input');\n input.setAttribute('type', 'text');\n\n inputContainer.appendChild(input);\n\n // button\n const button = document.createElement('button');\n button.disabled = true;\n button.textContent = 'View an Address';\n\n content.appendChild(button);\n\n // ---------------------------------------------\n // bind data\n // ---------------------------------------------\n dim.addEventListener('click', () => {\n onComplete(null);\n });\n\n select.addEventListener('change', (event) => {\n chainID = (event.target as HTMLSelectElement).value;\n });\n\n input.addEventListener('input', (event) => {\n address = (event.target as HTMLInputElement).value;\n\n button.disabled = !(\n AccAddress.validate(address) && button.hasAttribute('disabled')\n );\n });\n\n button.addEventListener('click', () => {\n const network = networks.find(\n (itemNetwork) => itemNetwork.chainID === chainID,\n );\n\n if (!network) {\n return;\n }\n\n onComplete({\n network,\n terraAddress: address,\n });\n });\n\n return container;\n}\n","// language=css\nexport const modalStyle = `\n\n@keyframes wallet-readonly-modal--dim-enter {\n 0% {\n opacity: 0;\n }\n \n 100% {\n opacity: 1;\n }\n}\n\n@keyframes wallet-readonly-modal--content-enter {\n 0% {\n opacity: 0;\n transform: scale(0.4);\n }\n \n 100% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes wallet-readonly-modal--content-slide {\n 0% {\n opacity: 0;\n transform: translateY(300px);\n }\n \n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.wallet-readonly-modal {\n position: fixed;\n z-index: 100000;\n\n color: #212121;\n font-family: sans-serif;\n\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n\n display: grid;\n place-content: center;\n}\n\n.wallet-readonly-modal select, .wallet-readonly-modal input {\n color: #212121;\n background-color: #ffffff;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--dim {\n position: fixed;\n z-index: -1;\n\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.3);\n\n animation: wallet-readonly-modal--dim-enter 0.2s ease-in-out;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content {\n box-sizing: border-box;\n \n max-width: 640px;\n width: 100vw;\n\n border-radius: 8px;\n\n background-color: #ffffff;\n box-shadow: 0 4px 18px 3px rgba(0, 0, 0, 0.43);\n\n animation: wallet-readonly-modal--content-enter 0.2s ease-in-out;\n\n padding: 40px;\n \n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content h1 {\n font-size: 20px;\n font-weight: bold;\n \n margin: 0 0 12px 0;\n\n text-align: center;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content label {\n display: block;\n\n color: #2043b5;\n font-size: 14px;\n font-weight: 600;\n\n margin-bottom: 8px;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content .select-wrapper {\n position: relative;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content .select-wrapper svg {\n position: absolute;\n right: 10px;\n top: 11px;\n \n width: 20px;\n height: 20px;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content .select-wrapper svg path {\n color: #212121;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content .select-wrapper select {\n outline: none;\n appearance: none;\n\n width: 100%;\n height: 45px;\n\n border: 1px solid #cfd8ea;\n border-radius: 8px;\n\n padding: 0 25px 0 15px;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content .select-wrapper select:focus {\n border-color: #2043b5;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content input {\n box-sizing: border-box;\n outline: none;\n\n width: 100%;\n height: 45px;\n\n border: 1px solid #cfd8ea;\n border-radius: 8px;\n\n padding: 0 15px;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content input:focus {\n border-color: #2043b5;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content button {\n margin-top: 20px;\n \n display: block;\n \n cursor: pointer;\n outline: none;\n border: 0;\n \n width: 100%;\n height: 48px;\n border-radius: 30px;\n \n font-size: 14px;\n font-weight: bold;\n \n color: #ffffff;\n background-color: #2043b5;\n}\n\n.wallet-readonly-modal > .wallet-readonly-modal--content button:disabled {\n opacity: 0.4;\n}\n\n@media (max-width: 450px) {\n .wallet-readonly-modal {\n place-content: flex-end;\n }\n \n .wallet-readonly-modal > .wallet-readonly-modal--content {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n \n padding-bottom: 100px;\n \n animation: wallet-readonly-modal--content-slide 0.2s ease-in-out;\n }\n}\n`;\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.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 __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 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 () {\n var _a = this, spend_limit = _a.spend_limit, expiration = _a.expiration;\n return {\n type: 'feegrant/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 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 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 return new BasicAllowance(Coins_1.Coins.fromProto(proto.spendLimit), proto.expiration ? proto.expiration : undefined);\n };\n BasicAllowance.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.BasicAllowance',\n value: feegrant_1.BasicAllowance.encode(this.toProto()).finish(),\n });\n };\n BasicAllowance.unpackAny = function (msgAny) {\n return BasicAllowance.fromProto(feegrant_1.BasicAllowance.decode(msgAny.value));\n };\n return BasicAllowance;\n}(json_1.JSONSerializable));\nexports.BasicAllowance = BasicAllowance;\n//# sourceMappingURL=BasicAllowance.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.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 minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst gov_1 = require(\"../../../cosmos/gov/v1beta1/gov\");\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) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new minimal_1.default.Reader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.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.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 __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\";\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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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 minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\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) {\n const data = exports.MsgCreateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"CreateClient\", data);\n return promise.then((data) => exports.MsgCreateClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpdateClient(request) {\n const data = exports.MsgUpdateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpdateClient\", data);\n return promise.then((data) => exports.MsgUpdateClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpgradeClient(request) {\n const data = exports.MsgUpgradeClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpgradeClient\", data);\n return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n SubmitMisbehaviour(request) {\n const data = exports.MsgSubmitMisbehaviour.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"SubmitMisbehaviour\", data);\n return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.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\";\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.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 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\");\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) {\n const data = exports.MsgConnectionOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenInit\", data);\n return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenTry(request) {\n const data = exports.MsgConnectionOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenTry\", data);\n return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenAck(request) {\n const data = exports.MsgConnectionOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenAck\", data);\n return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenConfirm(request) {\n const data = exports.MsgConnectionOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenConfirm\", data);\n return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.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\";\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.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 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 __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 __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.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 __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) {\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); }), 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) {\n return new Tx(TxBody.fromData(data.body), AuthInfo.fromData(data.auth_info), data.signatures);\n };\n Tx.prototype.toData = function () {\n return {\n body: this.body.toData(),\n auth_info: this.auth_info.toData(),\n signatures: this.signatures,\n };\n };\n Tx.unpackAny = function (anyProto) {\n return this.fromProto(tx_1.Tx.decode(anyProto.value));\n };\n Tx.fromProto = function (proto) {\n return new Tx(TxBody.fromProto(proto.body), AuthInfo.fromProto(proto.authInfo), proto.signatures.map(function (sig) { return Buffer.from(sig).toString('base64'); }));\n };\n Tx.prototype.toProto = function () {\n return tx_1.Tx.fromPartial({\n body: this.body.toProto(),\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 () {\n return tx_1.Tx.encode(this.toProto()).finish();\n };\n Tx.fromBuffer = function (buf) {\n return Tx.fromProto(tx_1.Tx.decode(buf));\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) {\n return new TxBody(data.messages.map(function (m) { return Msg_1.Msg.fromData(m); }), data.memo, Number.parseInt(data.timeout_height));\n };\n TxBody.prototype.toData = function () {\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(); }),\n timeout_height: ((_b = this.timeout_height) !== null && _b !== void 0 ? _b : 0).toFixed(),\n };\n };\n TxBody.fromProto = function (proto) {\n return new TxBody(proto.messages.map(function (m) { return Msg_1.Msg.fromProto(m); }), proto.memo, proto.timeoutHeight.toNumber());\n };\n TxBody.prototype.toProto = function () {\n var _a;\n return tx_1.TxBody.fromPartial({\n memo: this.memo,\n messages: this.messages.map(function (m) { return m.packAny(); }),\n timeoutHeight: Long.fromNumber((_a = this.timeout_height) !== null && _a !== void 0 ? _a : 0),\n });\n };\n TxBody.prototype.toBytes = function () {\n return tx_1.TxBody.encode(this.toProto()).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.SignatureV2 = 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 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';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\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\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","import {\n ConnectedWallet,\n createConnectedWallet,\n WalletStates,\n WalletStatus,\n} from '@terra-money/wallet-types';\nimport { OperatorFunction } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WalletController } from '../controller';\n\nexport function toConnectedWallet(\n controller: WalletController,\n): OperatorFunction {\n return map((states) => {\n if (states.status === WalletStatus.WALLET_CONNECTED) {\n return createConnectedWallet({\n connection: states.connection,\n network: states.network,\n wallets: states.wallets,\n post: controller.post,\n sign: controller.sign,\n signBytes: controller.signBytes,\n supportFeatures: states.supportFeatures,\n status: states.status,\n });\n }\n return undefined;\n });\n}\n","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export const CHROME_EXTENSION_INSTALL_URL =\n 'https://chrome.google.com/webstore/detail/terra-station/aiifbnbfobpmeekipheeijimdpnlpgpp';\n\nexport const DEFAULT_CHROME_EXTENSION_COMPATIBLE_BROWSER_CHECK = (\n userAgent: string,\n) => {\n return /MathWallet\\//.test(userAgent);\n};\n","import {\n CreateTxFailed,\n SignBytesFailed,\n Timeout,\n TxFailed,\n TxUnspecifiedError,\n UserDenied,\n} from '@terra-money/wallet-types';\nimport {\n WebExtensionCreateTxFailed,\n WebExtensionTxFailed,\n WebExtensionTxUnspecifiedError,\n WebExtensionUserDenied,\n} from '@terra-money/web-extension-interface';\nimport { CreateTxOptions } from '@terra-money/terra.js';\nimport { isError } from './isError';\n\nexport function mapExtensionTxError(\n tx: CreateTxOptions,\n error: unknown,\n): Error {\n if (\n isError(error, UserDenied) ||\n isError(error, Timeout) ||\n isError(error, SignBytesFailed) ||\n isError(error, CreateTxFailed) ||\n isError(error, TxFailed) ||\n isError(error, TxUnspecifiedError)\n ) {\n return error;\n } else if (isError(error, WebExtensionUserDenied)) {\n return new UserDenied();\n } else if (isError(error, WebExtensionCreateTxFailed)) {\n return new CreateTxFailed(tx, error.message);\n } else if (isError(error, WebExtensionTxFailed)) {\n return new TxFailed(tx, error.txhash, error.message, null);\n } else if (isError(error, WebExtensionTxUnspecifiedError)) {\n return new TxUnspecifiedError(tx, error.message);\n }\n return new TxUnspecifiedError(\n tx,\n error instanceof Error ? error.message : String(error),\n );\n}\n\nexport function mapExtensionSignBytesError(\n bytes: Buffer,\n error: unknown,\n): Error {\n if (\n isError(error, UserDenied) ||\n isError(error, Timeout) ||\n isError(error, SignBytesFailed) ||\n isError(error, CreateTxFailed) ||\n isError(error, TxFailed) ||\n isError(error, TxUnspecifiedError)\n ) {\n return error;\n } else if (isError(error, WebExtensionUserDenied)) {\n return new UserDenied();\n }\n return new SignBytesFailed(\n bytes,\n error instanceof Error ? error.message : String(error),\n );\n}\n","// THIS FILE IS GENERATED - DO NOT EDIT!\n/*!mobile-detect v1.4.5 2021-03-13*/\n/*global module:false, define:false*/\n/*jshint latedef:false*/\n/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/\n(function (define, undefined) {\ndefine(function () {\n 'use strict';\n\n var impl = {};\n\n impl.mobileDetectRules = {\n \"phones\": {\n \"iPhone\": \"\\\\biPhone\\\\b|\\\\biPod\\\\b\",\n \"BlackBerry\": \"BlackBerry|\\\\bBB10\\\\b|rim[0-9]+|\\\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\\\b-[0-9]+\",\n \"Pixel\": \"; \\\\bPixel\\\\b\",\n \"HTC\": \"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\\\bEVO\\\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel\",\n \"Nexus\": \"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 5X|Nexus 6\",\n \"Dell\": \"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\\\b001DL\\\\b|\\\\b101DL\\\\b|\\\\bGS01\\\\b\",\n \"Motorola\": \"Motorola|DROIDX|DROID BIONIC|\\\\bDroid\\\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\\\bMoto E\\\\b|XT1068|XT1092|XT1052\",\n \"Samsung\": \"\\\\bSamsung\\\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F|SM-G610F|SM-G981B|SM-G892A|SM-A530F\",\n \"LG\": \"\\\\bLG\\\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710\",\n \"Sony\": \"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533|SOV34|601SO|F8332\",\n \"Asus\": \"Asus.*Galaxy|PadFone.*Mobile\",\n \"Xiaomi\": \"^(?!.*\\\\bx11\\\\b).*xiaomi.*$|POCOPHONE F1|MI 8|Redmi Note 9S|Redmi Note 5A Prime|N2G47H|M2001J2G|M2001J2I|M1805E10A|M2004J11G|M1902F1G|M2002J9G|M2004J19G|M2003J6A1G\",\n \"NokiaLumia\": \"Lumia [0-9]{3,4}\",\n \"Micromax\": \"Micromax.*\\\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\\\b\",\n \"Palm\": \"PalmSource|Palm\",\n \"Vertu\": \"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature\",\n \"Pantech\": \"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790\",\n \"Fly\": \"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250\",\n \"Wiko\": \"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM\",\n \"iMobile\": \"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)\",\n \"SimValley\": \"\\\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\\\b\",\n \"Wolfgang\": \"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q\",\n \"Alcatel\": \"Alcatel\",\n \"Nintendo\": \"Nintendo (3DS|Switch)\",\n \"Amoi\": \"Amoi\",\n \"INQ\": \"INQ\",\n \"OnePlus\": \"ONEPLUS\",\n \"GenericPhone\": \"Tapatalk|PDA;|SAGEM|\\\\bmmp\\\\b|pocket|\\\\bpsp\\\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\\\bwap\\\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser\"\n },\n \"tablets\": {\n \"iPad\": \"iPad|iPad.*Mobile\",\n \"NexusTablet\": \"Android.*Nexus[\\\\s]+(7|9|10)\",\n \"GoogleTablet\": \"Android.*Pixel C\",\n \"SamsungTablet\": \"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V|SM-P610|SM-T290|SM-T515|SM-T590|SM-T595|SM-T725|SM-T817P|SM-P585N0|SM-T395|SM-T295|SM-T865|SM-P610N|SM-P615|SM-T970|SM-T380|SM-T5950|SM-T905|SM-T231|SM-T500|SM-T860\",\n \"Kindle\": \"Kindle|Silk.*Accelerated|Android.*\\\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\\\b|Android.*Silk\\/[0-9.]+ like Chrome\\/[0-9.]+ (?!Mobile)\",\n \"SurfaceTablet\": \"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)\",\n \"HPTablet\": \"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10\",\n \"AsusTablet\": \"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\\\bK00F\\\\b|\\\\bK00C\\\\b|\\\\bK00E\\\\b|\\\\bK00L\\\\b|TX201LA|ME176C|ME102A|\\\\bM80TA\\\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\\\bME70C\\\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\\\bP027\\\\b|\\\\bP024\\\\b|\\\\bP00C\\\\b\",\n \"BlackBerryTablet\": \"PlayBook|RIM Tablet\",\n \"HTCtablet\": \"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410\",\n \"MotorolaTablet\": \"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617\",\n \"NookTablet\": \"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2\",\n \"AcerTablet\": \"Android.*; \\\\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\\\b|W3-810|\\\\bA3-A10\\\\b|\\\\bA3-A11\\\\b|\\\\bA3-A20\\\\b|\\\\bA3-A30|A3-A40\",\n \"ToshibaTablet\": \"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO\",\n \"LGTablet\": \"\\\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\\\b\",\n \"FujitsuTablet\": \"Android.*\\\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\\\b\",\n \"PrestigioTablet\": \"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002\",\n \"LenovoTablet\": \"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X|TB-X704F|TB-X104F|TB3-X70F|TB-X705F|TB-8504F|TB3-X70L|TB3-710F|TB-X704L\",\n \"DellTablet\": \"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7\",\n \"YarvikTablet\": \"Android.*\\\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\\\b\",\n \"MedionTablet\": \"Android.*\\\\bOYO\\\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB\",\n \"ArnovaTablet\": \"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2\",\n \"IntensoTablet\": \"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004\",\n \"IRUTablet\": \"M702pro\",\n \"MegafonTablet\": \"MegaFon V9|\\\\bZTE V9\\\\b|Android.*\\\\bMT7A\\\\b\",\n \"EbodaTablet\": \"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)\",\n \"AllViewTablet\": \"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)\",\n \"ArchosTablet\": \"\\\\b(101G9|80G9|A101IT)\\\\b|Qilive 97R|Archos5|\\\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\\\b\",\n \"AinolTablet\": \"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark\",\n \"NokiaLumiaTablet\": \"Lumia 2520\",\n \"SonyTablet\": \"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712\",\n \"PhilipsTablet\": \"\\\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\\\b\",\n \"CubeTablet\": \"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT\",\n \"CobyTablet\": \"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010\",\n \"MIDTablet\": \"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10\",\n \"MSITablet\": \"MSI \\\\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\\\b\",\n \"SMiTTablet\": \"Android.*(\\\\bMID\\\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)\",\n \"RockChipTablet\": \"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A\",\n \"FlyTablet\": \"IQ310|Fly Vision\",\n \"bqTablet\": \"Android.*(bq)?.*\\\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\\\b|Maxwell.*Lite|Maxwell.*Plus\",\n \"HuaweiTablet\": \"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19\",\n \"NecTablet\": \"\\\\bN-06D|\\\\bN-08D\",\n \"PantechTablet\": \"Pantech.*P4100\",\n \"BronchoTablet\": \"Broncho.*(N701|N708|N802|a710)\",\n \"VersusTablet\": \"TOUCHPAD.*[78910]|\\\\bTOUCHTAB\\\\b\",\n \"ZyncTablet\": \"z1000|Z99 2G|z930|z990|z909|Z919|z900\",\n \"PositivoTablet\": \"TB07STA|TB10STA|TB07FTA|TB10FTA\",\n \"NabiTablet\": \"Android.*\\\\bNabi\",\n \"KoboTablet\": \"Kobo Touch|\\\\bK080\\\\b|\\\\bVox\\\\b Build|\\\\bArc\\\\b Build\",\n \"DanewTablet\": \"DSlide.*\\\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\\\b\",\n \"TexetTablet\": \"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE\",\n \"PlaystationTablet\": \"Playstation.*(Portable|Vita)\",\n \"TrekstorTablet\": \"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab\",\n \"PyleAudioTablet\": \"\\\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\\\b\",\n \"AdvanTablet\": \"Android.* \\\\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\\\b \",\n \"DanyTechTablet\": \"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1\",\n \"GalapadTablet\": \"Android [0-9.]+; [a-z-]+; \\\\bG1\\\\b\",\n \"MicromaxTablet\": \"Funbook|Micromax.*\\\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\\\b\",\n \"KarbonnTablet\": \"Android.*\\\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\\\b\",\n \"AllFineTablet\": \"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide\",\n \"PROSCANTablet\": \"\\\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\\\b\",\n \"YONESTablet\": \"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026\",\n \"ChangJiaTablet\": \"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503\",\n \"GUTablet\": \"TX-A1301|TX-M9002|Q702|kf026\",\n \"PointOfViewTablet\": \"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10\",\n \"OvermaxTablet\": \"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027\",\n \"HCLTablet\": \"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync\",\n \"DPSTablet\": \"DPS Dream 9|DPS Dual 7\",\n \"VistureTablet\": \"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10\",\n \"CrestaTablet\": \"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989\",\n \"MediatekTablet\": \"\\\\bMT8125|MT8389|MT8135|MT8377\\\\b\",\n \"ConcordeTablet\": \"Concorde([ ]+)?Tab|ConCorde ReadMan\",\n \"GoCleverTablet\": \"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042\",\n \"ModecomTablet\": \"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003\",\n \"VoninoTablet\": \"\\\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\\\bQ8\\\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\\\b\",\n \"ECSTablet\": \"V07OT2|TM105A|S10OT1|TR10CS1\",\n \"StorexTablet\": \"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab\",\n \"VodafoneTablet\": \"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400\",\n \"EssentielBTablet\": \"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2\",\n \"RossMoorTablet\": \"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711\",\n \"iMobileTablet\": \"i-mobile i-note\",\n \"TolinoTablet\": \"tolino tab [0-9.]+|tolino shine\",\n \"AudioSonicTablet\": \"\\\\bC-22Q|T7-QC|T-17B|T-17P\\\\b\",\n \"AMPETablet\": \"Android.* A78 \",\n \"SkkTablet\": \"Android.* (SKYPAD|PHOENIX|CYCLOPS)\",\n \"TecnoTablet\": \"TECNO P9|TECNO DP8D\",\n \"JXDTablet\": \"Android.* \\\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\\\b\",\n \"iJoyTablet\": \"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)\",\n \"FX2Tablet\": \"FX2 PAD7|FX2 PAD10\",\n \"XoroTablet\": \"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151\",\n \"ViewsonicTablet\": \"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a\",\n \"VerizonTablet\": \"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1\",\n \"OdysTablet\": \"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\\\bXELIO\\\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10\",\n \"CaptivaTablet\": \"CAPTIVA PAD\",\n \"IconbitTablet\": \"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S\",\n \"TeclastTablet\": \"T98 4G|\\\\bP80\\\\b|\\\\bX90HD\\\\b|X98 Air|X98 Air 3G|\\\\bX89\\\\b|P80 3G|\\\\bX80h\\\\b|P98 Air|\\\\bX89HD\\\\b|P98 3G|\\\\bP90HD\\\\b|P89 3G|X98 3G|\\\\bP70h\\\\b|P79HD 3G|G18d 3G|\\\\bP79HD\\\\b|\\\\bP89s\\\\b|\\\\bA88\\\\b|\\\\bP10HD\\\\b|\\\\bP19HD\\\\b|G18 3G|\\\\bP78HD\\\\b|\\\\bA78\\\\b|\\\\bP75\\\\b|G17s 3G|G17h 3G|\\\\bP85t\\\\b|\\\\bP90\\\\b|\\\\bP11\\\\b|\\\\bP98t\\\\b|\\\\bP98HD\\\\b|\\\\bG18d\\\\b|\\\\bP85s\\\\b|\\\\bP11HD\\\\b|\\\\bP88s\\\\b|\\\\bA80HD\\\\b|\\\\bA80se\\\\b|\\\\bA10h\\\\b|\\\\bP89\\\\b|\\\\bP78s\\\\b|\\\\bG18\\\\b|\\\\bP85\\\\b|\\\\bA70h\\\\b|\\\\bA70\\\\b|\\\\bG17\\\\b|\\\\bP18\\\\b|\\\\bA80s\\\\b|\\\\bA11s\\\\b|\\\\bP88HD\\\\b|\\\\bA80h\\\\b|\\\\bP76s\\\\b|\\\\bP76h\\\\b|\\\\bP98\\\\b|\\\\bA10HD\\\\b|\\\\bP78\\\\b|\\\\bP88\\\\b|\\\\bA11\\\\b|\\\\bA10t\\\\b|\\\\bP76a\\\\b|\\\\bP76t\\\\b|\\\\bP76e\\\\b|\\\\bP85HD\\\\b|\\\\bP85a\\\\b|\\\\bP86\\\\b|\\\\bP75HD\\\\b|\\\\bP76v\\\\b|\\\\bA12\\\\b|\\\\bP75a\\\\b|\\\\bA15\\\\b|\\\\bP76Ti\\\\b|\\\\bP81HD\\\\b|\\\\bA10\\\\b|\\\\bT760VE\\\\b|\\\\bT720HD\\\\b|\\\\bP76\\\\b|\\\\bP73\\\\b|\\\\bP71\\\\b|\\\\bP72\\\\b|\\\\bT720SE\\\\b|\\\\bC520Ti\\\\b|\\\\bT760\\\\b|\\\\bT720VE\\\\b|T720-3GE|T720-WiFi\",\n \"OndaTablet\": \"\\\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\\\b[\\\\s]+|V10 \\\\b4G\\\\b\",\n \"JaytechTablet\": \"TPC-PA762\",\n \"BlaupunktTablet\": \"Endeavour 800NG|Endeavour 1010\",\n \"DigmaTablet\": \"\\\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\\\b\",\n \"EvolioTablet\": \"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\\\bEvotab\\\\b|\\\\bNeura\\\\b\",\n \"LavaTablet\": \"QPAD E704|\\\\bIvoryS\\\\b|E-TAB IVORY|\\\\bE-TAB\\\\b\",\n \"AocTablet\": \"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712\",\n \"MpmanTablet\": \"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\\\bMPG7\\\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010\",\n \"CelkonTablet\": \"CT695|CT888|CT[\\\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\\\bCT-1\\\\b\",\n \"WolderTablet\": \"miTab \\\\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\\\b\",\n \"MediacomTablet\": \"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA\",\n \"MiTablet\": \"\\\\bMI PAD\\\\b|\\\\bHM NOTE 1W\\\\b\",\n \"NibiruTablet\": \"Nibiru M1|Nibiru Jupiter One\",\n \"NexoTablet\": \"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI\",\n \"LeaderTablet\": \"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100\",\n \"UbislateTablet\": \"UbiSlate[\\\\s]?7C\",\n \"PocketBookTablet\": \"Pocketbook\",\n \"KocasoTablet\": \"\\\\b(TB-1207)\\\\b\",\n \"HisenseTablet\": \"\\\\b(F5281|E2371)\\\\b\",\n \"Hudl\": \"Hudl HT7S3|Hudl 2\",\n \"TelstraTablet\": \"T-Hub2\",\n \"GenericTablet\": \"Android.*\\\\b97D\\\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\\\bA7EB\\\\b|CatNova8|A1_07|CT704|CT1002|\\\\bM721\\\\b|rk30sdk|\\\\bEVOTAB\\\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\\\bM6pro\\\\b|CT1020W|arc 10HD|\\\\bTP750\\\\b|\\\\bQTAQZ3\\\\b|WVT101|TM1088|KT107\"\n },\n \"oss\": {\n \"AndroidOS\": \"Android\",\n \"BlackBerryOS\": \"blackberry|\\\\bBB10\\\\b|rim tablet os\",\n \"PalmOS\": \"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino\",\n \"SymbianOS\": \"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\\\bS60\\\\b\",\n \"WindowsMobileOS\": \"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;\",\n \"WindowsPhoneOS\": \"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;\",\n \"iOS\": \"\\\\biPhone.*Mobile|\\\\biPod|\\\\biPad|AppleCoreMedia\",\n \"iPadOS\": \"CPU OS 13\",\n \"SailfishOS\": \"Sailfish\",\n \"MeeGoOS\": \"MeeGo\",\n \"MaemoOS\": \"Maemo\",\n \"JavaOS\": \"J2ME\\/|\\\\bMIDP\\\\b|\\\\bCLDC\\\\b\",\n \"webOS\": \"webOS|hpwOS\",\n \"badaOS\": \"\\\\bBada\\\\b\",\n \"BREWOS\": \"BREW\"\n },\n \"uas\": {\n \"Chrome\": \"\\\\bCrMo\\\\b|CriOS|Android.*Chrome\\/[.0-9]* (Mobile)?\",\n \"Dolfin\": \"\\\\bDolfin\\\\b\",\n \"Opera\": \"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\\/[0-9.]+$|Coast\\/[0-9.]+\",\n \"Skyfire\": \"Skyfire\",\n \"Edge\": \"\\\\bEdgiOS\\\\b|Mobile Safari\\/[.0-9]* Edge\",\n \"IE\": \"IEMobile|MSIEMobile\",\n \"Firefox\": \"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS\",\n \"Bolt\": \"bolt\",\n \"TeaShark\": \"teashark\",\n \"Blazer\": \"Blazer\",\n \"Safari\": \"Version((?!\\\\bEdgiOS\\\\b).)*Mobile.*Safari|Safari.*Mobile|MobileSafari\",\n \"WeChat\": \"\\\\bMicroMessenger\\\\b\",\n \"UCBrowser\": \"UC.*Browser|UCWEB\",\n \"baiduboxapp\": \"baiduboxapp\",\n \"baidubrowser\": \"baidubrowser\",\n \"DiigoBrowser\": \"DiigoBrowser\",\n \"Mercury\": \"\\\\bMercury\\\\b\",\n \"ObigoBrowser\": \"Obigo\",\n \"NetFront\": \"NF-Browser\",\n \"GenericBrowser\": \"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger\",\n \"PaleMoon\": \"Android.*PaleMoon|Mobile.*PaleMoon\"\n },\n \"props\": {\n \"Mobile\": \"Mobile\\/[VER]\",\n \"Build\": \"Build\\/[VER]\",\n \"Version\": \"Version\\/[VER]\",\n \"VendorID\": \"VendorID\\/[VER]\",\n \"iPad\": \"iPad.*CPU[a-z ]+[VER]\",\n \"iPhone\": \"iPhone.*CPU[a-z ]+[VER]\",\n \"iPod\": \"iPod.*CPU[a-z ]+[VER]\",\n \"Kindle\": \"Kindle\\/[VER]\",\n \"Chrome\": [\n \"Chrome\\/[VER]\",\n \"CriOS\\/[VER]\",\n \"CrMo\\/[VER]\"\n ],\n \"Coast\": [\n \"Coast\\/[VER]\"\n ],\n \"Dolfin\": \"Dolfin\\/[VER]\",\n \"Firefox\": [\n \"Firefox\\/[VER]\",\n \"FxiOS\\/[VER]\"\n ],\n \"Fennec\": \"Fennec\\/[VER]\",\n \"Edge\": \"Edge\\/[VER]\",\n \"IE\": [\n \"IEMobile\\/[VER];\",\n \"IEMobile [VER]\",\n \"MSIE [VER];\",\n \"Trident\\/[0-9.]+;.*rv:[VER]\"\n ],\n \"NetFront\": \"NetFront\\/[VER]\",\n \"NokiaBrowser\": \"NokiaBrowser\\/[VER]\",\n \"Opera\": [\n \" OPR\\/[VER]\",\n \"Opera Mini\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"Opera Mini\": \"Opera Mini\\/[VER]\",\n \"Opera Mobi\": \"Version\\/[VER]\",\n \"UCBrowser\": [\n \"UCWEB[VER]\",\n \"UC.*Browser\\/[VER]\"\n ],\n \"MQQBrowser\": \"MQQBrowser\\/[VER]\",\n \"MicroMessenger\": \"MicroMessenger\\/[VER]\",\n \"baiduboxapp\": \"baiduboxapp\\/[VER]\",\n \"baidubrowser\": \"baidubrowser\\/[VER]\",\n \"SamsungBrowser\": \"SamsungBrowser\\/[VER]\",\n \"Iron\": \"Iron\\/[VER]\",\n \"Safari\": [\n \"Version\\/[VER]\",\n \"Safari\\/[VER]\"\n ],\n \"Skyfire\": \"Skyfire\\/[VER]\",\n \"Tizen\": \"Tizen\\/[VER]\",\n \"Webkit\": \"webkit[ \\/][VER]\",\n \"PaleMoon\": \"PaleMoon\\/[VER]\",\n \"SailfishBrowser\": \"SailfishBrowser\\/[VER]\",\n \"Gecko\": \"Gecko\\/[VER]\",\n \"Trident\": \"Trident\\/[VER]\",\n \"Presto\": \"Presto\\/[VER]\",\n \"Goanna\": \"Goanna\\/[VER]\",\n \"iOS\": \" \\\\bi?OS\\\\b [VER][ ;]{1}\",\n \"Android\": \"Android [VER]\",\n \"Sailfish\": \"Sailfish [VER]\",\n \"BlackBerry\": [\n \"BlackBerry[\\\\w]+\\/[VER]\",\n \"BlackBerry.*Version\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"BREW\": \"BREW [VER]\",\n \"Java\": \"Java\\/[VER]\",\n \"Windows Phone OS\": [\n \"Windows Phone OS [VER]\",\n \"Windows Phone [VER]\"\n ],\n \"Windows Phone\": \"Windows Phone [VER]\",\n \"Windows CE\": \"Windows CE\\/[VER]\",\n \"Windows NT\": \"Windows NT [VER]\",\n \"Symbian\": [\n \"SymbianOS\\/[VER]\",\n \"Symbian\\/[VER]\"\n ],\n \"webOS\": [\n \"webOS\\/[VER]\",\n \"hpwOS\\/[VER];\"\n ]\n },\n \"utils\": {\n \"Bot\": \"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp|AspiegelBot\",\n \"MobileBot\": \"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\\/M1A1-R2D2\",\n \"DesktopMode\": \"WPDesktop\",\n \"TV\": \"SonyDTV|HbbTV\",\n \"WebKit\": \"(webkit)[ \\/]([\\\\w.]+)\",\n \"Console\": \"\\\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\\\b\",\n \"Watch\": \"SM-V700\"\n }\n};\n\n // following patterns come from http://detectmobilebrowsers.com/\n impl.detectMobileBrowsers = {\n fullPattern: /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n shortPattern: /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n tabletPattern: /android|ipad|playbook|silk/i\n };\n\n var hasOwnProp = Object.prototype.hasOwnProperty,\n isArray;\n\n impl.FALLBACK_PHONE = 'UnknownPhone';\n impl.FALLBACK_TABLET = 'UnknownTablet';\n impl.FALLBACK_MOBILE = 'UnknownMobile';\n\n isArray = ('isArray' in Array) ?\n Array.isArray : function (value) { return Object.prototype.toString.call(value) === '[object Array]'; };\n\n function equalIC(a, b) {\n return a != null && b != null && a.toLowerCase() === b.toLowerCase();\n }\n\n function containsIC(array, value) {\n var valueLC, i, len = array.length;\n if (!len || !value) {\n return false;\n }\n valueLC = value.toLowerCase();\n for (i = 0; i < len; ++i) {\n if (valueLC === array[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n }\n\n function convertPropsToRegExp(object) {\n for (var key in object) {\n if (hasOwnProp.call(object, key)) {\n object[key] = new RegExp(object[key], 'i');\n }\n }\n }\n\n function prepareUserAgent(userAgent) {\n return (userAgent || '').substr(0, 500); // mitigate vulnerable to ReDoS\n }\n\n (function init() {\n var key, values, value, i, len, verPos, mobileDetectRules = impl.mobileDetectRules;\n for (key in mobileDetectRules.props) {\n if (hasOwnProp.call(mobileDetectRules.props, key)) {\n values = mobileDetectRules.props[key];\n if (!isArray(values)) {\n values = [values];\n }\n len = values.length;\n for (i = 0; i < len; ++i) {\n value = values[i];\n verPos = value.indexOf('[VER]');\n if (verPos >= 0) {\n value = value.substring(0, verPos) + '([\\\\w._\\\\+]+)' + value.substring(verPos + 5);\n }\n values[i] = new RegExp(value, 'i');\n }\n mobileDetectRules.props[key] = values;\n }\n }\n convertPropsToRegExp(mobileDetectRules.oss);\n convertPropsToRegExp(mobileDetectRules.phones);\n convertPropsToRegExp(mobileDetectRules.tablets);\n convertPropsToRegExp(mobileDetectRules.uas);\n convertPropsToRegExp(mobileDetectRules.utils);\n\n // copy some patterns to oss0 which are tested first (see issue#15)\n mobileDetectRules.oss0 = {\n WindowsPhoneOS: mobileDetectRules.oss.WindowsPhoneOS,\n WindowsMobileOS: mobileDetectRules.oss.WindowsMobileOS\n };\n }());\n\n /**\n * Test userAgent string against a set of rules and find the first matched key.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {String|null} the matched key if found, otherwise null\n * @private\n */\n impl.findMatch = function(rules, userAgent) {\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n return key;\n }\n }\n }\n return null;\n };\n\n /**\n * Test userAgent string against a set of rules and return an array of matched keys.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {Array} an array of matched keys, may be empty when there is no match, but not null\n * @private\n */\n impl.findMatches = function(rules, userAgent) {\n var result = [];\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n result.push(key);\n }\n }\n }\n return result;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {String} version or null if version not found\n * @private\n */\n impl.getVersionStr = function (propertyName, userAgent) {\n var props = impl.mobileDetectRules.props, patterns, i, len, match;\n if (hasOwnProp.call(props, propertyName)) {\n patterns = props[propertyName];\n len = patterns.length;\n for (i = 0; i < len; ++i) {\n match = patterns[i].exec(userAgent);\n if (match !== null) {\n return match[1];\n }\n }\n }\n return null;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {Number} version or NaN if version not found\n * @private\n */\n impl.getVersion = function (propertyName, userAgent) {\n var version = impl.getVersionStr(propertyName, userAgent);\n return version ? impl.prepareVersionNo(version) : NaN;\n };\n\n /**\n * Prepare the version number.\n *\n * @param {String} version\n * @return {Number} the version number as a floating number\n * @private\n */\n impl.prepareVersionNo = function (version) {\n var numbers;\n\n numbers = version.split(/[a-z._ \\/\\-]/i);\n if (numbers.length === 1) {\n version = numbers[0];\n }\n if (numbers.length > 1) {\n version = numbers[0] + '.';\n numbers.shift();\n version += numbers.join('');\n }\n return Number(version);\n };\n\n impl.isMobileFallback = function (userAgent) {\n return impl.detectMobileBrowsers.fullPattern.test(userAgent) ||\n impl.detectMobileBrowsers.shortPattern.test(userAgent.substr(0,4));\n };\n\n impl.isTabletFallback = function (userAgent) {\n return impl.detectMobileBrowsers.tabletPattern.test(userAgent);\n };\n\n impl.prepareDetectionCache = function (cache, userAgent, maxPhoneWidth) {\n if (cache.mobile !== undefined) {\n return;\n }\n var phone, tablet, phoneSized;\n\n // first check for stronger tablet rules, then phone (see issue#5)\n tablet = impl.findMatch(impl.mobileDetectRules.tablets, userAgent);\n if (tablet) {\n cache.mobile = cache.tablet = tablet;\n cache.phone = null;\n return; // unambiguously identified as tablet\n }\n\n phone = impl.findMatch(impl.mobileDetectRules.phones, userAgent);\n if (phone) {\n cache.mobile = cache.phone = phone;\n cache.tablet = null;\n return; // unambiguously identified as phone\n }\n\n // our rules haven't found a match -> try more general fallback rules\n if (impl.isMobileFallback(userAgent)) {\n phoneSized = MobileDetect.isPhoneSized(maxPhoneWidth);\n if (phoneSized === undefined) {\n cache.mobile = impl.FALLBACK_MOBILE;\n cache.tablet = cache.phone = null;\n } else if (phoneSized) {\n cache.mobile = cache.phone = impl.FALLBACK_PHONE;\n cache.tablet = null;\n } else {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n }\n } else if (impl.isTabletFallback(userAgent)) {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n } else {\n // not mobile at all!\n cache.mobile = cache.tablet = cache.phone = null;\n }\n };\n\n // t is a reference to a MobileDetect instance\n impl.mobileGrade = function (t) {\n // impl note:\n // To keep in sync w/ Mobile_Detect.php easily, the following code is tightly aligned to the PHP version.\n // When changes are made in Mobile_Detect.php, copy this method and replace:\n // $this-> / t.\n // self::MOBILE_GRADE_(.) / '$1'\n // , self::VERSION_TYPE_FLOAT / (nothing)\n // isIOS() / os('iOS')\n // [reg] / (nothing) <-- jsdelivr complaining about unescaped unicode character U+00AE\n var $isMobile = t.mobile() !== null;\n\n if (\n // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)\n t.os('iOS') && t.version('iPad')>=4.3 ||\n t.os('iOS') && t.version('iPhone')>=3.1 ||\n t.os('iOS') && t.version('iPod')>=3.1 ||\n\n // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)\n // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM\n // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices\n // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7\n ( t.version('Android')>2.1 && t.is('Webkit') ) ||\n\n // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800\n t.version('Windows Phone OS')>=7.0 ||\n\n // Blackberry 7 - Tested on BlackBerry Torch 9810\n // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670\n t.is('BlackBerry') && t.version('BlackBerry')>=6.0 ||\n // Blackberry Playbook (1.0-2.0) - Tested on PlayBook\n t.match('Playbook.*Tablet') ||\n\n // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)\n ( t.version('webOS')>=1.4 && t.match('Palm|Pre|Pixi') ) ||\n // Palm WebOS 3.0 - Tested on HP TouchPad\n t.match('hp.*TouchPad') ||\n\n // Firefox Mobile (12 Beta) - Tested on Android 2.3 device\n ( t.is('Firefox') && t.version('Firefox')>=12 ) ||\n\n // Chrome for Android - Tested on Android 4.0, 4.1 device\n ( t.is('Chrome') && t.is('AndroidOS') && t.version('Android')>=4.0 ) ||\n\n // Skyfire 4.1 - Tested on Android 2.3 device\n ( t.is('Skyfire') && t.version('Skyfire')>=4.1 && t.is('AndroidOS') && t.version('Android')>=2.3 ) ||\n\n // Opera Mobile 11.5-12: Tested on Android 2.3\n ( t.is('Opera') && t.version('Opera Mobi')>11 && t.is('AndroidOS') ) ||\n\n // Meego 1.2 - Tested on Nokia 950 and N9\n t.is('MeeGoOS') ||\n\n // Tizen (pre-release) - Tested on early hardware\n t.is('Tizen') ||\n\n // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser\n // @todo: more tests here!\n t.is('Dolfin') && t.version('Bada')>=2.0 ||\n\n // UC Browser - Tested on Android 2.3 device\n ( (t.is('UC Browser') || t.is('Dolfin')) && t.version('Android')>=2.3 ) ||\n\n // Kindle 3 and Fire - Tested on the built-in WebKit browser for each\n ( t.match('Kindle Fire') ||\n t.is('Kindle') && t.version('Kindle')>=3.0 ) ||\n\n // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet\n t.is('AndroidOS') && t.is('NookTablet') ||\n\n // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7\n t.version('Chrome')>=11 && !$isMobile ||\n\n // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7\n t.version('Safari')>=5.0 && !$isMobile ||\n\n // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7\n t.version('Firefox')>=4.0 && !$isMobile ||\n\n // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7\n t.version('MSIE')>=7.0 && !$isMobile ||\n\n // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7\n // @reference: http://my.opera.com/community/openweb/idopera/\n t.version('Opera')>=10 && !$isMobile\n\n ){\n return 'A';\n }\n\n if (\n t.os('iOS') && t.version('iPad')<4.3 ||\n t.os('iOS') && t.version('iPhone')<3.1 ||\n t.os('iOS') && t.version('iPod')<3.1 ||\n\n // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770\n t.is('Blackberry') && t.version('BlackBerry')>=5 && t.version('BlackBerry')<6 ||\n\n //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3\n ( t.version('Opera Mini')>=5.0 && t.version('Opera Mini')<=6.5 &&\n (t.version('Android')>=2.3 || t.is('iOS')) ) ||\n\n // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)\n t.match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||\n\n // @todo: report this (tested on Nokia N71)\n t.version('Opera Mobi')>=11 && t.is('SymbianOS')\n ){\n return 'B';\n }\n\n if (\n // Blackberry 4.x - Tested on the Curve 8330\n t.version('BlackBerry')<5.0 ||\n // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)\n t.match('MSIEMobile|Windows CE.*Mobile') || t.version('Windows Mobile')<=5.2\n\n ){\n return 'C';\n }\n\n //All older smartphone platforms and featurephones - Any device that doesn't support media queries\n //will receive the basic, C grade experience.\n return 'C';\n };\n\n impl.detectOS = function (ua) {\n return impl.findMatch(impl.mobileDetectRules.oss0, ua) ||\n impl.findMatch(impl.mobileDetectRules.oss, ua);\n };\n\n impl.getDeviceSmallerSide = function () {\n return window.screen.width < window.screen.height ?\n window.screen.width :\n window.screen.height;\n };\n\n /**\n * Constructor for MobileDetect object.\n *
\n * Such an object will keep a reference to the given user-agent string and cache most of the detect queries.
\n *

\n *\n * @example
\n     *     var md = new MobileDetect(window.navigator.userAgent);\n     *     if (md.mobile()) {\n     *         location.href = (md.mobileGrade() === 'A') ? '/mobile/' : '/lynx/';\n     *     }\n     * 
\n *\n * @param {string} userAgent typically taken from window.navigator.userAgent or http_header['User-Agent']\n * @param {number} [maxPhoneWidth=600] only for browsers specify a value for the maximum\n * width of smallest device side (in logical \"CSS\" pixels) until a device detected as mobile will be handled\n * as phone.\n * This is only used in cases where the device cannot be classified as phone or tablet.
\n * See Declaring Tablet Layouts\n * for Android.
\n * If you provide a value < 0, then this \"fuzzy\" check is disabled.\n * @constructor\n * @global\n */\n function MobileDetect(userAgent, maxPhoneWidth) {\n this.ua = prepareUserAgent(userAgent);\n this._cache = {};\n //600dp is typical 7\" tablet minimum width\n this.maxPhoneWidth = maxPhoneWidth || 600;\n }\n\n MobileDetect.prototype = {\n constructor: MobileDetect,\n\n /**\n * Returns the detected phone or tablet type or null if it is not a mobile device.\n *
\n * For a list of possible return values see {@link MobileDetect#phone} and {@link MobileDetect#tablet}.
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone, UnknownTablet or\n * UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get UnknownMobile here.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key for the phone family or tablet family, e.g. \"Nexus\".\n * @function MobileDetect#mobile\n */\n mobile: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.mobile;\n },\n\n /**\n * Returns the detected phone type/family string or null.\n *
\n * The returned tablet (family or producer) is one of following keys:
\n *
iPhone, BlackBerry, Pixel, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus,\n * Xiaomi, NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile,\n * SimValley, Wolfgang, Alcatel, Nintendo, Amoi, INQ, OnePlus, GenericPhone
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone or UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the phone family or producer, e.g. \"iPhone\"\n * @function MobileDetect#phone\n */\n phone: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.phone;\n },\n\n /**\n * Returns the detected tablet type/family string or null.\n *
\n * The returned tablet (family or producer) is one of following keys:
\n *
iPad, NexusTablet, GoogleTablet, SamsungTablet, Kindle, SurfaceTablet,\n * HPTablet, AsusTablet, BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet,\n * AcerTablet, ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet,\n * LenovoTablet, DellTablet, YarvikTablet, MedionTablet, ArnovaTablet,\n * IntensoTablet, IRUTablet, MegafonTablet, EbodaTablet, AllViewTablet,\n * ArchosTablet, AinolTablet, NokiaLumiaTablet, SonyTablet, PhilipsTablet,\n * CubeTablet, CobyTablet, MIDTablet, MSITablet, SMiTTablet, RockChipTablet,\n * FlyTablet, bqTablet, HuaweiTablet, NecTablet, PantechTablet, BronchoTablet,\n * VersusTablet, ZyncTablet, PositivoTablet, NabiTablet, KoboTablet, DanewTablet,\n * TexetTablet, PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet,\n * DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet,\n * PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet,\n * OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet,\n * MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet,\n * ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet,\n * iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet,\n * TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet,\n * VerizonTablet, OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet,\n * OndaTablet, JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet,\n * LavaTablet, AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MediacomTablet,\n * MiTablet, NibiruTablet, NexoTablet, LeaderTablet, UbislateTablet,\n * PocketBookTablet, KocasoTablet, HisenseTablet, Hudl, TelstraTablet,\n * GenericTablet
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownTablet or UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the tablet family or producer, e.g. \"SamsungTablet\"\n * @function MobileDetect#tablet\n */\n tablet: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.tablet;\n },\n\n /**\n * Returns the (first) detected user-agent string or null.\n *
\n * The returned user-agent is one of following keys:
\n *
Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
\n *
\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {String} the key for the detected user-agent or null\n * @function MobileDetect#userAgent\n */\n userAgent: function () {\n if (this._cache.userAgent === undefined) {\n this._cache.userAgent = impl.findMatch(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgent;\n },\n\n /**\n * Returns all detected user-agent strings.\n *
\n * The array is empty or contains one or more of following keys:
\n *
Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
\n *
\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {Array} the array of detected user-agent keys or []\n * @function MobileDetect#userAgents\n */\n userAgents: function () {\n if (this._cache.userAgents === undefined) {\n this._cache.userAgents = impl.findMatches(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgents;\n },\n\n /**\n * Returns the detected operating system string or null.\n *
\n * The operating system is one of following keys:
\n *
AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS,\n * iOS, iPadOS, SailfishOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS
\n *\n * @returns {String} the key for the detected operating system.\n * @function MobileDetect#os\n */\n os: function () {\n if (this._cache.os === undefined) {\n this._cache.os = impl.detectOS(this.ua);\n }\n return this._cache.os;\n },\n\n /**\n * Get the version (as Number) of the given property in the User-Agent.\n *
\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} key a key defining a thing which has a version.
\n * You can use one of following keys:
\n *
Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
\n *\n * @returns {Number} the version as float or NaN if User-Agent doesn't contain this version.\n * Be careful when comparing this value with '==' operator!\n * @function MobileDetect#version\n */\n version: function (key) {\n return impl.getVersion(key, this.ua);\n },\n\n /**\n * Get the version (as String) of the given property in the User-Agent.\n *
\n *\n * @param {String} key a key defining a thing which has a version.
\n * You can use one of following keys:
\n *
Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
\n *\n * @returns {String} the \"raw\" version as String or null if User-Agent doesn't contain this version.\n *\n * @function MobileDetect#versionStr\n */\n versionStr: function (key) {\n return impl.getVersionStr(key, this.ua);\n },\n\n /**\n * Global test key against userAgent, os, phone, tablet and some other properties of userAgent string.\n *\n * @param {String} key the key (case-insensitive) of a userAgent, an operating system, phone or\n * tablet family.
\n * For a complete list of possible values, see {@link MobileDetect#userAgent},\n * {@link MobileDetect#os}, {@link MobileDetect#phone}, {@link MobileDetect#tablet}.
\n * Additionally you have following keys:
\n *
Bot, MobileBot, DesktopMode, TV, WebKit, Console, Watch
\n *\n * @returns {boolean} true when the given key is one of the defined keys of userAgent, os, phone,\n * tablet or one of the listed additional keys, otherwise false\n * @function MobileDetect#is\n */\n is: function (key) {\n return containsIC(this.userAgents(), key) ||\n equalIC(key, this.os()) ||\n equalIC(key, this.phone()) ||\n equalIC(key, this.tablet()) ||\n containsIC(impl.findMatches(impl.mobileDetectRules.utils, this.ua), key);\n },\n\n /**\n * Do a quick test against navigator::userAgent.\n *\n * @param {String|RegExp} pattern the pattern, either as String or RegExp\n * (a string will be converted to a case-insensitive RegExp).\n * @returns {boolean} true when the pattern matches, otherwise false\n * @function MobileDetect#match\n */\n match: function (pattern) {\n if (!(pattern instanceof RegExp)) {\n pattern = new RegExp(pattern, 'i');\n }\n return pattern.test(this.ua);\n },\n\n /**\n * Checks whether the mobile device can be considered as phone regarding screen.width.\n *
\n * Obviously this method makes sense in browser environments only (not for Node.js)!\n * @param {number} [maxPhoneWidth] the maximum logical pixels (aka. CSS-pixels) to be considered as phone.
\n * The argument is optional and if not present or falsy, the value of the constructor is taken.\n * @returns {boolean|undefined} undefined if screen size wasn't detectable, else true\n * when screen.width is less or equal to maxPhoneWidth, otherwise false.
\n * Will always return undefined server-side.\n */\n isPhoneSized: function (maxPhoneWidth) {\n return MobileDetect.isPhoneSized(maxPhoneWidth || this.maxPhoneWidth);\n },\n\n /**\n * Returns the mobile grade ('A', 'B', 'C').\n *\n * @returns {String} one of the mobile grades ('A', 'B', 'C').\n * @function MobileDetect#mobileGrade\n */\n mobileGrade: function () {\n if (this._cache.grade === undefined) {\n this._cache.grade = impl.mobileGrade(this);\n }\n return this._cache.grade;\n }\n };\n\n // environment-dependent\n if (typeof window !== 'undefined' && window.screen) {\n MobileDetect.isPhoneSized = function (maxPhoneWidth) {\n return maxPhoneWidth < 0 ? undefined : impl.getDeviceSmallerSide() <= maxPhoneWidth;\n };\n } else {\n MobileDetect.isPhoneSized = function () {};\n }\n\n // should not be replaced by a completely new object - just overwrite existing methods\n MobileDetect._impl = impl;\n \n MobileDetect.version = '1.4.5 2021-03-13';\n\n return MobileDetect;\n}); // end of call of define()\n})((function (undefined) {\n if (typeof module !== 'undefined' && module.exports) {\n return function (factory) { module.exports = factory(); };\n } else if (typeof define === 'function' && define.amd) {\n return define;\n } else if (typeof window !== 'undefined') {\n return function (factory) { window.MobileDetect = factory(); };\n } else {\n // please file a bug if you get this error!\n throw new Error('unknown environment');\n }\n})());","\"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(\"./wasm/msgs\");\nvar msgs_11 = require(\"./ibc-transfer/msgs\");\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) {\n switch (data.type) {\n // bank\n case 'bank/MsgSend':\n return msgs_1.MsgSend.fromAmino(data);\n case 'bank/MsgMultiSend':\n return msgs_1.MsgMultiSend.fromAmino(data);\n // distribution\n case 'distribution/MsgModifyWithdrawAddress':\n return msgs_2.MsgSetWithdrawAddress.fromAmino(data);\n case 'distribution/MsgWithdrawDelegationReward':\n return msgs_2.MsgWithdrawDelegatorReward.fromAmino(data);\n case 'distribution/MsgWithdrawValidatorCommission':\n return msgs_2.MsgWithdrawValidatorCommission.fromAmino(data);\n case 'distribution/MsgFundCommunityPool':\n return msgs_2.MsgFundCommunityPool.fromAmino(data);\n // feegrant\n case 'feegrant/MsgGrantAllowance':\n return msgs_3.MsgGrantAllowance.fromAmino(data);\n case 'feegrant/MsgRevokeAllowance':\n return msgs_3.MsgRevokeAllowance.fromAmino(data);\n // gov\n case 'gov/MsgDeposit':\n return msgs_4.MsgDeposit.fromAmino(data);\n case 'gov/MsgSubmitProposal':\n return msgs_4.MsgSubmitProposal.fromAmino(data);\n case 'gov/MsgVote':\n return msgs_4.MsgVote.fromAmino(data);\n case 'gov/MsgVoteWeighted':\n return msgs_4.MsgVoteWeighted.fromAmino(data);\n // market\n case 'market/MsgSwap':\n return msgs_5.MsgSwap.fromAmino(data);\n case 'market/MsgSwapSend':\n return msgs_5.MsgSwapSend.fromAmino(data);\n // msgauth\n case 'msgauth/MsgGrantAuthorization':\n return msgs_6.MsgGrantAuthorization.fromAmino(data);\n case 'msgauth/MsgRevokeAuthorization':\n return msgs_6.MsgRevokeAuthorization.fromAmino(data);\n case 'msgauth/MsgExecAuthorized':\n return msgs_6.MsgExecAuthorized.fromAmino(data);\n // oracle\n case 'oracle/MsgDelegateFeedConsent':\n return msgs_7.MsgDelegateFeedConsent.fromAmino(data);\n case 'oracle/MsgAggregateExchangeRatePrevote':\n return msgs_7.MsgAggregateExchangeRatePrevote.fromAmino(data);\n case 'oracle/MsgAggregateExchangeRateVote':\n return msgs_7.MsgAggregateExchangeRateVote.fromAmino(data);\n // slashing\n case 'slashing/MsgUnjail':\n return msgs_8.MsgUnjail.fromAmino(data);\n // staking\n case 'staking/MsgDelegate':\n return msgs_9.MsgDelegate.fromAmino(data);\n case 'staking/MsgUndelegate':\n return msgs_9.MsgUndelegate.fromAmino(data);\n case 'staking/MsgBeginRedelegate':\n return msgs_9.MsgBeginRedelegate.fromAmino(data);\n case 'staking/MsgCreateValidator':\n return msgs_9.MsgCreateValidator.fromAmino(data);\n case 'staking/MsgEditValidator':\n return msgs_9.MsgEditValidator.fromAmino(data);\n // wasm\n case 'wasm/MsgStoreCode':\n return msgs_10.MsgStoreCode.fromAmino(data);\n case 'wasm/MsgMigrateCode':\n return msgs_10.MsgMigrateCode.fromAmino(data);\n case 'wasm/MsgInstantiateContract':\n return msgs_10.MsgInstantiateContract.fromAmino(data);\n case 'wasm/MsgExecuteContract':\n return msgs_10.MsgExecuteContract.fromAmino(data);\n case 'wasm/MsgMigrateContract':\n return msgs_10.MsgMigrateContract.fromAmino(data);\n case 'wasm/MsgUpdateContractAdmin':\n return msgs_10.MsgUpdateContractAdmin.fromAmino(data);\n case 'wasm/MsgClearContractAdmin':\n return msgs_10.MsgClearContractAdmin.fromAmino(data);\n // ibc-transfer\n case 'cosmos-sdk/MsgTransfer':\n return msgs_11.MsgTransfer.fromAmino(data);\n // crisis\n case 'crisis/MsgVerifyInvariant':\n return crisis_1.MsgVerifyInvariant.fromAmino(data);\n }\n }\n Msg.fromAmino = fromAmino;\n function fromData(data) {\n switch (data['@type']) {\n // bank\n case '/cosmos.bank.v1beta1.MsgSend':\n return msgs_1.MsgSend.fromData(data);\n case '/cosmos.bank.v1beta1.MsgMultiSend':\n return msgs_1.MsgMultiSend.fromData(data);\n // distribution\n case '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress':\n return msgs_2.MsgSetWithdrawAddress.fromData(data);\n case '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward':\n return msgs_2.MsgWithdrawDelegatorReward.fromData(data);\n case '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission':\n return msgs_2.MsgWithdrawValidatorCommission.fromData(data);\n case '/cosmos.distribution.v1beta1.MsgFundCommunityPool':\n return msgs_2.MsgFundCommunityPool.fromData(data);\n // feegrant\n case '/cosmos.feegrant.v1beta1.MsgGrantAllowance':\n return msgs_3.MsgGrantAllowance.fromData(data);\n case '/cosmos.feegrant.v1beta1.MsgRevokeAllowance':\n return msgs_3.MsgRevokeAllowance.fromData(data);\n // gov\n case '/cosmos.gov.v1beta1.MsgDeposit':\n return msgs_4.MsgDeposit.fromData(data);\n case '/cosmos.gov.v1beta1.MsgSubmitProposal':\n return msgs_4.MsgSubmitProposal.fromData(data);\n case '/cosmos.gov.v1beta1.MsgVote':\n return msgs_4.MsgVote.fromData(data);\n case '/cosmos.gov.v1beta1.MsgVoteWeighted':\n return msgs_4.MsgVoteWeighted.fromData(data);\n // market\n case '/terra.market.v1beta1.MsgSwap':\n return msgs_5.MsgSwap.fromData(data);\n case '/terra.market.v1beta1.MsgSwapSend':\n return msgs_5.MsgSwapSend.fromData(data);\n // authz\n case '/cosmos.authz.v1beta1.MsgGrant':\n return msgs_6.MsgGrantAuthorization.fromData(data);\n case '/cosmos.authz.v1beta1.MsgRevoke':\n return msgs_6.MsgRevokeAuthorization.fromData(data);\n case '/cosmos.authz.v1beta1.MsgExec':\n return msgs_6.MsgExecAuthorized.fromData(data);\n // oracle\n case '/terra.oracle.v1beta1.MsgDelegateFeedConsent':\n return msgs_7.MsgDelegateFeedConsent.fromData(data);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote':\n return msgs_7.MsgAggregateExchangeRatePrevote.fromData(data);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote':\n return msgs_7.MsgAggregateExchangeRateVote.fromData(data);\n // slashing\n case '/cosmos.slashing.v1beta1.MsgUnjail':\n return msgs_8.MsgUnjail.fromData(data);\n // staking\n case '/cosmos.staking.v1beta1.MsgDelegate':\n return msgs_9.MsgDelegate.fromData(data);\n case '/cosmos.staking.v1beta1.MsgUndelegate':\n return msgs_9.MsgUndelegate.fromData(data);\n case '/cosmos.staking.v1beta1.MsgBeginRedelegate':\n return msgs_9.MsgBeginRedelegate.fromData(data);\n case '/cosmos.staking.v1beta1.MsgCreateValidator':\n return msgs_9.MsgCreateValidator.fromData(data);\n case '/cosmos.staking.v1beta1.MsgEditValidator':\n return msgs_9.MsgEditValidator.fromData(data);\n // wasm\n case '/terra.wasm.v1beta1.MsgStoreCode':\n return msgs_10.MsgStoreCode.fromData(data);\n case '/terra.wasm.v1beta1.MsgMigrateCode':\n return msgs_10.MsgMigrateCode.fromData(data);\n case '/terra.wasm.v1beta1.MsgInstantiateContract':\n return msgs_10.MsgInstantiateContract.fromData(data);\n case '/terra.wasm.v1beta1.MsgExecuteContract':\n return msgs_10.MsgExecuteContract.fromData(data);\n case '/terra.wasm.v1beta1.MsgMigrateContract':\n return msgs_10.MsgMigrateContract.fromData(data);\n case '/terra.wasm.v1beta1.MsgUpdateContractAdmin':\n return msgs_10.MsgUpdateContractAdmin.fromData(data);\n case '/terra.wasm.v1beta1.MsgClearContractAdmin':\n return msgs_10.MsgClearContractAdmin.fromData(data);\n // ibc-transfer\n case '/ibc.applications.transfer.v1.MsgTransfer':\n return msgs_11.MsgTransfer.fromData(data);\n // ibc-client\n case '/ibc.core.client.v1.MsgCreateClient':\n return client_1.MsgCreateClient.fromData(data);\n case '/ibc.core.client.v1.MsgUpdateClient':\n return client_1.MsgUpdateClient.fromData(data);\n case '/ibc.core.client.v1.MsgUpgradeClient':\n return client_1.MsgUpgradeClient.fromData(data);\n case '/ibc.core.client.v1.MsgSubmitMisbehaviour':\n return client_1.MsgSubmitMisbehaviour.fromData(data);\n // ibc-connection\n case '/ibc.core.connection.v1.MsgConnectionOpenInit':\n return connection_1.MsgConnectionOpenInit.fromData(data);\n case '/ibc.core.connection.v1.MsgConnectionOpenTry':\n return connection_1.MsgConnectionOpenTry.fromData(data);\n case '/ibc.core.connection.v1.MsgConnectionOpenConfirm':\n return connection_1.MsgConnectionOpenConfirm.fromData(data);\n case '/ibc.core.connection.v1.MsgConnectionOpenAck':\n return connection_1.MsgConnectionOpenAck.fromData(data);\n // ibc-channel\n case '/ibc.core.channel.v1.MsgChannelOpenInit':\n return channel_1.MsgChannelOpenInit.fromData(data);\n case '/ibc.core.channel.v1.MsgChannelOpenTry':\n return channel_1.MsgChannelOpenTry.fromData(data);\n case '/ibc.core.channel.v1.MsgChannelOpenConfirm':\n return channel_1.MsgChannelOpenConfirm.fromData(data);\n case '/ibc.core.channel.v1.MsgChannelOpenAck':\n return channel_1.MsgChannelOpenAck.fromData(data);\n case '/ibc.core.channel.v1.MsgChannelCloseInit':\n return channel_1.MsgChannelCloseInit.fromData(data);\n case '/ibc.core.channel.v1.MsgChannelCloseConfirm':\n return channel_1.MsgChannelCloseConfirm.fromData(data);\n case '/ibc.core.channel.v1.MsgRecvPacket':\n return channel_1.MsgRecvPacket.fromData(data);\n case '/ibc.core.channel.v1.MsgAcknowledgement':\n return channel_1.MsgAcknowledgement.fromData(data);\n case '/ibc.core.channel.v1.MsgTimeout':\n return channel_1.MsgTimeout.fromData(data);\n case '/ibc.core.channel.v1.MsgTimeoutOnClose':\n return channel_1.MsgTimeoutOnClose.fromData(data);\n // crisis\n case '/cosmos.crisis.v1beta1.MsgVerifyInvariant':\n return crisis_1.MsgVerifyInvariant.fromData(data);\n }\n }\n Msg.fromData = fromData;\n function fromProto(proto) {\n switch (proto.typeUrl) {\n // bank\n case '/cosmos.bank.v1beta1.MsgSend':\n return msgs_1.MsgSend.unpackAny(proto);\n case '/cosmos.bank.v1beta1.MsgMultiSend':\n return msgs_1.MsgMultiSend.unpackAny(proto);\n // distribution\n case '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress':\n return msgs_2.MsgSetWithdrawAddress.unpackAny(proto);\n case '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward':\n return msgs_2.MsgWithdrawDelegatorReward.unpackAny(proto);\n case '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission':\n return msgs_2.MsgWithdrawValidatorCommission.unpackAny(proto);\n case '/cosmos.distribution.v1beta1.MsgFundCommunityPool':\n return msgs_2.MsgFundCommunityPool.unpackAny(proto);\n // feegrant\n case '/cosmos.feegrant.v1beta1.MsgGrantAllowance':\n return msgs_3.MsgGrantAllowance.unpackAny(proto);\n case '/cosmos.feegrant.v1beta1.MsgRevokeAllowance':\n return msgs_3.MsgRevokeAllowance.unpackAny(proto);\n // gov\n case '/cosmos.gov.v1beta1.MsgDeposit':\n return msgs_4.MsgDeposit.unpackAny(proto);\n case '/cosmos.gov.v1beta1.MsgSubmitProposal':\n return msgs_4.MsgSubmitProposal.unpackAny(proto);\n case '/cosmos.gov.v1beta1.MsgVote':\n return msgs_4.MsgVote.unpackAny(proto);\n // market\n case '/terra.market.v1beta1.MsgSwap':\n return msgs_5.MsgSwap.unpackAny(proto);\n case '/terra.market.v1beta1.MsgSwapSend':\n return msgs_5.MsgSwapSend.unpackAny(proto);\n // authz\n case '/cosmos.authz.v1beta1.MsgGrant':\n return msgs_6.MsgGrantAuthorization.unpackAny(proto);\n case '/cosmos.authz.v1beta1.MsgRevoke':\n return msgs_6.MsgRevokeAuthorization.unpackAny(proto);\n case '/cosmos.authz.v1beta1.MsgExec':\n return msgs_6.MsgExecAuthorized.unpackAny(proto);\n // oracle\n case '/terra.oracle.v1beta1.MsgDelegateFeedConsent':\n return msgs_7.MsgDelegateFeedConsent.unpackAny(proto);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote':\n return msgs_7.MsgAggregateExchangeRatePrevote.unpackAny(proto);\n case '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote':\n return msgs_7.MsgAggregateExchangeRateVote.unpackAny(proto);\n // slashing\n case '/cosmos.slashing.v1beta1.MsgUnjail':\n return msgs_8.MsgUnjail.unpackAny(proto);\n // staking\n case '/cosmos.staking.v1beta1.MsgDelegate':\n return msgs_9.MsgDelegate.unpackAny(proto);\n case '/cosmos.staking.v1beta1.MsgUndelegate':\n return msgs_9.MsgUndelegate.unpackAny(proto);\n case '/cosmos.staking.v1beta1.MsgBeginRedelegate':\n return msgs_9.MsgBeginRedelegate.unpackAny(proto);\n case '/cosmos.staking.v1beta1.MsgCreateValidator':\n return msgs_9.MsgCreateValidator.unpackAny(proto);\n case '/cosmos.staking.v1beta1.MsgEditValidator':\n return msgs_9.MsgEditValidator.unpackAny(proto);\n // wasm\n case '/terra.wasm.v1beta1.MsgStoreCode':\n return msgs_10.MsgStoreCode.unpackAny(proto);\n case '/terra.wasm.v1beta1.MsgMigrateCode':\n return msgs_10.MsgMigrateCode.unpackAny(proto);\n case '/terra.wasm.v1beta1.MsgInstantiateContract':\n return msgs_10.MsgInstantiateContract.unpackAny(proto);\n case '/terra.wasm.v1beta1.MsgExecuteContract':\n return msgs_10.MsgExecuteContract.unpackAny(proto);\n case '/terra.wasm.v1beta1.MsgMigrateContract':\n return msgs_10.MsgMigrateContract.unpackAny(proto);\n case '/terra.wasm.v1beta1.MsgUpdateContractAdmin':\n return msgs_10.MsgUpdateContractAdmin.unpackAny(proto);\n case '/terra.wasm.v1beta1.MsgClearContractAdmin':\n return msgs_10.MsgClearContractAdmin.unpackAny(proto);\n // ibc-transfer\n case '/ibc.applications.transfer.v1.MsgTransfer':\n return msgs_11.MsgTransfer.unpackAny(proto);\n // ibc-client\n case '/ibc.core.client.v1.MsgCreateClient':\n return client_1.MsgCreateClient.unpackAny(proto);\n case '/ibc.core.client.v1.MsgUpdateClient':\n return client_1.MsgUpdateClient.unpackAny(proto);\n case '/ibc.core.client.v1.MsgUpgradeClient':\n return client_1.MsgUpgradeClient.unpackAny(proto);\n case '/ibc.core.client.v1.MsgSubmitMisbehaviour':\n return client_1.MsgSubmitMisbehaviour.unpackAny(proto);\n // ibc-connection\n case '/ibc.core.connection.v1.MsgConnectionOpenInit':\n return connection_1.MsgConnectionOpenInit.unpackAny(proto);\n case '/ibc.core.connection.v1.MsgConnectionOpenTry':\n return connection_1.MsgConnectionOpenTry.unpackAny(proto);\n case '/ibc.core.connection.v1.MsgConnectionOpenConfirm':\n return connection_1.MsgConnectionOpenConfirm.unpackAny(proto);\n case '/ibc.core.connection.v1.MsgConnectionOpenAck':\n return connection_1.MsgConnectionOpenAck.unpackAny(proto);\n // ibc-channel\n case '/ibc.core.channel.v1.MsgChannelOpenInit':\n return channel_1.MsgChannelOpenInit.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgChannelOpenTry':\n return channel_1.MsgChannelOpenTry.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgChannelOpenConfirm':\n return channel_1.MsgChannelOpenConfirm.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgChannelOpenAck':\n return channel_1.MsgChannelOpenAck.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgChannelCloseInit':\n return channel_1.MsgChannelCloseInit.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgChannelCloseConfirm':\n return channel_1.MsgChannelCloseConfirm.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgRecvPacket':\n return channel_1.MsgRecvPacket.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgAcknowledgement':\n return channel_1.MsgAcknowledgement.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgTimeout':\n return channel_1.MsgTimeout.unpackAny(proto);\n case '/ibc.core.channel.v1.MsgTimeoutOnClose':\n return channel_1.MsgTimeoutOnClose.unpackAny(proto);\n // crisis\n case '/cosmos.crisis.v1beta1.MsgVerifyInvariant':\n return crisis_1.MsgVerifyInvariant.unpackAny(proto);\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","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"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) {\n switch (data.type) {\n case 'feegrant/BasicAllowance':\n return BasicAllowance_1.BasicAllowance.fromAmino(data);\n case 'feegrant/PeriodicAllowance':\n return PeriodicAllowance_1.PeriodicAllowance.fromAmino(data);\n case 'feegrant/AllowedMsgAllowance':\n return AllowedMsgAllowance_1.AllowedMsgAllowance.fromAmino(data);\n }\n }\n Allowance.fromAmino = fromAmino;\n function fromData(data) {\n switch (data['@type']) {\n case '/cosmos.feegrant.v1beta1.PeriodicAllowance':\n return PeriodicAllowance_1.PeriodicAllowance.fromData(data);\n case '/cosmos.feegrant.v1beta1.BasicAllowance':\n return BasicAllowance_1.BasicAllowance.fromData(data);\n case '/cosmos.feegrant.v1beta1.AllowedMsgAllowance':\n return AllowedMsgAllowance_1.AllowedMsgAllowance.fromData(data);\n }\n }\n Allowance.fromData = fromData;\n function fromProto(proto) {\n switch (proto.typeUrl) {\n case '/cosmos.feegrant.v1beta1.PeriodicAllowance':\n return PeriodicAllowance_1.PeriodicAllowance.unpackAny(proto);\n case '/cosmos.feegrant.v1beta1.BasicAllowance':\n return BasicAllowance_1.BasicAllowance.unpackAny(proto);\n case '/cosmos.feegrant.v1beta1.AllowedMsgAllowance':\n return AllowedMsgAllowance_1.AllowedMsgAllowance.unpackAny(proto);\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 __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 __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) {\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), 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 () {\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: 'feegrant/PeriodicAllowance',\n value: {\n basic: basic.toAmino(),\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 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 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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.PeriodicAllowance',\n value: feegrant_1.PeriodicAllowance.encode(this.toProto()).finish(),\n });\n };\n PeriodicAllowance.unpackAny = function (msgAny) {\n return PeriodicAllowance.fromProto(feegrant_1.PeriodicAllowance.decode(msgAny.value));\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 });\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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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};\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.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 minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst authz_1 = require(\"../../../cosmos/authz/v1beta1/authz\");\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) {\n const data = exports.MsgGrant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Grant\", data);\n return promise.then((data) => exports.MsgGrantResponse.decode(new minimal_1.default.Reader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new minimal_1.default.Reader(data)));\n }\n Revoke(request) {\n const data = exports.MsgRevoke.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Revoke\", data);\n return promise.then((data) => exports.MsgRevokeResponse.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\";\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';\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\";\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 __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\";\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\";\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\");\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 coins account's balance\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 () {\n var _a = this, address = _a.address, public_key = _a.public_key, account_number = _a.account_number, sequence = _a.sequence;\n return {\n type: 'core/Account',\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 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 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 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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.auth.v1beta1.BaseAccount',\n value: auth_1.BaseAccount.encode(this.toProto()).finish(),\n });\n };\n BaseAccount.unpackAny = function (pubkeyAny) {\n return BaseAccount.fromProto(auth_1.BaseAccount.decode(pubkeyAny.value));\n };\n return BaseAccount;\n}(json_1.JSONSerializable));\nexports.BaseAccount = BaseAccount;\n//# sourceMappingURL=BaseAccount.js.map","'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","\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","// 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;","'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","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","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","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');\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\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","// 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// 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\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}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // 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 var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // 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 var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // 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 var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // 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 this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // 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 this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // 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 this.sync = true;\n\n // 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 this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\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 (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // 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\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 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\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.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\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\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) 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\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !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 TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\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 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 () {\n return this._writableState.highWaterMark;\n }\n});\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.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\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 if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\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 (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 pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', 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 stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\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\n onwriteStateUpdate(state);\n\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);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\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}\n\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.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\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\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\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\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // 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 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 Error('_write() is not implemented'));\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);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.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 if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\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 while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\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","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","var types = {\n Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },\n Boolean: function (value) { return typeof value === 'boolean' },\n Function: function (value) { return typeof value === 'function' },\n Nil: function (value) { return value === undefined || value === null },\n Number: function (value) { return typeof value === 'number' },\n Object: function (value) { return typeof value === 'object' },\n String: function (value) { return typeof value === 'string' },\n '': function () { return true }\n}\n\n// TODO: deprecate\ntypes.Null = types.Nil\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\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 if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\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 enhanceError(e, this, 'E_JSON_PARSE');\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 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","// 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;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","module.exports = require('./lib')(require('./lib/elliptic'))\n","module.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n\t\t\t\tconst newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url, hash] = splitOnFirst(input, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url.split('?')[0] || '',\n\t\t\tquery: parse(extract(input), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(input.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(input.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, input.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(input.url);\n\tif (input.fragmentIdentifier) {\n\t\thash = `#${encode(input.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return 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=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","\"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 = 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\";\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","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"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.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = 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\");\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) {\n const data = exports.MsgSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"Send\", data);\n return promise.then((data) => exports.MsgSendResponse.decode(new minimal_1.default.Reader(data)));\n }\n MultiSend(request) {\n const data = exports.MsgMultiSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"MultiSend\", data);\n return promise.then((data) => exports.MsgMultiSendResponse.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.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 __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 __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})();\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) {\n var _a = data.value, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return new AllowedMsgAllowance(allowance.type === 'feegrant/BasicAllowance'\n ? BasicAllowance_1.BasicAllowance.fromAmino(allowance)\n : PeriodicAllowance_1.PeriodicAllowance.fromAmino(allowance), allowed_messages);\n };\n AllowedMsgAllowance.prototype.toAmino = function () {\n var _a = this, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return {\n type: 'feegrant/AllowedMsgAllowance',\n value: {\n allowance: allowance.toAmino(),\n allowed_messages: allowed_messages,\n },\n };\n };\n AllowedMsgAllowance.fromData = function (proto) {\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 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) {\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)\n : PeriodicAllowance_1.PeriodicAllowance.unpackAny(allowance), proto.allowedMessages);\n };\n AllowedMsgAllowance.prototype.toProto = function () {\n var _a = this, allowance = _a.allowance, allowed_messages = _a.allowed_messages;\n return feegrant_1.AllowedMsgAllowance.fromPartial({\n allowance: allowance.packAny(),\n allowedMessages: allowed_messages,\n });\n };\n AllowedMsgAllowance.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.AllowedMsgAllowance',\n value: feegrant_1.AllowedMsgAllowance.encode(this.toProto()).finish(),\n });\n };\n AllowedMsgAllowance.unpackAny = function (msgAny) {\n return AllowedMsgAllowance.fromProto(feegrant_1.AllowedMsgAllowance.decode(msgAny.value));\n };\n return AllowedMsgAllowance;\n}(json_1.JSONSerializable));\nexports.AllowedMsgAllowance = AllowedMsgAllowance;\n//# sourceMappingURL=AllowedMsgAllowance.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.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = 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.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) {\n const data = exports.MsgGrantAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"GrantAllowance\", data);\n return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n RevokeAllowance(request) {\n const data = exports.MsgRevokeAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"RevokeAllowance\", data);\n return promise.then((data) => exports.MsgRevokeAllowanceResponse.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 __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})();\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 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) {\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), 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 () {\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(),\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) {\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), (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 () {\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(),\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) {\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), 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 () {\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(),\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) {\n switch (amino.type) {\n case 'gov/TextProposal':\n return proposals_4.TextProposal.fromAmino(amino);\n case 'distribution/CommunityPoolSpendProposal':\n return proposals_1.CommunityPoolSpendProposal.fromAmino(amino);\n case 'params/ParameterChangeProposal':\n return proposals_2.ParameterChangeProposal.fromAmino(amino);\n case 'upgrade/SoftwareUpgradeProposal':\n return proposals_5.SoftwareUpgradeProposal.fromAmino(amino);\n case 'upgrade/CancelSoftwareUpgradeProposal':\n return proposals_5.CancelSoftwareUpgradeProposal.fromAmino(amino);\n case 'ibc/ClientUpdateProposal':\n return proposals_3.ClientUpdateProposal.fromAmino(amino);\n }\n }\n Content.fromAmino = fromAmino;\n function fromData(data) {\n switch (data['@type']) {\n case '/cosmos.gov.v1beta1.TextProposal':\n return proposals_4.TextProposal.fromData(data);\n case '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal':\n return proposals_1.CommunityPoolSpendProposal.fromData(data);\n case '/cosmos.params.v1beta1.ParameterChangeProposal':\n return proposals_2.ParameterChangeProposal.fromData(data);\n case '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal':\n return proposals_5.SoftwareUpgradeProposal.fromData(data);\n case '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal':\n return proposals_5.CancelSoftwareUpgradeProposal.fromData(data);\n case '/ibc.core.client.v1.ClientUpdateProposal':\n return proposals_3.ClientUpdateProposal.fromData(data);\n }\n }\n Content.fromData = fromData;\n function fromProto(anyProto) {\n var typeUrl = anyProto.typeUrl;\n switch (typeUrl) {\n case '/cosmos.gov.v1beta1.TextProposal':\n return proposals_4.TextProposal.unpackAny(anyProto);\n case '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal':\n return proposals_1.CommunityPoolSpendProposal.unpackAny(anyProto);\n case '/cosmos.params.v1beta1.ParameterChangeProposal':\n return proposals_2.ParameterChangeProposal.unpackAny(anyProto);\n case '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal':\n return proposals_5.SoftwareUpgradeProposal.unpackAny(anyProto);\n case '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal':\n return proposals_5.CancelSoftwareUpgradeProposal.unpackAny(anyProto);\n case '/ibc.core.client.v1.ClientUpdateProposal':\n return proposals_3.ClientUpdateProposal.unpackAny(anyProto);\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 __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 __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.ParamChange = exports.ParamChanges = void 0;\nvar json_1 = require(\"../../util/json\");\nvar params_1 = require(\"@terra-money/terra.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 __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 __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})();\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 option one of 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 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 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 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 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 return new Vote(proto.proposalId.toNumber(), proto.voter, proto.options.map(function (o) { return WeightedVoteOption.fromProto(o); }));\n };\n Vote.prototype.toProto = function () {\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 var option = data.option, weight = data.weight;\n return new WeightedVoteOption(option, weight);\n };\n WeightedVoteOption.prototype.toAmino = function () {\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 var option = data.option, weight = data.weight;\n return new WeightedVoteOption(option, weight);\n };\n WeightedVoteOption.prototype.toData = function () {\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 return new WeightedVoteOption(proto.option, proto.weight);\n };\n WeightedVoteOption.prototype.toProto = function () {\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 __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 __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 __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.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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n StakeAuthorization.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n StakeAuthorization.fromData = function (data) {\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)\n : undefined, data.deny_list\n ? StakeAuthorizationValidators.fromData(data.deny_list)\n : undefined);\n };\n StakeAuthorization.prototype.toData = function () {\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(),\n deny_list: deny_list === null || deny_list === void 0 ? void 0 : deny_list.toData(),\n };\n };\n StakeAuthorization.fromProto = function (proto) {\n return new StakeAuthorization(proto.authorizationType, proto.maxTokens ? Coin_1.Coin.fromProto(proto.maxTokens) : undefined, proto.allowList\n ? StakeAuthorizationValidators.fromProto(proto.allowList)\n : undefined, proto.denyList\n ? StakeAuthorizationValidators.fromProto(proto.denyList)\n : undefined);\n };\n StakeAuthorization.prototype.toProto = function () {\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(),\n authorizationType: authorization_type,\n denyList: deny_list === null || deny_list === void 0 ? void 0 : deny_list.toProto(),\n maxTokens: max_tokens === null || max_tokens === void 0 ? void 0 : max_tokens.toProto(),\n });\n };\n StakeAuthorization.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.StakeAuthorization',\n value: authz_1.StakeAuthorization.encode(this.toProto()).finish(),\n });\n };\n StakeAuthorization.unpackAny = function (msgAny) {\n return StakeAuthorization.fromProto(authz_1.StakeAuthorization.decode(msgAny.value));\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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n StakeAuthorizationValidators.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n StakeAuthorizationValidators.fromData = function (data) {\n return new StakeAuthorizationValidators(data.address);\n };\n StakeAuthorizationValidators.prototype.toData = function () {\n return {\n address: this.address,\n };\n };\n StakeAuthorizationValidators.fromProto = function (proto) {\n return new StakeAuthorizationValidators(proto.address);\n };\n StakeAuthorizationValidators.prototype.toProto = function () {\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 __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 return new SendAuthorization(Coins_1.Coins.fromAmino(data.value.spend_limit));\n };\n SendAuthorization.prototype.toAmino = function () {\n var spend_limit = this.spend_limit;\n return {\n type: 'msgauth/SendAuthorization',\n value: {\n spend_limit: spend_limit.toAmino(),\n },\n };\n };\n SendAuthorization.fromData = function (data) {\n return new SendAuthorization(Coins_1.Coins.fromData(data.spend_limit));\n };\n SendAuthorization.prototype.toData = function () {\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 return new SendAuthorization(Coins_1.Coins.fromProto(proto.spendLimit));\n };\n SendAuthorization.prototype.toProto = function () {\n return authz_1.SendAuthorization.fromPartial({\n spendLimit: this.spend_limit.toProto(),\n });\n };\n SendAuthorization.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.bank.v1beta1.SendAuthorization',\n value: authz_1.SendAuthorization.encode(this.toProto()).finish(),\n });\n };\n SendAuthorization.unpackAny = function (msgAny) {\n return SendAuthorization.fromProto(authz_1.SendAuthorization.decode(msgAny.value));\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.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 return new GenericAuthorization(data.value.msg);\n };\n GenericAuthorization.prototype.toAmino = function () {\n var msg = this.msg;\n return {\n type: 'msgauth/GenericAuthorization',\n value: {\n msg: msg,\n },\n };\n };\n GenericAuthorization.fromData = function (data) {\n return new GenericAuthorization(data.msg);\n };\n GenericAuthorization.prototype.toData = function () {\n var msg = this.msg;\n return {\n '@type': '/cosmos.authz.v1beta1.GenericAuthorization',\n msg: msg,\n };\n };\n GenericAuthorization.fromProto = function (data) {\n return new GenericAuthorization(data.msg);\n };\n GenericAuthorization.prototype.toProto = function () {\n return authz_1.GenericAuthorization.fromPartial({\n msg: this.msg,\n });\n };\n GenericAuthorization.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.GenericAuthorization',\n value: authz_1.GenericAuthorization.encode(this.toProto()).finish(),\n });\n };\n GenericAuthorization.unpackAny = function (msgAny) {\n return GenericAuthorization.fromProto(authz_1.GenericAuthorization.decode(msgAny.value));\n };\n return GenericAuthorization;\n}(json_1.JSONSerializable));\nexports.GenericAuthorization = GenericAuthorization;\n//# sourceMappingURL=GenericAuthorization.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","!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}()}));","\"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/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.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) {\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 () {\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) {\n var hash = data.hash, feeder = data.feeder, validator = data.validator;\n return new MsgAggregateExchangeRatePrevote(hash, feeder, validator);\n };\n MsgAggregateExchangeRatePrevote.prototype.toData = function () {\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) {\n return new MsgAggregateExchangeRatePrevote(proto.hash, proto.feeder, proto.validator);\n };\n MsgAggregateExchangeRatePrevote.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.oracle.v1beta1.MsgAggregateExchangeRatePrevote',\n value: tx_1.MsgAggregateExchangeRatePrevote.encode(this.toProto()).finish(),\n });\n };\n MsgAggregateExchangeRatePrevote.unpackAny = function (msgAny) {\n return MsgAggregateExchangeRatePrevote.fromProto(tx_1.MsgAggregateExchangeRatePrevote.decode(msgAny.value));\n };\n return MsgAggregateExchangeRatePrevote;\n}(json_1.JSONSerializable));\nexports.MsgAggregateExchangeRatePrevote = MsgAggregateExchangeRatePrevote;\n//# sourceMappingURL=MsgAggregateExchangeRatePrevote.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 __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 __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.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.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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"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 __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(\"./MsgTransfer\"), 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(\"./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 __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.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(\"../../core/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 __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 __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.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 ? Counterparty_1.Counterparty.fromProto(proto.counterparty) : 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})();\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\";\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.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 __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/terra.proto/terra/vesting/v1beta1/vesting\");\nvar any_1 = require(\"@terra-money/terra.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 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 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 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 var base_vesting_account = BaseVestingAccount_1.BaseVestingAccount.fromData(__assign({ '@type': '/terra.vesting.v1beta1.LazyGradedVestingAccount' }, 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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.vesting.v1beta1.LazyGradedVestingAccount',\n value: vesting_1.LazyGradedVestingAccount.encode(this.toProto()).finish(),\n });\n };\n LazyGradedVestingAccount.unpackAny = function (pubkeyAny) {\n return LazyGradedVestingAccount.fromProto(vesting_1.LazyGradedVestingAccount.decode(pubkeyAny.value));\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 __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.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 __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 __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 * Terra account address. `terra-` 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. `terravaloper-` 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('terravaloper', 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 */\n Key.prototype.createSignatureAmino = function (tx) {\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()))];\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 */\n Key.prototype.createSignature = function (signDoc) {\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()))];\n case 1:\n sigBytes = (_a.sent()).toString('base64');\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) {\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)];\n case 1:\n signature = _c.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.createSignature(sign_doc)];\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.LUNA_COIN_TYPE = void 0;\nvar bip32 = __importStar(require(\"bip32\"));\nvar bip39 = __importStar(require(\"bip39\"));\nvar RawKey_1 = require(\"./RawKey\");\nexports.LUNA_COIN_TYPE = 330;\nvar DEFAULT_OPTIONS = {\n account: 0,\n index: 0,\n coinType: exports.LUNA_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.fromSeed(seed);\n var hdPathLuna = \"m/44'/\".concat(coinType, \"'/\").concat(account, \"'/0/\").concat(index);\n var terraHD = masterKey.derivePath(hdPathLuna);\n var privateKey = terraHD.privateKey;\n if (!privateKey) {\n throw new Error('Failed to derive key pair');\n }\n _this = _super.call(this, privateKey) || this;\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 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","'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","// 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}","module.exports = require('events').EventEmitter;\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};","'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};","// 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};","// 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}","/**\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 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\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);\n\n // 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 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // 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 var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // 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 var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // 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 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;\n\n // 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 this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // 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 this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\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\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\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.\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 if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\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 if (er) {\n stream.emit('error', 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) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\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 }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\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\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\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 return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\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 }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // 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 if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || 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);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\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\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\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;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // 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 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 = true;\n n = 0;\n } else {\n state.length -= n;\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;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\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.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\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.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\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.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\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 case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\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 }\n\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 var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\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\n cleanedUp = true;\n\n // 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 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\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', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\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 = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\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\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\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, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\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 if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\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.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\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\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\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 if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\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 () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\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.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\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.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\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 if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\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 if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\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 return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\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 && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\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 if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\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.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\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// 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\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\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\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // 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 this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\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};\n\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.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\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 if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\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.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\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 var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\n\nvar createHash = require('create-hash')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n var tmp = createHash('sha256').update(buffer).digest()\n return createHash('sha256').update(tmp).digest()\n}\n\nmodule.exports = bs58checkBase(sha256x2)\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\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 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","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","'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 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 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');\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","var native = require('./native')\n\nfunction getTypeName (fn) {\n return fn.name || fn.toString().match(/function (.*?)\\s*\\(/)[1]\n}\n\nfunction getValueTypeName (value) {\n return native.Nil(value) ? '' : getTypeName(value.constructor)\n}\n\nfunction getValue (value) {\n if (native.Function(value)) return ''\n if (native.String(value)) return JSON.stringify(value)\n if (value && native.Object(value)) return ''\n return value\n}\n\nfunction captureStackTrace (e, t) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(e, t)\n }\n}\n\nfunction tfJSON (type) {\n if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)\n if (native.Array(type)) return 'Array'\n if (type && native.Object(type)) return 'Object'\n\n return type !== undefined ? type : ''\n}\n\nfunction tfErrorString (type, value, valueTypeName) {\n var valueJson = getValue(value)\n\n return 'Expected ' + tfJSON(type) + ', got' +\n (valueTypeName !== '' ? ' ' + valueTypeName : '') +\n (valueJson !== '' ? ' ' + valueJson : '')\n}\n\nfunction TfTypeError (type, value, valueTypeName) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfErrorString(type, value, valueTypeName)\n\n captureStackTrace(this, TfTypeError)\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfTypeError.prototype = Object.create(Error.prototype)\nTfTypeError.prototype.constructor = TfTypeError\n\nfunction tfPropertyErrorString (type, label, name, value, valueTypeName) {\n var description = '\" of type '\n if (label === 'key') description = '\" with key type '\n\n return tfErrorString('property \"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)\n}\n\nfunction TfPropertyTypeError (type, property, label, value, valueTypeName) {\n if (type) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfPropertyErrorString(type, label, property, value, valueTypeName)\n } else {\n this.message = 'Unexpected property \"' + property + '\"'\n }\n\n captureStackTrace(this, TfTypeError)\n this.__label = label\n this.__property = property\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfPropertyTypeError.prototype = Object.create(Error.prototype)\nTfPropertyTypeError.prototype.constructor = TfTypeError\n\nfunction tfCustomError (expected, actual) {\n return new TfTypeError(expected, {}, actual)\n}\n\nfunction tfSubError (e, property, label) {\n // sub child?\n if (e instanceof TfPropertyTypeError) {\n property = property + '.' + e.__property\n\n e = new TfPropertyTypeError(\n e.__type, property, e.__label, e.__value, e.__valueTypeName\n )\n\n // child?\n } else if (e instanceof TfTypeError) {\n e = new TfPropertyTypeError(\n e.__type, property, label, e.__value, e.__valueTypeName\n )\n }\n\n captureStackTrace(e)\n return e\n}\n\nmodule.exports = {\n TfTypeError: TfTypeError,\n TfPropertyTypeError: TfPropertyTypeError,\n tfCustomError: tfCustomError,\n tfSubError: tfSubError,\n tfJSON: tfJSON,\n getValueTypeName: getValueTypeName\n}\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 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 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","\"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\";\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 secp256k1 = __importStar(require(\"secp256k1\"));\nvar Key_1 = require(\"./Key\");\nvar PublicKey_1 = require(\"../core/PublicKey\");\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 publicKey = secp256k1.publicKeyCreate(new Uint8Array(privateKey), true);\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 var hash = Buffer.from(jscrypto_1.SHA256.hash(new jscrypto_1.Word32Array(payload)).toString(), 'hex');\n return secp256k1.ecdsaSign(Uint8Array.from(hash), Uint8Array.from(this.privateKey));\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 __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};\nvar DEFAULT_GAS_PRICES_BY_CHAIN_ID = {\n default: {\n uusd: 0.15,\n },\n 'columbus-5': {\n uusd: 0.15,\n },\n 'bombay-12': {\n uusd: 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('uluna', 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'] }), config);\n this.apiRequester = new APIRequester_1.APIRequester(this.config.URL);\n // instantiate APIs\n this.auth = new api_1.AuthAPI(this.apiRequester);\n this.bank = new api_1.BankAPI(this.apiRequester);\n this.distribution = new api_1.DistributionAPI(this.apiRequester);\n this.feeGrant = new api_1.FeeGrantAPI(this.apiRequester);\n this.gov = new api_1.GovAPI(this.apiRequester);\n this.market = new api_1.MarketAPI(this.apiRequester);\n this.mint = new api_1.MintAPI(this.apiRequester);\n this.authz = new api_1.AuthzAPI(this.apiRequester);\n this.oracle = new api_1.OracleAPI(this.apiRequester);\n this.slashing = new api_1.SlashingAPI(this.apiRequester);\n this.staking = new api_1.StakingAPI(this.apiRequester);\n this.tendermint = new api_1.TendermintAPI(this.apiRequester);\n this.treasury = new api_1.TreasuryAPI(this.apiRequester);\n this.wasm = new api_1.WasmAPI(this.apiRequester);\n this.ibcTransfer = new api_1.IbcTransferAPI(this.apiRequester);\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';\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 * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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 return error;\n};\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'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 createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\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)) {\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 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, 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(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\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 Cancel('canceled') : 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 // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\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 '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","module.exports = {\n \"version\": \"0.26.1\"\n};","\"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\";\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 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); })];\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;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.lcd.tendermint.blockInfo(height)];\n case 1:\n blockInfo = _a.sent();\n txs = blockInfo.block.data.txs;\n if (!txs) {\n return [2 /*return*/, []];\n }\n else {\n txhashes = txs.map(function (txdata) { return (0, hash_1.hashToHex)(txdata); });\n return [2 /*return*/, Promise.all(txhashes.map(function (txhash) { return _this.txInfo(txhash); }))];\n }\n return [2 /*return*/];\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 || ['uusd'];\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 : '0uusd';\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()).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'));\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: 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 the \"block\" mode, waiting for its inclusion in the blockchain.\n * @param tx transaction to broadcast\n */\n TxAPI.prototype.broadcast = 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 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) { return core_1.TxInfo.fromData(tx_response); }),\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 __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/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 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 || signing_1.SignMode.SIGN_MODE_DIRECT,\n })];\n }\n });\n });\n };\n return Wallet;\n}());\nexports.Wallet = Wallet;\n//# sourceMappingURL=Wallet.js.map","'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\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'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}","module.exports = require('events').EventEmitter;\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};","'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};","// 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};","// 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}","import {\n AccAddress,\n CreateTxOptions,\n LCDClient,\n PublicKey,\n Tx,\n} from '@terra-money/terra.js';\nimport {\n ConnectedWallet,\n Connection,\n ConnectType,\n Installation,\n NetworkInfo,\n SignBytesResult,\n SignResult,\n TxResult,\n WalletLCDClientConfig,\n WalletStates,\n WalletStatus,\n} from '@terra-money/wallet-types';\nimport {\n TerraWebExtensionFeatures,\n WebExtensionTxStatus,\n} from '@terra-money/web-extension-interface';\nimport deepEqual from 'fast-deep-equal';\nimport {\n BehaviorSubject,\n combineLatest,\n firstValueFrom,\n Observable,\n Subscription,\n} from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport {\n CHROME_EXTENSION_INSTALL_URL,\n DEFAULT_CHROME_EXTENSION_COMPATIBLE_BROWSER_CHECK,\n} from './env';\nimport {\n mapExtensionSignBytesError,\n mapExtensionTxError,\n} from './exception/mapExtensionTxError';\nimport { mapWalletConnectError } from './exception/mapWalletConnectError';\nimport { selectConnection } from './modules/connect-modal';\nimport {\n ExtensionRouter,\n ExtensionRouterStatus,\n} from './modules/extension-router';\nimport {\n ExtensionInfo,\n getTerraExtensions,\n} from './modules/extension-router/multiChannel';\nimport {\n connect as reConnect,\n connectIfSessionExists as reConnectIfSessionExists,\n ReadonlyWalletController,\n readonlyWalletModal,\n ReadonlyWalletSession,\n} from './modules/readonly-wallet';\nimport {\n connect as wcConnect,\n connectIfSessionExists as wcConnectIfSessionExists,\n WalletConnectController,\n WalletConnectControllerOptions,\n WalletConnectSessionStatus,\n} from './modules/walletconnect';\nimport { getExtensions } from './operators/getExtensions';\nimport { toConnectedWallet } from './operators/toConnectedWallet';\nimport { toLcdClient } from './operators/toLcdClient';\nimport { isDesktopChrome } from './utils/browser-check';\nimport { checkExtensionReady } from './utils/checkExtensionReady';\nimport { sortConnections } from './utils/sortConnections';\n\nexport interface WalletControllerOptions\n extends WalletConnectControllerOptions {\n /**\n * ⚠️ Don't hardcoding this, use getChain Options()\n *\n * fallback network if controller is not connected\n */\n defaultNetwork: NetworkInfo;\n\n /**\n * ⚠️ Don't hardcoding this, use getChain Options()\n *\n * for walletconnect\n *\n * The network rules passed by the Terra Station Mobile are 0 is testnet, 1 is mainnet.\n *\n * Always set testnet for 0 and mainnet for 1.\n *\n * @example\n * ```\n * const mainnet: NetworkInfo = {\n * name: 'mainnet',\n * chainID: 'columbus-5',\n * lcd: 'https://lcd.terra.dev',\n * }\n *\n * const testnet: NetworkInfo = {\n * name: 'testnet',\n * chainID: 'bombay-12',\n * lcd: 'https://bombay-lcd.terra.dev',\n * }\n *\n * const walletConnectChainIds: Record = {\n * 0: testnet,\n * 1: mainnet,\n * }\n *\n * \n * ```\n */\n walletConnectChainIds: Record;\n\n /**\n * run at executing the `connect(ConnectType.READONLY)`\n */\n createReadonlyWalletSession?: (\n networks: NetworkInfo[],\n ) => Promise;\n\n /**\n * run at executing the `connect()` - only used when does not input ConnectType\n */\n selectConnection?: (\n connections: Connection[],\n ) => Promise<[type: ConnectType, identifier: string | undefined] | null>;\n\n /**\n * run at executing the `connect(ConnectType.EXTENSION)`\n * if user installed multiple wallets\n */\n selectExtension?: (\n extensionInfos: ExtensionInfo[],\n ) => Promise;\n\n /**\n * milliseconds to wait checking chrome extension is installed\n *\n * @default 1000 * 3 miliseconds\n */\n waitingChromeExtensionInstallCheck?: number;\n\n /**\n * ⚠️ This API is an option for wallet developers. Please don't use dApp developers.\n *\n * @example\n * ```\n * {\n * return /MyWallet\\//.test(userAgent);\n * }}>\n * ```\n */\n dangerously__chromeExtensionCompatibleBrowserCheck?: (\n userAgent: string,\n ) => boolean;\n}\n\nconst CONNECTIONS = {\n [ConnectType.READONLY]: {\n type: ConnectType.READONLY,\n name: 'View an address',\n icon: 'https://assets.terra.money/icon/wallet-provider/readonly.svg',\n } as Connection,\n [ConnectType.WALLETCONNECT]: {\n type: ConnectType.WALLETCONNECT,\n name: 'Wallet Connect',\n icon: 'https://assets.terra.money/icon/wallet-provider/walletconnect.svg',\n } as Connection,\n} as const;\n\nconst DEFAULT_WAITING_CHROME_EXTENSION_INSTALL_CHECK = 1000 * 3;\n\nconst WALLETCONNECT_SUPPORT_FEATURES = new Set([\n 'post',\n]);\n\nconst EMPTY_SUPPORT_FEATURES = new Set();\n\n//noinspection ES6MissingAwait\nexport class WalletController {\n private extension: ExtensionRouter | null = null;\n private walletConnect: WalletConnectController | null = null;\n private readonlyWallet: ReadonlyWalletController | null = null;\n\n private _availableConnectTypes: BehaviorSubject;\n private _availableInstallTypes: BehaviorSubject;\n private _states: BehaviorSubject;\n\n private disableReadonlyWallet: (() => void) | null = null;\n private disableExtension: (() => void) | null = null;\n private disableWalletConnect: (() => void) | null = null;\n\n private readonly _notConnected: WalletStates;\n private readonly _initializing: WalletStates;\n\n constructor(readonly options: WalletControllerOptions) {\n this._notConnected = {\n status: WalletStatus.WALLET_NOT_CONNECTED,\n network: options.defaultNetwork,\n };\n\n this._initializing = {\n status: WalletStatus.INITIALIZING,\n network: options.defaultNetwork,\n };\n\n this._availableConnectTypes = new BehaviorSubject([\n ConnectType.READONLY,\n ConnectType.WALLETCONNECT,\n ]);\n\n this._availableInstallTypes = new BehaviorSubject([]);\n\n this._states = new BehaviorSubject(this._initializing);\n\n let numSessionCheck: number = 0;\n\n // wait checking the availability of the chrome extension\n // 0. check if extension wallet session is exists\n checkExtensionReady(\n options.waitingChromeExtensionInstallCheck ??\n DEFAULT_WAITING_CHROME_EXTENSION_INSTALL_CHECK,\n this.isChromeExtensionCompatibleBrowser(),\n ).then((ready: boolean) => {\n if (ready) {\n this._availableConnectTypes.next([\n ConnectType.EXTENSION,\n ConnectType.WALLETCONNECT,\n ConnectType.READONLY,\n ]);\n\n this.extension = new ExtensionRouter({\n hostWindow: window,\n selectExtension: options.selectExtension,\n dangerously__chromeExtensionCompatibleBrowserCheck:\n options.dangerously__chromeExtensionCompatibleBrowserCheck ??\n DEFAULT_CHROME_EXTENSION_COMPATIBLE_BROWSER_CHECK,\n defaultNetwork: options.defaultNetwork,\n });\n\n const subscription = this.extension\n .states()\n .pipe(\n filter(({ type }) => type !== ExtensionRouterStatus.INITIALIZING),\n )\n .subscribe((extensionStates) => {\n try {\n subscription.unsubscribe();\n } catch {}\n\n if (\n extensionStates.type === ExtensionRouterStatus.WALLET_CONNECTED &&\n !this.disableWalletConnect &&\n !this.disableReadonlyWallet\n ) {\n this.enableExtension();\n } else if (numSessionCheck === 0) {\n numSessionCheck += 1;\n } else {\n this.updateStates(this._notConnected);\n }\n });\n } else {\n if (isDesktopChrome(this.isChromeExtensionCompatibleBrowser())) {\n this._availableInstallTypes.next([ConnectType.EXTENSION]);\n }\n\n if (numSessionCheck === 0) {\n numSessionCheck += 1;\n } else {\n this.updateStates(this._notConnected);\n }\n }\n });\n\n // 1. check if readonly wallet session is exists\n const draftReadonlyWallet = reConnectIfSessionExists();\n\n if (draftReadonlyWallet) {\n this.enableReadonlyWallet(draftReadonlyWallet);\n return;\n }\n\n // 2. check if walletconnect sesison is exists\n const draftWalletConnect = wcConnectIfSessionExists(options);\n\n if (\n draftWalletConnect &&\n draftWalletConnect.getLatestSession().status ===\n WalletConnectSessionStatus.CONNECTED\n ) {\n this.enableWalletConnect(draftWalletConnect);\n } else if (numSessionCheck === 0) {\n numSessionCheck += 1;\n } else {\n this.updateStates(this._notConnected);\n }\n }\n\n /**\n * Some mobile wallet emulates the behavior of chrome extension.\n * It confirms that the current connection environment is such a wallet.\n * (If you are running connect() by checking availableConnectType, you do not need to use this API.)\n *\n * @see Wallet#isChromeExtensionCompatibleBrowser\n */\n isChromeExtensionCompatibleBrowser = (): boolean => {\n return (\n this.options.dangerously__chromeExtensionCompatibleBrowserCheck ??\n DEFAULT_CHROME_EXTENSION_COMPATIBLE_BROWSER_CHECK\n )(navigator.userAgent);\n };\n\n /**\n * available connect types on the browser\n *\n * @see Wallet#availableConnectTypes\n */\n availableConnectTypes = (): Observable => {\n return this._availableConnectTypes.asObservable();\n };\n\n /**\n * available connections includes identifier, name, icon\n *\n * @see Wallet#availableConnections\n */\n availableConnections = (): Observable => {\n return this._availableConnectTypes.pipe(\n map((connectTypes) => {\n const connections: Connection[] = [];\n\n for (const connectType of connectTypes) {\n if (connectType === ConnectType.EXTENSION) {\n const terraExtensions = getTerraExtensions();\n\n for (const terraExtension of terraExtensions) {\n connections.push(\n memoConnection(\n ConnectType.EXTENSION,\n terraExtension.name,\n terraExtension.icon,\n terraExtension.identifier,\n ),\n );\n }\n } else {\n connections.push(CONNECTIONS[connectType]);\n }\n }\n\n return sortConnections(connections);\n }),\n );\n };\n\n /**\n * available install types on the browser\n *\n * in this time, this only contains [ConnectType.EXTENSION]\n *\n * @see Wallet#availableInstallTypes\n */\n availableInstallTypes = (): Observable => {\n return this._availableInstallTypes.asObservable();\n };\n\n /**\n * available installations includes identifier, name, icon, url\n *\n * @see Wallet#availableInstallations\n */\n availableInstallations = (): Observable => {\n return combineLatest([this.availableConnections(), getExtensions()]).pipe(\n map(([connections, extensions]) => {\n const installedIdentifiers = new Set(\n connections\n .filter(({ type, identifier }) => {\n return type === ConnectType.EXTENSION && !!identifier;\n })\n .map(({ identifier }) => {\n return identifier!;\n }),\n );\n\n return extensions\n .filter(({ identifier }) => {\n return !installedIdentifiers.has(identifier);\n })\n .map(({ name, identifier, icon, url }) => {\n return {\n type: ConnectType.EXTENSION,\n identifier,\n name,\n icon,\n url,\n };\n });\n }),\n );\n };\n\n /**\n * @see Wallet#status\n * @see Wallet#network\n * @see Wallet#wallets\n */\n states = (): Observable => {\n return this._states.asObservable();\n };\n\n /** get connectedWallet */\n connectedWallet = (): Observable => {\n return this._states.pipe(toConnectedWallet(this));\n };\n\n /** get lcdClient */\n lcdClient = (\n lcdClientConfig?: WalletLCDClientConfig,\n ): Observable => {\n return this._states.pipe(toLcdClient(lcdClientConfig));\n };\n\n /**\n * reload the connected wallet states\n *\n * in this time, this only work on the ConnectType.EXTENSION\n *\n * @see Wallet#recheckStatus\n */\n refetchStates = () => {\n if (this.disableExtension) {\n this.extension?.refetchStates();\n }\n };\n\n /**\n * @deprecated Please use availableInstallations\n *\n * install for the connect type\n *\n * @see Wallet#install\n */\n install = (type: ConnectType) => {\n if (type === ConnectType.EXTENSION) {\n // TODO separate install links by browser types\n window.open(CHROME_EXTENSION_INSTALL_URL, '_blank');\n } else {\n console.warn(\n `[WalletController] ConnectType \"${type}\" does not support install() function`,\n );\n }\n };\n\n /**\n * connect to wallet\n *\n * @see Wallet#connect\n */\n connect = async (_type?: ConnectType, _identifier?: string) => {\n let type: ConnectType;\n let identifier: string | undefined;\n\n if (!!_type) {\n type = _type;\n identifier = _identifier;\n } else {\n const connections = await firstValueFrom(this.availableConnections());\n const selector = this.options.selectConnection ?? selectConnection;\n const selected = await selector(connections);\n\n if (!selected) {\n return;\n }\n\n type = selected[0];\n identifier = selected[1];\n }\n\n switch (type) {\n case ConnectType.READONLY:\n const networks: NetworkInfo[] = Object.keys(\n this.options.walletConnectChainIds,\n ).map((chainId) => this.options.walletConnectChainIds[+chainId]);\n\n const createReadonlyWalletSession =\n this.options.createReadonlyWalletSession?.(networks) ??\n readonlyWalletModal({ networks });\n\n const readonlyWalletSession = await createReadonlyWalletSession;\n\n if (readonlyWalletSession) {\n this.enableReadonlyWallet(reConnect(readonlyWalletSession));\n }\n break;\n case ConnectType.WALLETCONNECT:\n this.enableWalletConnect(wcConnect(this.options));\n break;\n case ConnectType.EXTENSION:\n if (!this.extension) {\n throw new Error(`extension instance is not created!`);\n }\n this.extension.connect(identifier);\n this.enableExtension();\n break;\n default:\n throw new Error(`Unknown ConnectType!`);\n }\n };\n\n /**\n * manual connect to read only session\n *\n * @see Wallet#connectReadonly\n */\n connectReadonly = (terraAddress: string, network: NetworkInfo) => {\n this.enableReadonlyWallet(\n reConnect({\n terraAddress,\n network,\n }),\n );\n };\n\n /** @see Wallet#disconnect */\n disconnect = () => {\n this.disableReadonlyWallet?.();\n this.disableReadonlyWallet = null;\n\n this.disableExtension?.();\n this.disableExtension = null;\n\n this.disableWalletConnect?.();\n this.disableWalletConnect = null;\n\n this.updateStates(this._notConnected);\n };\n\n /**\n * @see Wallet#post\n * @param tx\n * @param terraAddress only available new extension\n */\n post = async (\n tx: CreateTxOptions,\n terraAddress?: string,\n ): Promise => {\n // ---------------------------------------------\n // extension\n // ---------------------------------------------\n if (this.disableExtension) {\n return new Promise((resolve, reject) => {\n if (!this.extension) {\n reject(new Error(`extension instance not created!`));\n return;\n }\n\n const subscription = this.extension.post(tx, terraAddress).subscribe({\n next: (txResult) => {\n if (txResult.status === WebExtensionTxStatus.SUCCEED) {\n resolve({\n ...tx,\n result: txResult.payload,\n success: true,\n });\n subscription.unsubscribe();\n }\n },\n error: (error) => {\n reject(mapExtensionTxError(tx, error));\n subscription.unsubscribe();\n },\n });\n });\n }\n // ---------------------------------------------\n // wallet connect\n // ---------------------------------------------\n else if (this.walletConnect) {\n return this.walletConnect\n .post(tx)\n .then(\n (result) =>\n ({\n ...tx,\n result,\n success: true,\n } as TxResult),\n )\n .catch((error) => {\n throw mapWalletConnectError(tx, error);\n });\n } else {\n throw new Error(`There are no connections that can be posting tx!`);\n }\n };\n\n /**\n * @see Wallet#sign\n * @param tx\n * @param terraAddress only available new extension\n */\n sign = async (\n tx: CreateTxOptions,\n terraAddress?: string,\n ): Promise => {\n if (this.disableExtension) {\n return new Promise((resolve, reject) => {\n if (!this.extension) {\n reject(new Error(`extension instance is not created!`));\n return;\n }\n\n const subscription = this.extension.sign(tx, terraAddress).subscribe({\n next: (txResult) => {\n if (txResult.status === WebExtensionTxStatus.SUCCEED) {\n resolve({\n ...tx,\n result: Tx.fromData(txResult.payload),\n success: true,\n });\n subscription.unsubscribe();\n }\n },\n error: (error) => {\n reject(mapExtensionTxError(tx, error));\n subscription.unsubscribe();\n },\n });\n });\n }\n\n throw new Error(`sign() method only available on extension`);\n };\n\n /**\n * @see Wallet#signBytes\n * @param bytes\n * @param terraAddress only available new extension\n */\n signBytes = async (\n bytes: Buffer,\n terraAddress?: string,\n ): Promise => {\n if (this.disableExtension) {\n return new Promise((resolve, reject) => {\n if (!this.extension) {\n reject(new Error(`extension instance is not created!`));\n return;\n }\n\n const subscription = this.extension\n .signBytes(bytes, terraAddress)\n .subscribe({\n next: (txResult) => {\n if (txResult.status === WebExtensionTxStatus.SUCCEED) {\n resolve({\n result: {\n recid: txResult.payload.recid,\n signature: Uint8Array.from(\n Buffer.from(txResult.payload.signature, 'base64'),\n ),\n public_key: txResult.payload.public_key\n ? PublicKey.fromData(txResult.payload.public_key)\n : undefined,\n },\n success: true,\n });\n subscription.unsubscribe();\n }\n },\n error: (error) => {\n reject(mapExtensionSignBytesError(bytes, error));\n subscription.unsubscribe();\n },\n });\n });\n }\n\n throw new Error(`signBytes() method only available on extension`);\n // TODO implements signBytes() to other connect types\n };\n\n /**\n * @see Wallet#hasCW20Tokens\n * @param chainID\n * @param tokenAddrs Token addresses\n */\n hasCW20Tokens = async (\n chainID: string,\n ...tokenAddrs: string[]\n ): Promise<{ [tokenAddr: string]: boolean }> => {\n if (this.availableExtensionFeature('cw20-token')) {\n return this.extension!.hasCW20Tokens(chainID, ...tokenAddrs);\n }\n\n throw new Error(`Does not support hasCW20Tokens() on this connection`);\n };\n\n /**\n * @see Wallet#addCW20Tokens\n * @param chainID\n * @param tokenAddrs Token addresses\n */\n addCW20Tokens = async (\n chainID: string,\n ...tokenAddrs: string[]\n ): Promise<{ [tokenAddr: string]: boolean }> => {\n if (this.availableExtensionFeature('cw20-token')) {\n return this.extension!.addCW20Tokens(chainID, ...tokenAddrs);\n }\n\n throw new Error(`Does not support addCW20Tokens() on this connection`);\n };\n\n /**\n * @see Wallet#hasNetwork\n * @param network\n */\n hasNetwork = (network: Omit): Promise => {\n if (this.availableExtensionFeature('network')) {\n return this.extension!.hasNetwork(network);\n }\n\n throw new Error(`Does not support hasNetwork() on this connection`);\n };\n\n /**\n * @see Wallet#hasNetwork\n * @param network\n */\n addNetwork = (network: NetworkInfo): Promise => {\n if (this.availableExtensionFeature('network')) {\n return this.extension!.addNetwork(network);\n }\n\n throw new Error(`Does not support addNetwork() on this connection`);\n };\n\n // ================================================================\n // internal\n // connect type changing\n // ================================================================\n private availableExtensionFeature = (feature: TerraWebExtensionFeatures) => {\n if (this.disableExtension && this.extension) {\n const states = this.extension.getLastStates();\n\n return (\n states.type === ExtensionRouterStatus.WALLET_CONNECTED &&\n states.supportFeatures.has(feature)\n );\n }\n };\n\n private updateStates = (next: WalletStates) => {\n const prev = this._states.getValue();\n\n if (\n next.status === WalletStatus.WALLET_CONNECTED &&\n next.wallets.length === 0\n ) {\n next = {\n status: WalletStatus.WALLET_NOT_CONNECTED,\n network: next.network,\n };\n }\n\n if (prev.status !== next.status || !deepEqual(prev, next)) {\n this._states.next(next);\n }\n };\n\n private enableReadonlyWallet = (readonlyWallet: ReadonlyWalletController) => {\n this.disableWalletConnect?.();\n this.disableExtension?.();\n\n if (\n this.readonlyWallet === readonlyWallet ||\n (this.readonlyWallet?.terraAddress === readonlyWallet.terraAddress &&\n this.readonlyWallet.network === readonlyWallet.network)\n ) {\n return;\n }\n\n if (this.readonlyWallet) {\n this.readonlyWallet.disconnect();\n }\n\n this.readonlyWallet = readonlyWallet;\n\n this.updateStates({\n status: WalletStatus.WALLET_CONNECTED,\n network: readonlyWallet.network,\n wallets: [\n {\n connectType: ConnectType.READONLY,\n terraAddress: readonlyWallet.terraAddress,\n design: 'readonly',\n },\n ],\n supportFeatures: EMPTY_SUPPORT_FEATURES,\n connection: CONNECTIONS.READONLY,\n });\n\n this.disableReadonlyWallet = () => {\n readonlyWallet.disconnect();\n this.readonlyWallet = null;\n this.disableReadonlyWallet = null;\n };\n };\n\n private enableExtension = () => {\n this.disableReadonlyWallet?.();\n this.disableWalletConnect?.();\n\n if (this.disableExtension || !this.extension) {\n return;\n }\n\n const extensionSubscription = this.extension.states().subscribe({\n next: (extensionStates) => {\n if (\n extensionStates.type === ExtensionRouterStatus.WALLET_CONNECTED &&\n AccAddress.validate(extensionStates.wallet.terraAddress)\n ) {\n this.updateStates({\n status: WalletStatus.WALLET_CONNECTED,\n network: extensionStates.network,\n wallets: [\n {\n connectType: ConnectType.EXTENSION,\n terraAddress: extensionStates.wallet.terraAddress,\n design: extensionStates.wallet.design,\n },\n ],\n supportFeatures: extensionStates.supportFeatures,\n connection: memoConnection(\n ConnectType.EXTENSION,\n extensionStates.extensionInfo.name,\n extensionStates.extensionInfo.icon,\n extensionStates.extensionInfo.identifier,\n ),\n });\n } else {\n this.updateStates(this._notConnected);\n }\n },\n });\n\n this.disableExtension = () => {\n this.extension?.disconnect();\n extensionSubscription.unsubscribe();\n this.disableExtension = null;\n };\n };\n\n private enableWalletConnect = (walletConnect: WalletConnectController) => {\n this.disableReadonlyWallet?.();\n this.disableExtension?.();\n\n if (this.walletConnect === walletConnect) {\n return;\n }\n\n if (this.walletConnect) {\n this.walletConnect.disconnect();\n }\n\n this.walletConnect = walletConnect;\n\n const subscribeWalletConnect = (\n wc: WalletConnectController,\n ): Subscription => {\n return wc.session().subscribe({\n next: (status) => {\n switch (status.status) {\n case WalletConnectSessionStatus.CONNECTED:\n this.updateStates({\n status: WalletStatus.WALLET_CONNECTED,\n network:\n this.options.walletConnectChainIds[status.chainId] ??\n this.options.defaultNetwork,\n wallets: [\n {\n connectType: ConnectType.WALLETCONNECT,\n terraAddress: status.terraAddress,\n design: 'walletconnect',\n },\n ],\n supportFeatures: WALLETCONNECT_SUPPORT_FEATURES,\n connection: CONNECTIONS.WALLETCONNECT,\n });\n break;\n default:\n this.updateStates(this._notConnected);\n break;\n }\n },\n });\n };\n\n const walletConnectSessionSubscription =\n subscribeWalletConnect(walletConnect);\n\n this.disableWalletConnect = () => {\n this.walletConnect?.disconnect();\n this.walletConnect = null;\n walletConnectSessionSubscription.unsubscribe();\n this.disableWalletConnect = null;\n };\n };\n}\n\nconst memoizedConnections = new Map();\n\nfunction memoConnection(\n connectType: ConnectType,\n name: string,\n icon: string,\n identifier: string | undefined = '',\n): Connection {\n const key = [connectType, name, icon, identifier].join(';');\n\n if (memoizedConnections.has(key)) {\n return memoizedConnections.get(key)!;\n }\n\n const connection: Connection = {\n type: connectType,\n name,\n icon,\n identifier,\n };\n\n memoizedConnections.set(key, connection);\n\n return connection;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId() {\n const date = Date.now() * Math.pow(10, 3);\n const extra = Math.floor(Math.random() * Math.pow(10, 3));\n return date + extra;\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error),\n };\n}\nexport function formatErrorMessage(error) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","export * from \"@walletconnect/jsonrpc-types\";\n//# sourceMappingURL=types.js.map","import { IEvents } from \"./misc\";\nexport class IJsonRpcConnection extends IEvents {\n constructor(opts) {\n super();\n }\n}\nexport class IBaseJsonRpcProvider extends IEvents {\n constructor() {\n super();\n }\n}\nexport class IJsonRpcProvider extends IBaseJsonRpcProvider {\n constructor(connection) {\n super();\n }\n}\n//# sourceMappingURL=provider.js.map","import { browserAesDecrypt, browserAesEncrypt } from \"../lib/browser\";\nexport function aesCbcEncrypt(iv, key, data) {\n return browserAesEncrypt(iv, key, data);\n}\nexport function aesCbcDecrypt(iv, key, data) {\n return browserAesDecrypt(iv, key, data);\n}\n//# sourceMappingURL=aes.js.map","import { browserHmacSha256Sign, browserHmacSha512Sign } from \"../lib/browser\";\nimport { isConstantTime } from \"../helpers\";\nexport async function hmacSha256Sign(key, msg) {\n const result = await browserHmacSha256Sign(key, msg);\n return result;\n}\nexport async function hmacSha256Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha256Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\nexport async function hmacSha512Sign(key, msg) {\n const result = await browserHmacSha512Sign(key, msg);\n return result;\n}\nexport async function hmacSha512Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha512Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\n//# sourceMappingURL=hmac.js.map","export * from \"@walletconnect/environment\";\n//# sourceMappingURL=env.js.map","export function assert(condition, message) {\n if (!condition) {\n throw new Error(message || \"Assertion failed\");\n }\n}\nexport function isConstantTime(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n let res = 0;\n for (let i = 0; i < arr1.length; i++) {\n res |= arr1[i] ^ arr2[i];\n }\n return res === 0;\n}\n//# sourceMappingURL=validators.js.map","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","import { SignBytesResult } from '@terra-money/wallet-types';\nimport jscrypto from 'jscrypto';\nimport secp256k1 from 'secp256k1';\n\nexport function verifyBytes(\n bytes: Buffer,\n signBytesResult: SignBytesResult['result'],\n): boolean {\n const publicKey = signBytesResult.public_key?.toProto();\n\n if (publicKey && 'key' in publicKey) {\n return secp256k1.ecdsaVerify(\n signBytesResult.signature,\n Buffer.from(\n jscrypto.SHA256.hash(new jscrypto.Word32Array(bytes)).toString(),\n 'hex',\n ),\n publicKey.key,\n );\n }\n\n return false;\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { CreateTxOptions } from '@terra-money/terra.js';\nimport {\n CreateTxFailed,\n Timeout,\n TxFailed,\n TxUnspecifiedError,\n UserDenied,\n} from '@terra-money/wallet-types';\nimport {\n WalletConnectCreateTxFailed,\n WalletConnectTimeout,\n WalletConnectTxFailed,\n WalletConnectTxUnspecifiedError,\n WalletConnectUserDenied,\n} from '../modules/walletconnect';\nimport { isError } from './isError';\n\nexport function mapWalletConnectError(\n tx: CreateTxOptions,\n error: unknown,\n): Error {\n if (\n isError(error, UserDenied) ||\n isError(error, Timeout) ||\n isError(error, CreateTxFailed) ||\n isError(error, TxFailed) ||\n isError(error, TxUnspecifiedError)\n ) {\n return error;\n } else if (isError(error, WalletConnectUserDenied)) {\n return new UserDenied();\n } else if (isError(error, WalletConnectTimeout)) {\n return new Timeout(error.message);\n } else if (isError(error, WalletConnectCreateTxFailed)) {\n return new CreateTxFailed(tx, error.message);\n } else if (isError(error, WalletConnectTxFailed)) {\n return new TxFailed(tx, error.txhash, error.message, null);\n } else if (isError(error, WalletConnectTxUnspecifiedError)) {\n return new TxUnspecifiedError(tx, error.message);\n }\n return new TxUnspecifiedError(\n tx,\n error instanceof Error ? error.message : String(error),\n );\n}\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","/**\n * Convert a typed array to a Buffer without a copy\n *\n * Author: Feross Aboukhadijeh \n * License: MIT\n *\n * `npm install typedarray-to-buffer`\n */\n\nvar isTypedArray = require('is-typedarray').strict\n\nmodule.exports = function typedarrayToBuffer (arr) {\n if (isTypedArray(arr)) {\n // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer\n var buf = Buffer.from(arr.buffer)\n if (arr.byteLength !== arr.buffer.byteLength) {\n // Respect the \"view\", i.e. byteOffset and byteLength, without doing a copy\n buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)\n }\n return buf\n } else {\n // Pass through all other types to `Buffer.from`\n return Buffer.from(arr)\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","class NetworkMonitor {\n constructor() {\n this._eventEmitters = [];\n if (typeof window !== \"undefined\" && typeof window.addEventListener !== \"undefined\") {\n window.addEventListener(\"online\", () => this.trigger(\"online\"));\n window.addEventListener(\"offline\", () => this.trigger(\"offline\"));\n }\n }\n on(event, callback) {\n this._eventEmitters.push({\n event,\n callback,\n });\n }\n trigger(event) {\n let eventEmitters = [];\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n eventEmitters.forEach((eventEmitter) => {\n eventEmitter.callback();\n });\n }\n}\nexport default NetworkMonitor;\n//# sourceMappingURL=network.js.map","import {\n NetworkEvent,\n INetworkEventEmitter,\n INetworkMonitor,\n} from '@walletconnect/types';\n\n// -- NetworkMonitor --------------------------------------------------------- //\n\nclass NetworkMonitor implements INetworkMonitor {\n private _eventEmitters: INetworkEventEmitter[];\n\n constructor() {\n this._eventEmitters = [];\n\n if (\n typeof window !== 'undefined' &&\n typeof (window as any).addEventListener !== 'undefined'\n ) {\n window.addEventListener('online', () => this.trigger('online'));\n window.addEventListener('offline', () => this.trigger('offline'));\n }\n }\n\n public on(event: NetworkEvent, callback: () => void): void {\n this._eventEmitters.push({\n event,\n callback,\n });\n }\n\n public trigger(event: NetworkEvent): void {\n let eventEmitters: INetworkEventEmitter[] = [];\n\n if (event) {\n eventEmitters = this._eventEmitters.filter(\n (eventEmitter: INetworkEventEmitter) => eventEmitter.event === event,\n );\n }\n\n eventEmitters.forEach((eventEmitter: INetworkEventEmitter) => {\n eventEmitter.callback();\n });\n }\n}\n\nexport default NetworkMonitor;\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","import {\n createLCDClient,\n WalletLCDClientConfig,\n WalletStates,\n} from '@terra-money/wallet-types';\nimport { LCDClient } from '@terra-money/terra.js';\nimport { OperatorFunction } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function toLcdClient(\n lcdClientConfig?: WalletLCDClientConfig,\n): OperatorFunction {\n return map((states) => {\n return createLCDClient({\n lcdClientConfig,\n network: states.network,\n });\n });\n}\n","const interval = 500;\n\ndeclare global {\n interface Window {\n isTerraExtensionAvailable: boolean;\n }\n}\n\nexport async function checkExtensionReady(\n timeout: number,\n isChromeExtensionCompatibleBrowser: boolean,\n): Promise {\n return new Promise((resolve) => {\n if (isChromeExtensionCompatibleBrowser) {\n resolve(true);\n return;\n }\n\n const start = Date.now();\n\n function check() {\n if (\n window.isTerraExtensionAvailable === true ||\n Array.isArray(window.terraWallets)\n ) {\n resolve(true);\n } else if (Date.now() > start + timeout) {\n resolve(false);\n } else {\n setTimeout(check, interval);\n }\n }\n\n setTimeout(check, interval);\n });\n}\n","import { Connection } from '@terra-money/wallet-types';\n\nexport function sortConnections(connections: Connection[]): Connection[] {\n const stationIndex = connections.findIndex(\n ({ identifier }) => identifier === 'station',\n );\n\n if (stationIndex > -1) {\n const station = connections.splice(stationIndex, 1);\n return [...station, ...connections];\n }\n\n return connections;\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n//# sourceMappingURL=of.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { Observable, of, switchMap } from 'rxjs';\nimport { fromFetch } from 'rxjs/fetch';\nimport { catchError, map } from 'rxjs/operators';\nimport { getDesktopBrowserType } from '../utils/browser-check';\n\ninterface Extensions {\n whitelist: Array<{\n name: string;\n identifier: string;\n icon: string;\n urls: Array<{\n browser: 'chrome' | 'edge' | 'firefox' | 'safari';\n url: string;\n }>;\n }>;\n}\n\nconst FALLBACK: Extensions = {\n whitelist: [\n {\n name: 'Terra Station',\n identifier: 'station',\n icon: 'https://assets.terra.money/icon/station-extension/icon.png',\n urls: [\n {\n browser: 'chrome',\n url: 'https://chrome.google.com/webstore/detail/terra-station/aiifbnbfobpmeekipheeijimdpnlpgpp',\n },\n {\n browser: 'firefox',\n url: 'https://addons.mozilla.org/en-US/firefox/addon/terra-station-wallet/',\n },\n ],\n },\n {\n name: 'XDEFI Wallet',\n identifier: 'xdefi-wallet',\n icon: 'https://xdefi-prod-common-ui.s3.eu-west-1.amazonaws.com/logo.svg',\n urls: [\n {\n browser: 'chrome',\n url: 'https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf',\n },\n ],\n },\n ],\n};\n\ninterface InstallableExtension {\n name: string;\n identifier: string;\n icon: string;\n url: string;\n}\n\nexport function getExtensions(): Observable {\n const currentBrowser = getDesktopBrowserType(navigator.userAgent);\n\n if (!currentBrowser) {\n return of([]);\n }\n\n return fromFetch('https://assets.terra.money/extensions.json').pipe<\n Extensions,\n Extensions,\n InstallableExtension[]\n >(\n switchMap((res) => {\n if (res.ok) {\n return res.json();\n } else {\n return of(FALLBACK);\n }\n }),\n catchError(() => {\n return of(FALLBACK);\n }),\n map(({ whitelist }) => {\n return whitelist\n .filter(({ urls }) =>\n urls.some(({ browser }) => currentBrowser === browser),\n )\n .map(({ name, identifier, icon, urls }) => {\n return {\n name,\n identifier,\n icon,\n url: urls.find(({ browser }) => currentBrowser === browser)!.url,\n };\n });\n }),\n );\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate(function (source, subscriber) {\n var innerSubscriber = null;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n var innerIndex = 0;\n var outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {\n innerSubscriber = null;\n checkComplete();\n })));\n }, function () {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { __assign, __rest } from \"tslib\";\nimport { createOperatorSubscriber } from '../../operators/OperatorSubscriber';\nimport { Observable } from '../../Observable';\nimport { innerFrom } from '../../observable/innerFrom';\nexport function fromFetch(input, initWithSelector) {\n if (initWithSelector === void 0) { initWithSelector = {}; }\n var selector = initWithSelector.selector, init = __rest(initWithSelector, [\"selector\"]);\n return new Observable(function (subscriber) {\n var controller = new AbortController();\n var signal = controller.signal;\n var abortable = true;\n var outerSignal = init.signal;\n if (outerSignal) {\n if (outerSignal.aborted) {\n controller.abort();\n }\n else {\n var outerSignalHandler_1 = function () {\n if (!signal.aborted) {\n controller.abort();\n }\n };\n outerSignal.addEventListener('abort', outerSignalHandler_1);\n subscriber.add(function () { return outerSignal.removeEventListener('abort', outerSignalHandler_1); });\n }\n }\n var perSubscriberInit = __assign(__assign({}, init), { signal: signal });\n var handleError = function (err) {\n abortable = false;\n subscriber.error(err);\n };\n fetch(input, perSubscriberInit)\n .then(function (response) {\n if (selector) {\n innerFrom(selector(response)).subscribe(createOperatorSubscriber(subscriber, undefined, function () {\n abortable = false;\n subscriber.complete();\n }, handleError));\n }\n else {\n abortable = false;\n subscriber.next(response);\n subscriber.complete();\n }\n })\n .catch(handleError);\n return function () {\n if (abortable) {\n controller.abort();\n }\n };\n });\n}\n//# sourceMappingURL=fetch.js.map","import { Connection, ConnectType } from '@terra-money/wallet-types';\nimport { modalStyle } from './style';\n\nexport function selectConnection(\n connections: Connection[],\n): Promise<[type: ConnectType, identifier: string | undefined] | null> {\n return new Promise((resolve) => {\n const styleContainer = document.createElement('style');\n const modalContainer = document.createElement('div');\n\n function onComplete(connection: Connection | null) {\n resolve(connection ? [connection.type, connection.identifier] : null);\n styleContainer.parentElement?.removeChild(styleContainer);\n modalContainer.parentElement?.removeChild(modalContainer);\n }\n\n const element = createModalElement({\n connections,\n onComplete,\n });\n\n styleContainer.textContent = modalStyle;\n modalContainer.appendChild(element);\n\n document.querySelector('head')?.appendChild(styleContainer);\n document.querySelector('body')?.appendChild(modalContainer);\n });\n}\n\nfunction createModalElement({\n connections,\n onComplete,\n}: {\n connections: Connection[];\n onComplete: (connection: Connection | null) => void;\n}): HTMLElement {\n // ---------------------------------------------\n // container\n // ---------------------------------------------\n const container = document.createElement('div');\n container.setAttribute('class', 'wallet-select-modal');\n\n // ---------------------------------------------\n // container > div.wallet-select-modal--dim\n // ---------------------------------------------\n const dim = document.createElement('div');\n dim.setAttribute('class', 'wallet-select-modal--dim');\n\n container.appendChild(dim);\n\n // ---------------------------------------------\n // content > div.wallet-select-modal--content\n // ---------------------------------------------\n const content = document.createElement('section');\n content.setAttribute('class', 'wallet-select-modal--content');\n\n container.appendChild(content);\n\n // h1\n const title = document.createElement('h1');\n title.textContent = 'Select a Wallet';\n content.appendChild(title);\n\n // ul\n const list = document.createElement('ul');\n content.appendChild(list);\n\n for (const connection of connections) {\n const item = document.createElement('li');\n\n const button = document.createElement('button');\n button.addEventListener('click', () => onComplete(connection));\n\n item.appendChild(button);\n\n const icon = document.createElement('span');\n icon.setAttribute('class', 'wallet-select-modal--icon');\n\n button.appendChild(icon);\n\n const iconImg = document.createElement('img');\n iconImg.setAttribute('src', connection.icon);\n iconImg.setAttribute(\n 'alt',\n `${connection.name} [${connection.identifier}]`,\n );\n\n icon.appendChild(iconImg);\n\n const description = document.createElement('span');\n description.setAttribute('class', 'wallet-select-modal--description');\n description.textContent = connection.name;\n\n button.appendChild(description);\n\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.setAttribute('viewBox', '0 0 24 24');\n\n button.appendChild(arrow);\n\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z');\n\n arrow.appendChild(path);\n\n list.appendChild(item);\n }\n\n // events\n dim.addEventListener('click', () => onComplete(null));\n\n return container;\n}\n","// language=css\nexport const modalStyle = `\n@keyframes wallet-select-modal--dim-enter {\n 0% {\n opacity: 0;\n }\n \n 100% {\n opacity: 1;\n }\n}\n\n@keyframes wallet-select-modal--content-enter {\n 0% {\n opacity: 0;\n transform: scale(0.4);\n }\n \n 100% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.wallet-select-modal {\n position: fixed;\n z-index: 100000;\n \n color: #212121;\n \n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n \n font-family: sans-serif;\n \n display: grid;\n place-content: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--dim {\n position: fixed;\n z-index: -1;\n \n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.3);\n \n animation: wallet-select-modal--dim-enter 0.2s ease-in-out;\n}\n\n.wallet-select-modal > .wallet-select-modal--content {\n box-sizing: border-box;\n \n border-radius: 8px;\n \n background-color: #ffffff;\n box-shadow: 0 4px 18px 3px rgba(0, 0, 0, 0.43);\n \n animation: wallet-select-modal--content-enter 0.2s ease-in-out;\n \n width: 100vw;\n max-width: 480px;\n padding: 40px;\n}\n\n.wallet-select-modal > .wallet-select-modal--content h1 {\n font-size: 20px;\n font-weight: bold;\n \n margin: 0 0 32px 0;\n \n text-align: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul {\n padding: 0;\n margin: 0;\n list-style: none;\n \n display: flex;\n flex-direction: column;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul li {\n border-top: 1px solid #cfd8ea;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul li:last-child {\n border-bottom: 1px solid #cfd8ea;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button {\n width: 100%;\n height: 66px;\n \n border: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n \n display: flex;\n gap: 10px;\n align-items: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button:hover {\n background-color: hsl(220, 39%, 86%, 0.25);\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--icon {\n display: inline-grid;\n width: 50px;\n height: 50px;\n \n place-content: center;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--icon img {\n width: 30px;\n height: 30px;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--description {\n flex: 1;\n text-align: left;\n \n font-size: 16px;\n font-weight: 600;\n color: #212121;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button svg {\n width: 18px;\n height: 18px;\n \n fill: #cfd8ea;\n}\n\n.wallet-select-modal > .wallet-select-modal--content ul button:hover svg {\n fill: #2043b5;\n}\n\n@media (max-width: 450px) {\n .wallet-select-modal {\n place-content: flex-end;\n }\n \n .wallet-select-modal > .wallet-select-modal--content {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n`;\n",";(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js v10.3.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2021 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\";\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\";\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\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\";\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\";\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\";\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","\"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\";\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 = {};\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\";\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/terra.proto/google/protobuf/any\");\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 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 () {\n var _a = this, from_address = _a.from_address, to_address = _a.to_address, amount = _a.amount;\n return {\n type: 'bank/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) {\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 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 return new MsgSend(proto.fromAddress, proto.toAddress, Coins_1.Coins.fromProto(proto.amount));\n };\n MsgSend.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.bank.v1beta1.MsgSend',\n value: tx_1.MsgSend.encode(this.toProto()).finish(),\n });\n };\n MsgSend.unpackAny = function (msgAny) {\n return MsgSend.fromProto(tx_1.MsgSend.decode(msgAny.value));\n };\n return MsgSend;\n}(json_1.JSONSerializable));\nexports.MsgSend = MsgSend;\n//# sourceMappingURL=MsgSend.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/terra.proto/google/protobuf/any\");\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('uluna', 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 * uluna: 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 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 () {\n var _a = this, inputs = _a.inputs, outputs = _a.outputs;\n return {\n type: 'bank/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 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 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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.bank.v1beta1.MsgMultiSend',\n value: tx_1.MsgMultiSend.encode(this.toProto()).finish(),\n });\n };\n MsgMultiSend.unpackAny = function (msgAny) {\n return MsgMultiSend.fromProto(tx_1.MsgMultiSend.decode(msgAny.value));\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 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 var address = data.address, coins = data.coins;\n return new Input(address, Coins_1.Coins.fromAmino(coins));\n };\n Input.prototype.toData = function () {\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 var address = data.address, coins = data.coins;\n return new Input(address, Coins_1.Coins.fromData(coins));\n };\n Input.prototype.toProto = function () {\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 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 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 var address = data.address, coins = data.coins;\n return new Output(address, Coins_1.Coins.fromAmino(coins));\n };\n Output.prototype.toData = function () {\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 var address = data.address, coins = data.coins;\n return new Output(address, Coins_1.Coins.fromData(coins));\n };\n Output.prototype.toProto = function () {\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 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.MsgSetWithdrawAddress = 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/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 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 () {\n var _a = this, delegator_address = _a.delegator_address, withdraw_address = _a.withdraw_address;\n return {\n type: 'distribution/MsgModifyWithdrawAddress',\n value: {\n delegator_address: delegator_address,\n withdraw_address: withdraw_address,\n },\n };\n };\n MsgSetWithdrawAddress.fromData = function (data) {\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 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 return new MsgSetWithdrawAddress(proto.delegatorAddress, proto.withdrawAddress);\n };\n MsgSetWithdrawAddress.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress',\n value: tx_1.MsgSetWithdrawAddress.encode(this.toProto()).finish(),\n });\n };\n MsgSetWithdrawAddress.unpackAny = function (msgAny) {\n return MsgSetWithdrawAddress.fromProto(tx_1.MsgSetWithdrawAddress.decode(msgAny.value));\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\");\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 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 () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address;\n return {\n type: 'distribution/MsgWithdrawDelegationReward',\n value: {\n delegator_address: delegator_address,\n validator_address: validator_address,\n },\n };\n };\n MsgWithdrawDelegatorReward.fromData = function (proto) {\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 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 return new MsgWithdrawDelegatorReward(proto.delegatorAddress, proto.validatorAddress);\n };\n MsgWithdrawDelegatorReward.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward',\n value: tx_1.MsgWithdrawDelegatorReward.encode(this.toProto()).finish(),\n });\n };\n MsgWithdrawDelegatorReward.unpackAny = function (msgAny) {\n return MsgWithdrawDelegatorReward.fromProto(tx_1.MsgWithdrawDelegatorReward.decode(msgAny.value));\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/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 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 var validator_address = data.value.validator_address;\n return new MsgWithdrawValidatorCommission(validator_address);\n };\n MsgWithdrawValidatorCommission.prototype.toAmino = function () {\n var validator_address = this.validator_address;\n return {\n type: 'distribution/MsgWithdrawValidatorCommission',\n value: {\n validator_address: validator_address,\n },\n };\n };\n MsgWithdrawValidatorCommission.fromData = function (proto) {\n var validator_address = proto.validator_address;\n return new MsgWithdrawValidatorCommission(validator_address);\n };\n MsgWithdrawValidatorCommission.prototype.toData = function () {\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 return new MsgWithdrawValidatorCommission(proto.validatorAddress);\n };\n MsgWithdrawValidatorCommission.prototype.toProto = function () {\n var validator_address = this.validator_address;\n return tx_1.MsgWithdrawValidatorCommission.fromPartial({\n validatorAddress: validator_address,\n });\n };\n MsgWithdrawValidatorCommission.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission',\n value: tx_1.MsgWithdrawValidatorCommission.encode(this.toProto()).finish(),\n });\n };\n MsgWithdrawValidatorCommission.unpackAny = function (msgAny) {\n return MsgWithdrawValidatorCommission.fromProto(tx_1.MsgWithdrawValidatorCommission.decode(msgAny.value));\n };\n return MsgWithdrawValidatorCommission;\n}(json_1.JSONSerializable));\nexports.MsgWithdrawValidatorCommission = MsgWithdrawValidatorCommission;\n//# sourceMappingURL=MsgWithdrawValidatorCommission.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\");\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 return new MsgFundCommunityPool(depositor, Coins_1.Coins.fromAmino(amount));\n };\n MsgFundCommunityPool.prototype.toAmino = function () {\n var _a = this, depositor = _a.depositor, amount = _a.amount;\n return {\n type: 'distribution/MsgFundCommunityPool',\n value: {\n depositor: depositor,\n amount: amount.toAmino(),\n },\n };\n };\n MsgFundCommunityPool.fromData = function (proto) {\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 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 return new MsgFundCommunityPool(proto.depositor, Coins_1.Coins.fromProto(proto.amount));\n };\n MsgFundCommunityPool.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.MsgFundCommunityPool',\n value: tx_1.MsgFundCommunityPool.encode(this.toProto()).finish(),\n });\n };\n MsgFundCommunityPool.unpackAny = function (msgAny) {\n return MsgFundCommunityPool.fromProto(tx_1.MsgFundCommunityPool.decode(msgAny.value));\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.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) {\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));\n };\n MsgGrantAllowance.prototype.toAmino = function () {\n var _a = this, granter = _a.granter, grantee = _a.grantee, allowance = _a.allowance;\n return {\n type: 'feegrant/MsgGrantAllowance',\n value: {\n granter: granter,\n grantee: grantee,\n allowance: allowance.toAmino(),\n },\n };\n };\n MsgGrantAllowance.fromData = function (data) {\n var granter = data.granter, grantee = data.grantee, allowance = data.allowance;\n return new MsgGrantAllowance(granter, grantee, allowances_1.Allowance.fromData(allowance));\n };\n MsgGrantAllowance.prototype.toData = function () {\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(),\n };\n };\n MsgGrantAllowance.fromProto = function (proto) {\n return new MsgGrantAllowance(proto.granter, proto.grantee, allowances_1.Allowance.fromProto(proto.allowance));\n };\n MsgGrantAllowance.prototype.toProto = function () {\n var _a = this, granter = _a.granter, grantee = _a.grantee, allowance = _a.allowance;\n return tx_1.MsgGrantAllowance.fromPartial({\n allowance: allowance.packAny(),\n grantee: grantee,\n granter: granter,\n });\n };\n MsgGrantAllowance.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.MsgGrantAllowance',\n value: tx_1.MsgGrantAllowance.encode(this.toProto()).finish(),\n });\n };\n MsgGrantAllowance.unpackAny = function (msgAny) {\n return MsgGrantAllowance.fromProto(tx_1.MsgGrantAllowance.decode(msgAny.value));\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 var _a = data.value, granter = _a.granter, grantee = _a.grantee;\n return new MsgRevokeAllowance(granter, grantee);\n };\n MsgRevokeAllowance.prototype.toAmino = function () {\n var _a = this, granter = _a.granter, grantee = _a.grantee;\n return {\n type: 'feegrant/MsgRevokeAllowance',\n value: {\n granter: granter,\n grantee: grantee,\n },\n };\n };\n MsgRevokeAllowance.fromData = function (proto) {\n var granter = proto.granter, grantee = proto.grantee;\n return new MsgRevokeAllowance(granter, grantee);\n };\n MsgRevokeAllowance.prototype.toData = function () {\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 return new MsgRevokeAllowance(proto.granter, proto.grantee);\n };\n MsgRevokeAllowance.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.feegrant.v1beta1.MsgRevokeAllowance',\n value: tx_1.MsgRevokeAllowance.encode(this.toProto()).finish(),\n });\n };\n MsgRevokeAllowance.unpackAny = function (msgAny) {\n return MsgRevokeAllowance.fromProto(tx_1.MsgRevokeAllowance.decode(msgAny.value));\n };\n return MsgRevokeAllowance;\n}(json_1.JSONSerializable));\nexports.MsgRevokeAllowance = MsgRevokeAllowance;\n//# sourceMappingURL=MsgRevokeAllowance.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 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 () {\n var _a = this, proposal_id = _a.proposal_id, depositor = _a.depositor, amount = _a.amount;\n return {\n type: 'gov/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 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 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 return new MsgDeposit(proto.proposalId.toNumber(), proto.depositor, Coins_1.Coins.fromProto(proto.amount));\n };\n MsgDeposit.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.MsgDeposit',\n value: tx_1.MsgDeposit.encode(this.toProto()).finish(),\n });\n };\n MsgDeposit.unpackAny = function (msgAny) {\n return MsgDeposit.fromProto(tx_1.MsgDeposit.decode(msgAny.value));\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) {\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), Coins_1.Coins.fromAmino(initial_deposit), proposer);\n };\n MsgSubmitProposal.prototype.toAmino = function () {\n var _a = this, content = _a.content, initial_deposit = _a.initial_deposit, proposer = _a.proposer;\n return {\n type: 'gov/MsgSubmitProposal',\n value: {\n content: content.toAmino(),\n initial_deposit: initial_deposit.toAmino(),\n proposer: proposer,\n },\n };\n };\n MsgSubmitProposal.fromData = function (data) {\n var content = data.content, initial_deposit = data.initial_deposit, proposer = data.proposer;\n return new MsgSubmitProposal(Proposal_1.Proposal.Content.fromData(content), Coins_1.Coins.fromData(initial_deposit), proposer);\n };\n MsgSubmitProposal.prototype.toData = function () {\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(),\n initial_deposit: initial_deposit.toData(),\n proposer: proposer,\n };\n };\n MsgSubmitProposal.fromProto = function (proto) {\n return new MsgSubmitProposal(Proposal_1.Proposal.Content.fromProto(proto.content), Coins_1.Coins.fromProto(proto.initialDeposit), proto.proposer);\n };\n MsgSubmitProposal.prototype.toProto = function () {\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(),\n initialDeposit: initial_deposit.toProto(),\n proposer: proposer,\n });\n };\n MsgSubmitProposal.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.MsgSubmitProposal',\n value: tx_1.MsgSubmitProposal.encode(this.toProto()).finish(),\n });\n };\n MsgSubmitProposal.unpackAny = function (msgAny) {\n return MsgSubmitProposal.fromProto(tx_1.MsgSubmitProposal.decode(msgAny.value));\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})();\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/terra.proto/google/protobuf/any\");\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 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 () {\n var _a = this, title = _a.title, description = _a.description, recipient = _a.recipient, amount = _a.amount;\n return {\n type: 'distribution/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 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 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 return new CommunityPoolSpendProposal(proto.title, proto.description, proto.recipient, Coins_1.Coins.fromProto(proto.amount));\n };\n CommunityPoolSpendProposal.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal',\n value: distribution_1.CommunityPoolSpendProposal.encode(this.toProto()).finish(),\n });\n };\n CommunityPoolSpendProposal.unpackAny = function (msgAny) {\n return CommunityPoolSpendProposal.fromProto(distribution_1.CommunityPoolSpendProposal.decode(msgAny.value));\n };\n return CommunityPoolSpendProposal;\n}(json_1.JSONSerializable));\nexports.CommunityPoolSpendProposal = CommunityPoolSpendProposal;\n//# sourceMappingURL=CommunityPoolSpendProposal.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 __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 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 () {\n var _a = this, title = _a.title, description = _a.description, changes = _a.changes;\n return {\n type: 'params/ParameterChangeProposal',\n value: {\n title: title,\n description: description,\n changes: changes.toAmino(),\n },\n };\n };\n ParameterChangeProposal.fromData = function (proto) {\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 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 return new ParameterChangeProposal(proto.title, proto.description, ParamChange_1.ParamChanges.fromProto(proto.changes));\n };\n ParameterChangeProposal.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.params.v1beta1.ParameterChangeProposal',\n value: params_1.ParameterChangeProposal.encode(this.toProto()).finish(),\n });\n };\n ParameterChangeProposal.unpackAny = function (msgAny) {\n return ParameterChangeProposal.fromProto(params_1.ParameterChangeProposal.decode(msgAny.value));\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(\"./ClientUpdateProposal\"), 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 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 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 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 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 return new ClientUpdateProposal(proto.title, proto.description, proto.subjectClientId, proto.substituteClientId);\n };\n ClientUpdateProposal.prototype.toProto = function () {\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 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 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 __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 var _a = data.value, title = _a.title, description = _a.description;\n return new TextProposal(title, description);\n };\n TextProposal.prototype.toAmino = function () {\n var _a = this, title = _a.title, description = _a.description;\n return {\n type: 'gov/TextProposal',\n value: {\n title: title,\n description: description,\n },\n };\n };\n TextProposal.fromData = function (proto) {\n var title = proto.title, description = proto.description;\n return new TextProposal(title, description);\n };\n TextProposal.prototype.toData = function () {\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 return new TextProposal(proto.title, proto.description);\n };\n TextProposal.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.gov.v1beta1.TextProposal',\n value: gov_1.TextProposal.encode(this.toProto()).finish(),\n });\n };\n TextProposal.unpackAny = function (msgAny) {\n return TextProposal.fromProto(gov_1.TextProposal.decode(msgAny.value));\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(\"./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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SoftwareUpgradeProposal = void 0;\nvar json_1 = require(\"../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar upgrade_1 = require(\"@terra-money/terra.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 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 () {\n var _a = this, title = _a.title, description = _a.description, plan = _a.plan;\n return {\n type: 'upgrade/SoftwareUpgradeProposal',\n value: {\n title: title,\n description: description,\n plan: plan ? plan.toAmino() : undefined,\n },\n };\n };\n SoftwareUpgradeProposal.fromData = function (data) {\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 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 return new SoftwareUpgradeProposal(proto.title, proto.description, proto.plan ? Plan_1.Plan.fromProto(proto.plan) : undefined);\n };\n SoftwareUpgradeProposal.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal',\n value: upgrade_1.SoftwareUpgradeProposal.encode(this.toProto()).finish(),\n });\n };\n SoftwareUpgradeProposal.unpackAny = function (msgAny) {\n return SoftwareUpgradeProposal.fromProto(upgrade_1.SoftwareUpgradeProposal.decode(msgAny.value));\n };\n return SoftwareUpgradeProposal;\n}(json_1.JSONSerializable));\nexports.SoftwareUpgradeProposal = SoftwareUpgradeProposal;\n//# sourceMappingURL=SoftwareUpgradeProposal.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 __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/terra.proto/google/protobuf/any\");\nvar upgrade_1 = require(\"@terra-money/terra.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 var _a = data.value, title = _a.title, description = _a.description;\n return new CancelSoftwareUpgradeProposal(title, description);\n };\n CancelSoftwareUpgradeProposal.prototype.toAmino = function () {\n var _a = this, title = _a.title, description = _a.description;\n return {\n type: 'upgrade/CancelSoftwareUpgradeProposal',\n value: {\n title: title,\n description: description,\n },\n };\n };\n CancelSoftwareUpgradeProposal.fromData = function (data) {\n var title = data.title, description = data.description;\n return new CancelSoftwareUpgradeProposal(title, description);\n };\n CancelSoftwareUpgradeProposal.prototype.toData = function () {\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 return new CancelSoftwareUpgradeProposal(proto.title, proto.description);\n };\n CancelSoftwareUpgradeProposal.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal',\n value: upgrade_1.CancelSoftwareUpgradeProposal.encode(this.toProto()).finish(),\n });\n };\n CancelSoftwareUpgradeProposal.unpackAny = function (msgAny) {\n return CancelSoftwareUpgradeProposal.fromProto(upgrade_1.CancelSoftwareUpgradeProposal.decode(msgAny.value));\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})();\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 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 () {\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, option = _a.option;\n return {\n type: 'gov/MsgVote',\n value: {\n proposal_id: proposal_id.toFixed(),\n voter: voter,\n option: option,\n },\n };\n };\n MsgVote.fromData = function (data) {\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 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 return new MsgVote(proto.proposalId.toNumber(), proto.voter, proto.option);\n };\n MsgVote.prototype.toProto = function () {\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 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 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 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 () {\n var _a = this, proposal_id = _a.proposal_id, voter = _a.voter, options = _a.options;\n return {\n type: 'gov/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 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 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 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 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 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 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 __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/terra.proto/terra/market/v1beta1/tx\");\nvar any_1 = require(\"@terra-money/terra.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) {\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 () {\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) {\n return new MsgSwap(proto.trader, Coin_1.Coin.fromProto(proto.offerCoin), proto.askDenom);\n };\n MsgSwap.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.market.v1beta1.MsgSwap',\n value: tx_1.MsgSwap.encode(this.toProto()).finish(),\n });\n };\n MsgSwap.unpackAny = function (msgAny) {\n return MsgSwap.fromProto(tx_1.MsgSwap.decode(msgAny.value));\n };\n MsgSwap.fromData = function (data) {\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 () {\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/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.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) {\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 () {\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) {\n return new MsgSwapSend(proto.fromAddress, proto.toAddress, Coin_1.Coin.fromProto(proto.offerCoin), proto.askDenom);\n };\n MsgSwapSend.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.market.v1beta1.MsgSwapSend',\n value: tx_1.MsgSwapSend.encode(this.toProto()).finish(),\n });\n };\n MsgSwapSend.unpackAny = function (msgAny) {\n return MsgSwapSend.fromProto(tx_1.MsgSwapSend.decode(msgAny.value));\n };\n MsgSwapSend.fromData = function (data) {\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 () {\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 __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) {\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));\n };\n MsgGrantAuthorization.prototype.toAmino = function () {\n var _a = this, granter = _a.granter, grantee = _a.grantee, grant = _a.grant;\n return {\n type: 'msgauth/MsgGrantAuthorization',\n value: {\n granter: granter,\n grantee: grantee,\n grant: grant.toAmino(),\n },\n };\n };\n MsgGrantAuthorization.fromData = function (data) {\n var granter = data.granter, grantee = data.grantee, grant = data.grant;\n return new MsgGrantAuthorization(granter, grantee, authorizations_1.AuthorizationGrant.fromData(grant));\n };\n MsgGrantAuthorization.prototype.toData = function () {\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(),\n };\n };\n MsgGrantAuthorization.fromProto = function (data) {\n return new MsgGrantAuthorization(data.granter, data.grantee, authorizations_1.AuthorizationGrant.fromProto(data.grant));\n };\n MsgGrantAuthorization.prototype.toProto = function () {\n var _a = this, grant = _a.grant, granter = _a.granter, grantee = _a.grantee;\n return tx_1.MsgGrant.fromPartial({\n grant: grant.toProto(),\n grantee: grantee,\n granter: granter,\n });\n };\n MsgGrantAuthorization.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.MsgGrant',\n value: tx_1.MsgGrant.encode(this.toProto()).finish(),\n });\n };\n MsgGrantAuthorization.unpackAny = function (msgAny) {\n return MsgGrantAuthorization.fromProto(tx_1.MsgGrant.decode(msgAny.value));\n };\n return MsgGrantAuthorization;\n}(json_1.JSONSerializable));\nexports.MsgGrantAuthorization = MsgGrantAuthorization;\n//# sourceMappingURL=MsgGrantAuthorization.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/** AuthorizationType defines the type of staking module authorization type */\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.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 __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) {\n var authorization = amino.authorization, expiration = amino.expiration;\n return new AuthorizationGrant(Authorization.fromAmino(authorization), new Date(expiration));\n };\n AuthorizationGrant.prototype.toAmino = function () {\n var _a = this, authorization = _a.authorization, expiration = _a.expiration;\n return {\n authorization: authorization.toAmino(),\n expiration: expiration.toISOString().replace(/\\.000Z$/, 'Z'),\n };\n };\n AuthorizationGrant.fromData = function (data) {\n var authorization = data.authorization, expiration = data.expiration;\n return new AuthorizationGrant(Authorization.fromData(authorization), new Date(expiration));\n };\n AuthorizationGrant.prototype.toData = function () {\n var _a = this, authorization = _a.authorization, expiration = _a.expiration;\n return {\n authorization: authorization.toData(),\n expiration: expiration.toISOString().replace(/\\.000Z$/, 'Z'),\n };\n };\n AuthorizationGrant.fromProto = function (proto) {\n return new AuthorizationGrant(Authorization.fromProto(proto.authorization), proto.expiration);\n };\n AuthorizationGrant.prototype.toProto = function () {\n var _a = this, authorization = _a.authorization, expiration = _a.expiration;\n return authz_1.Grant.fromPartial({\n authorization: authorization.packAny(),\n expiration: expiration,\n });\n };\n return AuthorizationGrant;\n}(json_1.JSONSerializable));\nexports.AuthorizationGrant = AuthorizationGrant;\nvar Authorization;\n(function (Authorization) {\n function fromAmino(data) {\n switch (data.type) {\n case 'msgauth/SendAuthorization':\n return SendAuthorization_1.SendAuthorization.fromAmino(data);\n case 'msgauth/GenericAuthorization':\n return GenericAuthorization_1.GenericAuthorization.fromAmino(data);\n }\n }\n Authorization.fromAmino = fromAmino;\n function fromData(data) {\n switch (data['@type']) {\n case '/cosmos.authz.v1beta1.GenericAuthorization':\n return GenericAuthorization_1.GenericAuthorization.fromData(data);\n case '/cosmos.bank.v1beta1.SendAuthorization':\n return SendAuthorization_1.SendAuthorization.fromData(data);\n case '/cosmos.staking.v1beta1.StakeAuthorization':\n return StakeAuthorization_1.StakeAuthorization.fromData(data);\n }\n }\n Authorization.fromData = fromData;\n function fromProto(proto) {\n var typeUrl = proto.typeUrl;\n switch (typeUrl) {\n case '/cosmos.authz.v1beta1.GenericAuthorization':\n return GenericAuthorization_1.GenericAuthorization.unpackAny(proto);\n case '/cosmos.bank.v1beta1.SendAuthorization':\n return SendAuthorization_1.SendAuthorization.unpackAny(proto);\n case '/cosmos.staking.v1beta1.StakeAuthorization':\n return StakeAuthorization_1.StakeAuthorization.unpackAny(proto);\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.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 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 () {\n var _a = this, granter = _a.granter, grantee = _a.grantee, msg_type_url = _a.msg_type_url;\n return {\n type: 'msgauth/MsgRevokeAuthorization',\n value: {\n granter: granter,\n grantee: grantee,\n msg_type_url: msg_type_url,\n },\n };\n };\n MsgRevokeAuthorization.fromData = function (data) {\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 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 return new MsgRevokeAuthorization(proto.granter, proto.grantee, proto.msgTypeUrl);\n };\n MsgRevokeAuthorization.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.MsgRevoke',\n value: tx_1.MsgRevoke.encode(this.toProto()).finish(),\n });\n };\n MsgRevokeAuthorization.unpackAny = function (msgAny) {\n return MsgRevokeAuthorization.fromProto(tx_1.MsgRevoke.decode(msgAny.value));\n };\n return MsgRevokeAuthorization;\n}(json_1.JSONSerializable));\nexports.MsgRevokeAuthorization = MsgRevokeAuthorization;\n//# sourceMappingURL=MsgRevokeAuthorization.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) {\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); }));\n };\n MsgExecAuthorized.prototype.toAmino = function () {\n var _a = this, grantee = _a.grantee, msgs = _a.msgs;\n return {\n type: 'msgauth/MsgExecAuthorized',\n value: {\n grantee: grantee,\n msgs: msgs.map(function (msg) {\n return msg.toAmino();\n }),\n },\n };\n };\n MsgExecAuthorized.fromData = function (proto) {\n var grantee = proto.grantee, msgs = proto.msgs;\n return new MsgExecAuthorized(grantee, msgs.map(function (x) { return Msg_1.Msg.fromData(x); }));\n };\n MsgExecAuthorized.prototype.toData = function () {\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(); }),\n };\n };\n MsgExecAuthorized.fromProto = function (proto) {\n return new MsgExecAuthorized(proto.grantee, proto.msgs.map(function (x) { return Msg_1.Msg.fromProto(x); }));\n };\n MsgExecAuthorized.prototype.toProto = function () {\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(); }),\n });\n };\n MsgExecAuthorized.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.authz.v1beta1.MsgExec',\n value: tx_1.MsgExec.encode(this.toProto()).finish(),\n });\n };\n MsgExecAuthorized.unpackAny = function (msgAny) {\n return MsgExecAuthorized.fromProto(tx_1.MsgExec.decode(msgAny.value));\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.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/terra.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) {\n var _a = data.value, operator = _a.operator, delegate = _a.delegate;\n return new MsgDelegateFeedConsent(operator, delegate);\n };\n MsgDelegateFeedConsent.prototype.toAmino = function () {\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) {\n var operator = data.operator, delegate = data.delegate;\n return new MsgDelegateFeedConsent(operator, delegate);\n };\n MsgDelegateFeedConsent.prototype.toData = function () {\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) {\n return new MsgDelegateFeedConsent(proto.operator, proto.delegate);\n };\n MsgDelegateFeedConsent.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.oracle.v1beta1.MsgDelegateFeedConsent',\n value: tx_1.MsgDelegateFeedConsent.encode(this.toProto()).finish(),\n });\n };\n MsgDelegateFeedConsent.unpackAny = function (msgAny) {\n return MsgDelegateFeedConsent.fromProto(tx_1.MsgDelegateFeedConsent.decode(msgAny.value));\n };\n return MsgDelegateFeedConsent;\n}(json_1.JSONSerializable));\nexports.MsgDelegateFeedConsent = MsgDelegateFeedConsent;\n//# sourceMappingURL=MsgDelegateFeedConsent.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/terra.proto/google/protobuf/any\");\nvar tx_1 = require(\"@terra-money/terra.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) {\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 () {\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) {\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 () {\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) {\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 () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.oracle.v1beta1.MsgAggregateExchangeRateVote',\n value: tx_1.MsgAggregateExchangeRateVote.encode(this.toProto()).finish(),\n });\n };\n MsgAggregateExchangeRateVote.unpackAny = function (msgAny) {\n return MsgAggregateExchangeRateVote.fromProto(tx_1.MsgAggregateExchangeRateVote.decode(msgAny.value));\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.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 var address = data.value.address;\n return new MsgUnjail(address);\n };\n MsgUnjail.prototype.toAmino = function () {\n var address = this.address;\n return {\n type: 'slashing/MsgUnjail',\n value: {\n address: address,\n },\n };\n };\n MsgUnjail.fromData = function (proto) {\n var address = proto.address;\n return new MsgUnjail(address);\n };\n MsgUnjail.prototype.toData = function () {\n var address = this.address;\n return {\n '@type': '/cosmos.slashing.v1beta1.MsgUnjail',\n address: address,\n };\n };\n MsgUnjail.fromProto = function (proto) {\n return new MsgUnjail(proto.validatorAddr);\n };\n MsgUnjail.prototype.toProto = function () {\n var address = this.address;\n return tx_1.MsgUnjail.fromPartial({\n validatorAddr: address,\n });\n };\n MsgUnjail.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.slashing.v1beta1.MsgUnjail',\n value: tx_1.MsgUnjail.encode(this.toProto()).finish(),\n });\n };\n MsgUnjail.unpackAny = function (msgAny) {\n return MsgUnjail.fromProto(tx_1.MsgUnjail.decode(msgAny.value));\n };\n return MsgUnjail;\n}(json_1.JSONSerializable));\nexports.MsgUnjail = MsgUnjail;\n//# sourceMappingURL=MsgUnjail.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.MsgUnjailResponse = exports.MsgUnjail = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\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) {\n const data = exports.MsgUnjail.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Msg\", \"Unjail\", data);\n return promise.then((data) => exports.MsgUnjailResponse.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 __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\");\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 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 () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return {\n type: 'staking/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 return new MsgDelegate(proto.delegatorAddress, proto.validatorAddress, Coin_1.Coin.fromProto(proto.amount));\n };\n MsgDelegate.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgDelegate',\n value: tx_1.MsgDelegate.encode(this.toProto()).finish(),\n });\n };\n MsgDelegate.unpackAny = function (msgAny) {\n return MsgDelegate.fromProto(tx_1.MsgDelegate.decode(msgAny.value));\n };\n MsgDelegate.fromData = function (data) {\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 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 __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.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 __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\");\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 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 () {\n var _a = this, delegator_address = _a.delegator_address, validator_address = _a.validator_address, amount = _a.amount;\n return {\n type: 'staking/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 return new MsgUndelegate(proto.delegatorAddress, proto.validatorAddress, Coin_1.Coin.fromProto(proto.amount));\n };\n MsgUndelegate.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgUndelegate',\n value: tx_1.MsgUndelegate.encode(this.toProto()).finish(),\n });\n };\n MsgUndelegate.unpackAny = function (msgAny) {\n return MsgUndelegate.fromProto(tx_1.MsgUndelegate.decode(msgAny.value));\n };\n MsgUndelegate.fromData = function (data) {\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 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 __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\");\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 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 () {\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: 'staking/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 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 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 return new MsgBeginRedelegate(proto.delegatorAddress, proto.validatorSrcAddress, proto.validatorDstAddress, Coin_1.Coin.fromProto(proto.amount));\n };\n MsgBeginRedelegate.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, 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgBeginRedelegate',\n value: tx_1.MsgBeginRedelegate.encode(this.toProto()).finish(),\n });\n };\n MsgBeginRedelegate.unpackAny = function (msgAny) {\n return MsgBeginRedelegate.fromProto(tx_1.MsgBeginRedelegate.decode(msgAny.value));\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\");\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 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 () {\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: 'staking/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 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 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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgCreateValidator',\n value: tx_1.MsgCreateValidator.encode(this.toProto()).finish(),\n });\n };\n MsgCreateValidator.unpackAny = function (msgAny) {\n return MsgCreateValidator.fromProto(tx_1.MsgCreateValidator.decode(msgAny.value));\n };\n return MsgCreateValidator;\n}(json_1.JSONSerializable));\nexports.MsgCreateValidator = MsgCreateValidator;\n//# sourceMappingURL=MsgCreateValidator.js.map","'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","/*! 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","!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(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}()}));","\"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.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.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 __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\");\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 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 () {\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: 'staking/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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.staking.v1beta1.MsgEditValidator',\n value: tx_1.MsgEditValidator.encode(this.toProto()).finish(),\n });\n };\n MsgEditValidator.unpackAny = function (msgAny) {\n return MsgEditValidator.fromProto(tx_1.MsgEditValidator.decode(msgAny.value));\n };\n MsgEditValidator.fromData = function (data) {\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 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.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/terra.proto/terra/wasm/v1beta1/tx\");\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 */\n function MsgStoreCode(sender, wasm_byte_code) {\n var _this = _super.call(this) || this;\n _this.sender = sender;\n _this.wasm_byte_code = wasm_byte_code;\n return _this;\n }\n MsgStoreCode.fromAmino = function (data) {\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 MsgStoreCode.prototype.toAmino = function () {\n var _a = this, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code;\n return {\n type: 'wasm/MsgStoreCode',\n value: {\n sender: sender,\n wasm_byte_code: wasm_byte_code,\n },\n };\n };\n MsgStoreCode.fromProto = function (proto) {\n return new MsgStoreCode(proto.sender, Buffer.from(proto.wasmByteCode).toString('base64'));\n };\n MsgStoreCode.prototype.toProto = function () {\n var _a = this, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code;\n return tx_1.MsgStoreCode.fromPartial({\n sender: sender,\n wasmByteCode: Buffer.from(wasm_byte_code, 'base64'),\n });\n };\n MsgStoreCode.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgStoreCode',\n value: tx_1.MsgStoreCode.encode(this.toProto()).finish(),\n });\n };\n MsgStoreCode.unpackAny = function (msgAny) {\n return MsgStoreCode.fromProto(tx_1.MsgStoreCode.decode(msgAny.value));\n };\n MsgStoreCode.fromData = function (data) {\n var sender = data.sender, wasm_byte_code = data.wasm_byte_code;\n return new MsgStoreCode(sender, wasm_byte_code);\n };\n MsgStoreCode.prototype.toData = function () {\n var _a = this, sender = _a.sender, wasm_byte_code = _a.wasm_byte_code;\n return {\n '@type': '/terra.wasm.v1beta1.MsgStoreCode',\n sender: sender,\n wasm_byte_code: wasm_byte_code,\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})();\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/terra.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) {\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 () {\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) {\n return new MsgMigrateCode(proto.sender, proto.codeId.toNumber(), Buffer.from(proto.wasmByteCode).toString('base64'));\n };\n MsgMigrateCode.prototype.toProto = function () {\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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgMigrateCode',\n value: tx_1.MsgMigrateCode.encode(this.toProto()).finish(),\n });\n };\n MsgMigrateCode.unpackAny = function (msgAny) {\n return MsgMigrateCode.fromProto(tx_1.MsgMigrateCode.decode(msgAny.value));\n };\n MsgMigrateCode.fromData = function (data) {\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 () {\n var _a = this, sender = _a.sender, code_id = _a.code_id, wasm_byte_code = _a.wasm_byte_code;\n return {\n '@type': '/terra.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.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/terra.proto/terra/wasm/v1beta1/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 */\n function MsgInstantiateContract(sender, admin, code_id, init_msg, init_coins) {\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.init_coins = new Coins_1.Coins(init_coins);\n return _this;\n }\n MsgInstantiateContract.fromAmino = function (data) {\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 MsgInstantiateContract.prototype.toAmino = function () {\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;\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 MsgInstantiateContract.fromProto = function (proto) {\n return new MsgInstantiateContract(proto.sender, proto.admin !== '' ? proto.admin : undefined, proto.codeId.toNumber(), JSON.parse(Buffer.from(proto.initMsg).toString('utf-8')), Coins_1.Coins.fromProto(proto.initCoins));\n };\n MsgInstantiateContract.prototype.toProto = function () {\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;\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 MsgInstantiateContract.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgInstantiateContract',\n value: tx_1.MsgInstantiateContract.encode(this.toProto()).finish(),\n });\n };\n MsgInstantiateContract.unpackAny = function (msgAny) {\n return MsgInstantiateContract.fromProto(tx_1.MsgInstantiateContract.decode(msgAny.value));\n };\n MsgInstantiateContract.fromData = function (data) {\n var sender = data.sender, admin = data.admin, code_id = data.code_id, init_msg = data.init_msg, init_coins = data.init_coins;\n return new MsgInstantiateContract(sender, admin !== '' ? admin : undefined, Number.parseInt(code_id), init_msg, Coins_1.Coins.fromData(init_coins));\n };\n MsgInstantiateContract.prototype.toData = function () {\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;\n return {\n '@type': '/terra.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 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})();\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/terra.proto/terra/wasm/v1beta1/tx\");\nvar MsgExecuteContract = /** @class */ (function (_super) {\n __extends(MsgExecuteContract, _super);\n /**\n * @param sender contract user\n * @param contract contract address\n * @param 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) {\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 MsgExecuteContract.prototype.toAmino = function () {\n var _a = this, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\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 MsgExecuteContract.fromProto = function (data) {\n return new MsgExecuteContract(data.sender, data.contract, JSON.parse(Buffer.from(data.executeMsg).toString('utf-8')), Coins_1.Coins.fromProto(data.coins));\n };\n MsgExecuteContract.prototype.toProto = function () {\n var _a = this, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\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 MsgExecuteContract.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgExecuteContract',\n value: tx_1.MsgExecuteContract.encode(this.toProto()).finish(),\n });\n };\n MsgExecuteContract.unpackAny = function (msgAny) {\n return MsgExecuteContract.fromProto(tx_1.MsgExecuteContract.decode(msgAny.value));\n };\n MsgExecuteContract.fromData = function (data) {\n var sender = data.sender, contract = data.contract, execute_msg = data.execute_msg, coins = data.coins;\n return new MsgExecuteContract(sender, contract, execute_msg, Coins_1.Coins.fromData(coins));\n };\n MsgExecuteContract.prototype.toData = function () {\n var _a = this, sender = _a.sender, contract = _a.contract, execute_msg = _a.execute_msg, coins = _a.coins;\n return {\n '@type': '/terra.wasm.v1beta1.MsgExecuteContract',\n sender: sender,\n contract: contract,\n execute_msg: execute_msg,\n coins: coins.toData(),\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.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/terra.proto/terra/wasm/v1beta1/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) {\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 MsgMigrateContract.prototype.toAmino = function () {\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 MsgMigrateContract.fromProto = function (proto) {\n return new MsgMigrateContract(proto.admin, proto.contract, proto.newCodeId.toNumber(), JSON.parse(Buffer.from(proto.migrateMsg).toString('utf-8')));\n };\n MsgMigrateContract.prototype.toProto = function () {\n var _a = this, admin = _a.admin, contract = _a.contract, new_code_id = _a.new_code_id, migrate_msg = _a.migrate_msg;\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 MsgMigrateContract.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgMigrateContract',\n value: tx_1.MsgMigrateContract.encode(this.toProto()).finish(),\n });\n };\n MsgMigrateContract.unpackAny = function (msgAny) {\n return MsgMigrateContract.fromProto(tx_1.MsgMigrateContract.decode(msgAny.value));\n };\n MsgMigrateContract.fromData = function (data) {\n var admin = data.admin, contract = data.contract, new_code_id = data.new_code_id, migrate_msg = data.migrate_msg;\n return new MsgMigrateContract(admin, contract, Number.parseInt(new_code_id), migrate_msg);\n };\n MsgMigrateContract.prototype.toData = function () {\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': '/terra.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 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.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/terra.proto/terra/wasm/v1beta1/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) {\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 MsgUpdateContractAdmin.prototype.toAmino = function () {\n var _a = this, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n return {\n type: 'wasm/MsgUpdateContractAdmin',\n value: {\n admin: admin,\n new_admin: new_admin,\n contract: contract,\n },\n };\n };\n MsgUpdateContractAdmin.fromProto = function (proto) {\n return new MsgUpdateContractAdmin(proto.admin, proto.newAdmin, proto.contract);\n };\n MsgUpdateContractAdmin.prototype.toProto = function () {\n var _a = this, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n return tx_1.MsgUpdateContractAdmin.fromPartial({\n admin: admin,\n contract: contract,\n newAdmin: new_admin,\n });\n };\n MsgUpdateContractAdmin.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgUpdateContractAdmin',\n value: tx_1.MsgUpdateContractAdmin.encode(this.toProto()).finish(),\n });\n };\n MsgUpdateContractAdmin.unpackAny = function (msgAny) {\n return MsgUpdateContractAdmin.fromProto(tx_1.MsgUpdateContractAdmin.decode(msgAny.value));\n };\n MsgUpdateContractAdmin.fromData = function (data) {\n var admin = data.admin, new_admin = data.new_admin, contract = data.contract;\n return new MsgUpdateContractAdmin(admin, new_admin, contract);\n };\n MsgUpdateContractAdmin.prototype.toData = function () {\n var _a = this, admin = _a.admin, new_admin = _a.new_admin, contract = _a.contract;\n return {\n '@type': '/terra.wasm.v1beta1.MsgUpdateContractAdmin',\n admin: admin,\n new_admin: new_admin,\n contract: contract,\n };\n };\n return MsgUpdateContractAdmin;\n}(json_1.JSONSerializable));\nexports.MsgUpdateContractAdmin = MsgUpdateContractAdmin;\n//# sourceMappingURL=MsgUpdateContractAdmin.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/terra.proto/terra/wasm/v1beta1/tx\");\nvar MsgClearContractAdmin = /** @class */ (function (_super) {\n __extends(MsgClearContractAdmin, _super);\n /**\n * @param admin contract admin\n * @param new_admin new 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) {\n var _a = data.value, admin = _a.admin, contract = _a.contract;\n return new MsgClearContractAdmin(admin, contract);\n };\n MsgClearContractAdmin.prototype.toAmino = function () {\n var _a = this, admin = _a.admin, contract = _a.contract;\n return {\n type: 'wasm/MsgClearContractAdmin',\n value: {\n admin: admin,\n contract: contract,\n },\n };\n };\n MsgClearContractAdmin.fromProto = function (data) {\n return new MsgClearContractAdmin(data.admin, data.contract);\n };\n MsgClearContractAdmin.prototype.toProto = function () {\n return tx_1.MsgClearContractAdmin.fromPartial({\n admin: this.admin,\n contract: this.contract,\n });\n };\n MsgClearContractAdmin.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/terra.wasm.v1beta1.MsgClearContractAdmin',\n value: tx_1.MsgClearContractAdmin.encode(this.toProto()).finish(),\n });\n };\n MsgClearContractAdmin.unpackAny = function (msgAny) {\n return MsgClearContractAdmin.fromProto(tx_1.MsgClearContractAdmin.decode(msgAny.value));\n };\n MsgClearContractAdmin.fromData = function (data) {\n var admin = data.admin, contract = data.contract;\n return new MsgClearContractAdmin(admin, contract);\n };\n MsgClearContractAdmin.prototype.toData = function () {\n return {\n '@type': '/terra.wasm.v1beta1.MsgClearContractAdmin',\n admin: this.admin,\n contract: this.contract,\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})();\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(\"../../ibc/msgs/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 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 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 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 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 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 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 () {\n return any_1.Any.fromPartial({\n typeUrl: '/ibc.applications.transfer.v1.MsgTransfer',\n value: tx_1.MsgTransfer.encode(this.toProto()).finish(),\n });\n };\n MsgTransfer.unpackAny = function (msgAny) {\n return MsgTransfer.fromProto(tx_1.MsgTransfer.decode(msgAny.value));\n };\n return MsgTransfer;\n}(json_1.JSONSerializable));\nexports.MsgTransfer = MsgTransfer;\n//# sourceMappingURL=MsgTransfer.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.MsgTransferResponse = exports.MsgTransfer = 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\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\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) {\n const data = exports.MsgTransfer.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Msg\", \"Transfer\", data);\n return promise.then((data) => exports.MsgTransferResponse.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 __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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgCreateClient.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgCreateClient.fromData = function (data) {\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 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 return new MsgCreateClient(proto.clientState, proto.consensusState, proto.signer);\n };\n MsgCreateClient.prototype.toProto = function () {\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 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 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.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\");\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 (_) {\n _;\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 var client_id = data.client_id, header = data.header, signer = data.signer;\n return new MsgUpdateClient(client_id, header, signer);\n };\n MsgUpdateClient.prototype.toData = function () {\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,\n signer: signer,\n };\n };\n MsgUpdateClient.fromProto = function (proto) {\n return new MsgUpdateClient(proto.clientId, proto.header, proto.signer);\n };\n MsgUpdateClient.prototype.toProto = function () {\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,\n signer: signer,\n });\n };\n MsgUpdateClient.prototype.packAny = function () {\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 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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgUpgradeClient.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgUpgradeClient.fromData = function (data) {\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 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 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 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 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 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 __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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgSubmitMisbehaviour.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgSubmitMisbehaviour.fromData = function (data) {\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 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 return new MsgSubmitMisbehaviour(proto.clientId, proto.misbehaviour, proto.signer);\n };\n MsgSubmitMisbehaviour.prototype.toProto = function () {\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 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 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})();\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(\"./Counterparty\");\nvar Version_1 = require(\"./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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenInit.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenInit.fromData = function (data) {\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 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 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 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 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 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 __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 __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})();\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(\"./Counterparty\");\nvar Version_1 = require(\"./Version\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/tx\");\nvar long_1 = __importDefault(require(\"long\"));\nvar Height_1 = require(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenTry.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenTry.fromData = function (data) {\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 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 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 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 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 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 __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(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenConfirm.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenConfirm.fromData = function (data) {\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 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 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 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 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 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})();\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(\"./Version\");\nvar tx_1 = require(\"@terra-money/terra.proto/ibc/core/connection/v1/tx\");\nvar Height_1 = require(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenAck.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgConnectionOpenAck.fromData = function (data) {\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 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 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 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 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 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.MsgChannelOpenInit = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Channel_1 = require(\"./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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenInit.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgChannelOpenInit.fromData = function (data) {\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 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 return new MsgChannelOpenInit(proto.portId, proto.channel ? Channel_1.Channel.fromProto(proto.channel) : undefined, proto.signer);\n };\n MsgChannelOpenInit.prototype.toProto = function () {\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 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 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.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})();\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(\"./Channel\");\nvar Height_1 = require(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenTry.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgChannelOpenTry.fromData = function (data) {\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 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 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 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 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 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.MsgChannelOpenConfirm = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenConfirm.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgChannelOpenConfirm.fromData = function (data) {\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 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 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 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 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 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.MsgChannelOpenAck = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelOpenAck.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgChannelOpenAck.fromData = function (data) {\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 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 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 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 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 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.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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelCloseInit.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgChannelCloseInit.fromData = function (data) {\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 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 return new MsgChannelCloseInit(proto.portId, proto.channelId, proto.signer);\n };\n MsgChannelCloseInit.prototype.toProto = function () {\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 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 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.MsgChannelCloseConfirm = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgChannelCloseConfirm.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgChannelCloseConfirm.fromData = function (data) {\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 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 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 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 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 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.MsgRecvPacket = void 0;\nvar json_1 = require(\"../../../../util/json\");\nvar any_1 = require(\"@terra-money/terra.proto/google/protobuf/any\");\nvar Height_1 = require(\"../client/Height\");\nvar Packet_1 = require(\"./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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgRecvPacket.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgRecvPacket.fromData = function (data) {\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 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 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 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 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 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})();\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(\"../client/Height\");\nvar Packet_1 = require(\"./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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgAcknowledgement.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgAcknowledgement.fromData = function (data) {\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 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 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 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 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 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})();\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(\"../client/Height\");\nvar Packet_1 = require(\"./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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgTimeout.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgTimeout.fromData = function (data) {\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 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 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 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 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 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(\"../client/Height\");\nvar Packet_1 = require(\"./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 (_) {\n _;\n throw new Error('Amino not supported');\n };\n MsgTimeoutOnClose.prototype.toAmino = function () {\n throw new Error('Amino not supported');\n };\n MsgTimeoutOnClose.fromData = function (data) {\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 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 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 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 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 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(\"./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.MsgVerifyInvariant = 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/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 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 throw new Error('MsgVerifyInvarant is not allowed to send');\n };\n MsgVerifyInvariant.fromData = function (data) {\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 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 return new MsgVerifyInvariant(proto.sender, proto.invariantModuleName, proto.invariantRoute);\n };\n MsgVerifyInvariant.prototype.toProto = function () {\n throw new Error('MsgVerifyInvarant is not allowed to send');\n };\n MsgVerifyInvariant.prototype.packAny = function () {\n return any_1.Any.fromPartial({\n typeUrl: '/cosmos.crisis.v1beta1.MsgVerifyInvariant',\n value: tx_1.MsgVerifyInvariant.encode(this.toProto()).finish(),\n });\n };\n MsgVerifyInvariant.unpackAny = function (msgAny) {\n return MsgVerifyInvariant.fromProto(tx_1.MsgVerifyInvariant.decode(msgAny.value));\n };\n return MsgVerifyInvariant;\n}(json_1.JSONSerializable));\nexports.MsgVerifyInvariant = MsgVerifyInvariant;\n//# sourceMappingURL=MsgVerifyInvariant.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.MsgVerifyInvariantResponse = exports.MsgVerifyInvariant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\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) {\n const data = exports.MsgVerifyInvariant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.crisis.v1beta1.Msg\", \"VerifyInvariant\", data);\n return promise.then((data) => exports.MsgVerifyInvariantResponse.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 __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 () {\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(); }),\n memo: memo !== null && memo !== void 0 ? memo : '',\n };\n };\n SignDoc.prototype.toData = function () {\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()).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 () {\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(),\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 () {\n return tx_1.SignDoc.encode(this.toProto()).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.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) {\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), 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\";\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.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 __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\";\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar BaseAccount_1 = require(\"./BaseAccount\");\nvar LazyGradedVestingAccount_1 = require(\"./LazyGradedVestingAccount\");\n/**\n * Stores information about an account fetched from the blockchain.\n */\nvar Account;\n(function (Account) {\n function fromAmino(amino) {\n switch (amino.type) {\n case 'core/Account':\n return BaseAccount_1.BaseAccount.fromAmino(amino);\n case 'core/LazyGradedVestingAccount':\n return LazyGradedVestingAccount_1.LazyGradedVestingAccount.fromAmino(amino);\n }\n }\n Account.fromAmino = fromAmino;\n function fromData(data) {\n switch (data['@type']) {\n case '/cosmos.auth.v1beta1.BaseAccount':\n return BaseAccount_1.BaseAccount.fromData(data);\n case '/terra.vesting.v1beta1.LazyGradedVestingAccount':\n return LazyGradedVestingAccount_1.LazyGradedVestingAccount.fromData(data);\n }\n }\n Account.fromData = fromData;\n function fromProto(accountAny) {\n var typeUrl = accountAny.typeUrl;\n if (typeUrl === '/cosmos.auth.v1beta1.BaseAccount') {\n return BaseAccount_1.BaseAccount.unpackAny(accountAny);\n }\n else if (typeUrl === '/terra.vesting.v1beta1.LazyGradedVestingAccount') {\n return LazyGradedVestingAccount_1.LazyGradedVestingAccount.unpackAny(accountAny);\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 __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 BaseAccount account information\n * @param original_vesting initial vesting amount\n * @param delegated_free\n * @param delegated_vesting\n * @param end_time -not used-\n * @param vesting_schedules Entries that make up vesting\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 () {\n undefined;\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: 'core/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) {\n var base_account = BaseAccount_1.BaseAccount.fromAmino({\n type: 'core/Account',\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 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': '/terra.vesting.v1beta1.LazyGradedVestingAccount',\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 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 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 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 __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 __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/terra.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/terra.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})();\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})();\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/terra.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 __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\";\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 return checkPrefixAndLength('terra', data, 44);\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('terra', 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 Terra account's public key\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('terrapub', data, 47);\n }\n AccPubKey.validate = validate;\n /**\n * Converts a Terra 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('terrapub', 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 Terra validator address.\n *\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('terravaloper', data, 51);\n }\n ValAddress.validate = validate;\n /**\n * Converts a Terra 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('terravaloper', 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 Terra validator pubkey\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('terravaloperpub', data, 54);\n }\n ValPubKey.validate = validate;\n /**\n * Converts a Terra 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('terravaloperpub', 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 Terra validator consensus address\n * @param data string to check\n */\n function validate(data) {\n return checkPrefixAndLength('terravalcons', data, 51);\n }\n ValConsAddress.validate = validate;\n})(ValConsAddress = exports.ValConsAddress || (exports.ValConsAddress = {}));\n//# sourceMappingURL=bech32.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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar bip32_1 = require(\"./bip32\");\nexports.fromSeed = bip32_1.fromSeed;\nexports.fromBase58 = bip32_1.fromBase58;\nexports.fromPublicKey = bip32_1.fromPublicKey;\nexports.fromPrivateKey = bip32_1.fromPrivateKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"./crypto\");\nconst bs58check = require('bs58check');\nconst ecc = require('tiny-secp256k1');\nconst typeforce = require('typeforce');\nconst wif = require('wif');\nconst UINT256_TYPE = typeforce.BufferN(32);\nconst NETWORK_TYPE = typeforce.compile({\n wif: typeforce.UInt8,\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n});\nconst BITCOIN = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nconst HIGHEST_BIT = 0x80000000;\nconst UINT31_MAX = Math.pow(2, 31) - 1;\nfunction BIP32Path(value) {\n return (typeforce.String(value) && value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/) !== null);\n}\nfunction UInt31(value) {\n return typeforce.UInt32(value) && value <= UINT31_MAX;\n}\nclass BIP32 {\n constructor(__D, __Q, chainCode, network, __DEPTH = 0, __INDEX = 0, __PARENT_FINGERPRINT = 0x00000000) {\n this.__D = __D;\n this.__Q = __Q;\n this.chainCode = chainCode;\n this.network = network;\n this.__DEPTH = __DEPTH;\n this.__INDEX = __INDEX;\n this.__PARENT_FINGERPRINT = __PARENT_FINGERPRINT;\n typeforce(NETWORK_TYPE, network);\n this.lowR = false;\n }\n get depth() {\n return this.__DEPTH;\n }\n get index() {\n return this.__INDEX;\n }\n get parentFingerprint() {\n return this.__PARENT_FINGERPRINT;\n }\n get publicKey() {\n if (this.__Q === undefined)\n this.__Q = ecc.pointFromScalar(this.__D, true);\n return this.__Q;\n }\n get privateKey() {\n return this.__D;\n }\n get identifier() {\n return crypto.hash160(this.publicKey);\n }\n get fingerprint() {\n return this.identifier.slice(0, 4);\n }\n get compressed() {\n return true;\n }\n // Private === not neutered\n // Public === neutered\n isNeutered() {\n return this.__D === undefined;\n }\n neutered() {\n return fromPublicKeyLocal(this.publicKey, this.chainCode, this.network, this.depth, this.index, this.parentFingerprint);\n }\n toBase58() {\n const network = this.network;\n const version = !this.isNeutered()\n ? network.bip32.private\n : network.bip32.public;\n const buffer = Buffer.allocUnsafe(78);\n // 4 bytes: version bytes\n buffer.writeUInt32BE(version, 0);\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ....\n buffer.writeUInt8(this.depth, 4);\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n buffer.writeUInt32BE(this.parentFingerprint, 5);\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in big endian. (0x00000000 if master key)\n buffer.writeUInt32BE(this.index, 9);\n // 32 bytes: the chain code\n this.chainCode.copy(buffer, 13);\n // 33 bytes: the public key or private key data\n if (!this.isNeutered()) {\n // 0x00 + k for private keys\n buffer.writeUInt8(0, 45);\n this.privateKey.copy(buffer, 46);\n // 33 bytes: the public key\n }\n else {\n // X9.62 encoding for public keys\n this.publicKey.copy(buffer, 45);\n }\n return bs58check.encode(buffer);\n }\n toWIF() {\n if (!this.privateKey)\n throw new TypeError('Missing private key');\n return wif.encode(this.network.wif, this.privateKey, true);\n }\n // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions\n derive(index) {\n typeforce(typeforce.UInt32, index);\n const isHardened = index >= HIGHEST_BIT;\n const data = Buffer.allocUnsafe(37);\n // Hardened child\n if (isHardened) {\n if (this.isNeutered())\n throw new TypeError('Missing private key for hardened child key');\n // data = 0x00 || ser256(kpar) || ser32(index)\n data[0] = 0x00;\n this.privateKey.copy(data, 1);\n data.writeUInt32BE(index, 33);\n // Normal child\n }\n else {\n // data = serP(point(kpar)) || ser32(index)\n // = serP(Kpar) || ser32(index)\n this.publicKey.copy(data, 0);\n data.writeUInt32BE(index, 33);\n }\n const I = crypto.hmacSHA512(this.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n // if parse256(IL) >= n, proceed with the next value for i\n if (!ecc.isPrivate(IL))\n return this.derive(index + 1);\n // Private parent key -> private child key\n let hd;\n if (!this.isNeutered()) {\n // ki = parse256(IL) + kpar (mod n)\n const ki = ecc.privateAdd(this.privateKey, IL);\n // In case ki == 0, proceed with the next value for i\n if (ki == null)\n return this.derive(index + 1);\n hd = fromPrivateKeyLocal(ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n // Public parent key -> public child key\n }\n else {\n // Ki = point(parse256(IL)) + Kpar\n // = G*IL + Kpar\n const Ki = ecc.pointAddScalar(this.publicKey, IL, true);\n // In case Ki is the point at infinity, proceed with the next value for i\n if (Ki === null)\n return this.derive(index + 1);\n hd = fromPublicKeyLocal(Ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n }\n return hd;\n }\n deriveHardened(index) {\n typeforce(UInt31, index);\n // Only derives hardened private keys by default\n return this.derive(index + HIGHEST_BIT);\n }\n derivePath(path) {\n typeforce(BIP32Path, path);\n let splitPath = path.split('/');\n if (splitPath[0] === 'm') {\n if (this.parentFingerprint)\n throw new TypeError('Expected master, got child');\n splitPath = splitPath.slice(1);\n }\n return splitPath.reduce((prevHd, indexStr) => {\n let index;\n if (indexStr.slice(-1) === `'`) {\n index = parseInt(indexStr.slice(0, -1), 10);\n return prevHd.deriveHardened(index);\n }\n else {\n index = parseInt(indexStr, 10);\n return prevHd.derive(index);\n }\n }, this);\n }\n sign(hash, lowR) {\n if (!this.privateKey)\n throw new Error('Missing private key');\n if (lowR === undefined)\n lowR = this.lowR;\n if (lowR === false) {\n return ecc.sign(hash, this.privateKey);\n }\n else {\n let sig = ecc.sign(hash, this.privateKey);\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n // if first try is lowR, skip the loop\n // for second try and on, add extra entropy counting up\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = ecc.signWithEntropy(hash, this.privateKey, extraData);\n }\n return sig;\n }\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n}\nfunction fromBase58(inString, network) {\n const buffer = bs58check.decode(inString);\n if (buffer.length !== 78)\n throw new TypeError('Invalid buffer length');\n network = network || BITCOIN;\n // 4 bytes: version bytes\n const version = buffer.readUInt32BE(0);\n if (version !== network.bip32.private && version !== network.bip32.public)\n throw new TypeError('Invalid network version');\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ...\n const depth = buffer[4];\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n const parentFingerprint = buffer.readUInt32BE(5);\n if (depth === 0) {\n if (parentFingerprint !== 0x00000000)\n throw new TypeError('Invalid parent fingerprint');\n }\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in MSB order. (0x00000000 if master key)\n const index = buffer.readUInt32BE(9);\n if (depth === 0 && index !== 0)\n throw new TypeError('Invalid index');\n // 32 bytes: the chain code\n const chainCode = buffer.slice(13, 45);\n let hd;\n // 33 bytes: private key data (0x00 + k)\n if (version === network.bip32.private) {\n if (buffer.readUInt8(45) !== 0x00)\n throw new TypeError('Invalid private key');\n const k = buffer.slice(46, 78);\n hd = fromPrivateKeyLocal(k, chainCode, network, depth, index, parentFingerprint);\n // 33 bytes: public key data (0x02 + X or 0x03 + X)\n }\n else {\n const X = buffer.slice(45, 78);\n hd = fromPublicKeyLocal(X, chainCode, network, depth, index, parentFingerprint);\n }\n return hd;\n}\nexports.fromBase58 = fromBase58;\nfunction fromPrivateKey(privateKey, chainCode, network) {\n return fromPrivateKeyLocal(privateKey, chainCode, network);\n}\nexports.fromPrivateKey = fromPrivateKey;\nfunction fromPrivateKeyLocal(privateKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n privateKey: UINT256_TYPE,\n chainCode: UINT256_TYPE,\n }, { privateKey, chainCode });\n network = network || BITCOIN;\n if (!ecc.isPrivate(privateKey))\n throw new TypeError('Private key not in range [1, n)');\n return new BIP32(privateKey, undefined, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromPublicKey(publicKey, chainCode, network) {\n return fromPublicKeyLocal(publicKey, chainCode, network);\n}\nexports.fromPublicKey = fromPublicKey;\nfunction fromPublicKeyLocal(publicKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n publicKey: typeforce.BufferN(33),\n chainCode: UINT256_TYPE,\n }, { publicKey, chainCode });\n network = network || BITCOIN;\n // verify the X coordinate is a point on the curve\n if (!ecc.isPoint(publicKey))\n throw new TypeError('Point is not on the curve');\n return new BIP32(undefined, publicKey, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromSeed(seed, network) {\n typeforce(typeforce.Buffer, seed);\n if (seed.length < 16)\n throw new TypeError('Seed should be at least 128 bits');\n if (seed.length > 64)\n throw new TypeError('Seed should be at most 512 bits');\n network = network || BITCOIN;\n const I = crypto.hmacSHA512(Buffer.from('Bitcoin seed', 'utf8'), seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return fromPrivateKey(IL, IR, network);\n}\nexports.fromSeed = fromSeed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst createHash = require('create-hash');\nconst createHmac = require('create-hmac');\nfunction hash160(buffer) {\n const sha256Hash = createHash('sha256')\n .update(buffer)\n .digest();\n try {\n return createHash('rmd160')\n .update(sha256Hash)\n .digest();\n }\n catch (err) {\n return createHash('ripemd160')\n .update(sha256Hash)\n .digest();\n }\n}\nexports.hash160 = hash160;\nfunction hmacSHA512(key, data) {\n return createHmac('sha512', key)\n .update(data)\n .digest();\n}\nexports.hmacSHA512 = hmacSHA512;\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';\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';\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;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\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};","// 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;","/*\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","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","// 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/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.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","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = 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 BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a