{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/crypto-js/mode-cfb.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/@ethersproject/networks/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/networks/lib.esm/index.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/qrcode/lib/core/byte-data.js","webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/walletlink/dist/connection/WalletLinkAnalytics.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/qrcode/lib/core/regex.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/browser/hmac.js","webpack:///./node_modules/typedarray-to-buffer/index.js","webpack:///./node_modules/async/internal/iterator.js","webpack:///./node_modules/automation-events/build/es5/bundle.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/walletlink/node_modules/eth-rpc-errors/dist/utils.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/delete-property-or-throw.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/walletlink/dist/EthereumChain.js","webpack:///./node_modules/walletlink/dist/provider/JSONRPC.js","webpack:///./node_modules/walletlink/dist/components/icons/QRLogo.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/namehash.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/@ethersproject/random/lib.esm/index.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/walletlink/dist/components/icons/link-icon-svg.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/bytes.js","webpack:///./node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/eth-json-rpc-middleware/cache-utils.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/bindCallback.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/forkJoin.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromEvent.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/generate.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/iif.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/interval.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/never.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/pairs.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/partition.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/range.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/using.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/_version.js","webpack:///./node_modules/dijkstrajs/dijkstra.js","webpack:///./node_modules/crypto-js/ripemd160.js","webpack:///./node_modules/crypto-js/enc-base64.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/web3-provider-engine/subproviders/subscriptions.js","webpack:///./node_modules/json-rpc-engine/node_modules/eth-rpc-errors/dist/error-constants.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/crypto-js/rabbit.js","webpack:///./node_modules/merkletreejs/dist/Base.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/toggle-selection/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/rxjs/_esm5/internal/Subscriber.js","webpack:///./node_modules/ethereumjs-util/dist/secp256k1-adapter.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/preact/dist/preact.module.js","webpack:///./node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/preact/compat/dist/compat.module.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/@metamask/safe-event-emitter/index.js","webpack:///./node_modules/@walletconnect/socket-transport/dist/esm/index.js","webpack:///./node_modules/eth-json-rpc-filters/log-filter.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/crypto-js/lib-typedarrays.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/of.js","webpack:///./node_modules/@walletconnect/jsonrpc-utils/dist/esm/index.js","webpack:///./node_modules/crypto-js/sha224.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/walletlink/dist/provider/WalletLinkSdkUI.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/empty.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/js-sha3/src/sha3.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/eth-sig-util/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/walletlink/dist/relay/Web3RequestCanceledMessage.js","webpack:///./node_modules/@ethersproject/base64/lib.esm/base64.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack:///./node_modules/crypto-js/core.js","webpack:///./node_modules/ethereum-cryptography/secp256k1.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/groupBy.js","webpack:///./node_modules/secp256k1/elliptic.js","webpack:///./node_modules/ethereum-cryptography/random.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/keccak/lib/keccak.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack:///./node_modules/https-browserify/index.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/ws.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/fallback-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/ipc-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/infura-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/pocket-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/index.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/treeify/treeify.js","webpack:///./node_modules/qrcode/lib/core/polynomial.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/walletlink/node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/qrcode/lib/core/version-check.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/@ethersproject/wallet/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/wallet/lib.esm/index.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/rxjs/_esm5/internal/util/Immediate.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/asap.js","webpack:///./node_modules/web3-provider-engine/subproviders/nonce-tracker.js","webpack:///./node_modules/walletlink/dist/vendor-js/eth-eip712-util/util.js","webpack:///./node_modules/async/parallel.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/crypto-js/pad-zeropadding.js","webpack:///./node_modules/@walletconnect/browser-utils/dist/esm/browser.js","webpack:///./node_modules/@walletconnect/safe-json/dist/esm/index.js","webpack:///./node_modules/@walletconnect/browser-utils/dist/esm/json.js","webpack:///./node_modules/@walletconnect/browser-utils/dist/esm/local.js","webpack:///./node_modules/@walletconnect/browser-utils/dist/esm/mobile.js","webpack:///./node_modules/@walletconnect/browser-utils/dist/esm/registry.js","webpack:///./node_modules/async/internal/breakLoop.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/crypto-js/evpkdf.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/rxjs/_esm5/internal/Subject.js","webpack:///./node_modules/async/map.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/walletlink/dist/components/QRCode.js","webpack:///./node_modules/@ethersproject/basex/lib.esm/index.js","webpack:///./node_modules/json-rpc-engine/dist/createAsyncMiddleware.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/async/internal/setImmediate.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/@walletconnect/core/dist/esm/errors.js","webpack:///./node_modules/@walletconnect/core/dist/esm/events.js","webpack:///./node_modules/@walletconnect/core/dist/esm/storage.js","webpack:///./node_modules/@walletconnect/core/dist/esm/url.js","webpack:///./node_modules/@walletconnect/core/dist/esm/index.js","webpack:///./node_modules/@walletconnect/iso-crypto/dist/esm/index.js","webpack:///./node_modules/@walletconnect/client/dist/esm/index.js","webpack:///./node_modules/@walletconnect/http-connection/dist/esm/index.js","webpack:///./node_modules/@walletconnect/web3-provider/dist/esm/index.js","webpack:///./node_modules/qrcode/lib/core/kanji-data.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/rxjs/_esm5/internal/OuterSubscriber.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine/src/createScaffoldMiddleware.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isObject.js","webpack:///./node_modules/@walletconnect/encoding/dist/cjs/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/walletlink/dist/connection/WalletLinkConnection.js","webpack:///./node_modules/@walletconnect/jsonrpc-types/dist/esm/misc.js","webpack:///./node_modules/crypto-js/x64-core.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/async/internal/eachOfLimit.js","webpack:///./node_modules/crypto-js/index.js","webpack:///./node_modules/qrcode/lib/core/error-correction-code.js","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/id.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/pify/index.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/fast-safe-stringify/index.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/sha2.js","webpack:///./node_modules/xhr2-cookies/dist/xml-http-request.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/crypto-js/cipher-core.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/walletlink/dist/relay/Web3ResponseMessage.js","webpack:///./node_modules/secp256k1/lib/index.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/@ethersproject/address/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/address/lib.esm/index.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/os-browserify/browser.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack:///./node_modules/crypto-js/rabbit-legacy.js","webpack:///./node_modules/core-js/internals/native-symbol-registry.js","webpack:///./node_modules/walletlink/dist/lib/cssReset-css.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/signature.js","webpack:///./node_modules/ethereumjs-util/dist/secp256k1-lib/index.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js","webpack:///./node_modules/async/internal/doLimit.js","webpack:///./node_modules/walletlink/dist/lib/cssReset.js","webpack:///./node_modules/walletlink/dist/index.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-js/modules/web.url.constructor.js","webpack:///./node_modules/qrcode/lib/renderer/svg-tag.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/@walletconnect/window-metadata/dist/cjs/index.js","webpack:///./node_modules/@ethersproject/pbkdf2/lib.esm/pbkdf2.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/qrcode/lib/renderer/canvas.js","webpack:///./node_modules/eth-query/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/jsonify/lib/parse.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/lib/browser.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/qrcode/lib/renderer/utils.js","webpack:///./node_modules/json-rpc-engine/dist/getUniqueId.js","webpack:///./node_modules/xhr2-cookies/dist/xml-http-request-upload.js","webpack:///./node_modules/web3-provider-engine/subproviders/hooked-wallet.js","webpack:///./node_modules/@walletconnect/socket-transport/node_modules/ws/browser.js","webpack:///./node_modules/secp256k1/lib/elliptic.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/walletlink/node_modules/eth-rpc-errors/dist/classes.js","webpack:///./node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/@walletconnect/jsonrpc-utils/dist/esm/env.js","webpack:///./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack:///./node_modules/@intlify/message-resolver/dist/message-resolver.esm-bundler.js","webpack:///./node_modules/@intlify/runtime/dist/runtime.esm-bundler.js","webpack:///./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack:///./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack:///./node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js","webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm-bundler.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/hashes.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/browser/aes.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/_version.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/constants/length.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/constants/default.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/constants/operations.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/index.js","webpack:///./node_modules/rxjs/_esm5/internal/ReplaySubject.js","webpack:///./node_modules/crypto-js/mode-ofb.js","webpack:///./node_modules/@metamask/detect-provider/dist/index.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/ethers/lib/utils.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/concatAll.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/async.js","webpack:///./node_modules/json-rpc-engine/node_modules/eth-rpc-errors/dist/index.js","webpack:///./node_modules/core-js/internals/object-is-extensible.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/eth-json-rpc-filters/hexUtils.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/walletlink/dist/vendor-js/eth-eip712-util/index.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","webpack:///./node_modules/walletlink/dist/relay/WalletLinkRelayEventManager.js","webpack:///./node_modules/is-hex-prefixed/src/index.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/_version.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/utf8.js","webpack:///./node_modules/ethereumjs-util/dist/secp256k1-lib/der.js","webpack:///./node_modules/web3-provider-engine/subproviders/subprovider.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/web.url-search-params.constructor.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/@ethersproject/bytes/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/bytes/lib.esm/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/@ethersproject/random/lib.esm/shuffle.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/lang-en.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/wordlists.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/filter.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/qrcode/lib/core/bit-matrix.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/address.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/array.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/null.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/number.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/string.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/abi-coder.js","webpack:///./node_modules/eth-block-tracker/src/polling.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack:///./node_modules/walletlink/dist/components/icons/lock-icon-svg.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/_version.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/web3-provider-engine/subproviders/fixture.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/crypto-js/hmac.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack:///./node_modules/qrcode/lib/utils/typedarray-buffer.js","webpack:///./node_modules/@ethersproject/transactions/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/transactions/lib.esm/index.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/race.js","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/json-rpc-engine/dist/idRemapMiddleware.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/throwError.js","webpack:///./node_modules/tone/build/esm/version.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/abort-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-active-input-connection-to-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-audio-node-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-audio-param-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/globals.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-constructible.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/split-import-statements.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-audio-worklet-module.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-value-for-key.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/pick-element-from-set.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/delete-passive-input-connection-to-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-event-listeners-of-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/set-internal-state-to-active.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/audio-worklet-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/set-internal-state-to-passive.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/set-internal-state-to-passive-when-necessary.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-connection-to-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-passive-input-connection-to-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-silent-connection.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/add-unrendered-audio-worklet-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/analyser-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-owned-by-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/analyser-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/index-size-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-buffer-get-channel-data-method.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-buffer-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/constants.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-active-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-buffer-source-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-buffer-source-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/audio-buffer-source-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/biquad-filter-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/constant-source-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/gain-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/oscillator-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/stereo-panner-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-audio-node-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-audio-param-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/deactivate-active-audio-node-input-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/deactivate-audio-graph.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-valid-latency-hint.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-destination-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-destination-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-listener-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/audio-node-output-connection.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/insert-element-in-set.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/add-active-input-connection-to-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/add-passive-input-connection-to-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/native-audio-node-faker.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/connect-native-audio-node-to-native-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/delete-active-input-connection.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/delete-active-input-connection-to-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/delete-event-listeners-of-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/delete-passive-input-connection-to-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/disconnect-native-audio-node-from-native-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-native-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-native-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-part-of-a-cycle.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-passive-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-node-disconnect-method-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/visit-each-audio-node-once.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/native-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-node-disconnect-method.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-param-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-param-renderer.js","webpack:///./node_modules/standardized-audio-context/build/es2019/read-only-map.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-worklet-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/copy-from-channel.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/copy-to-channel.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/create-nested-arrays.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-audio-worklet-processor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/audio-worklet-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/base-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/biquad-filter-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/biquad-filter-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/cache-test-result.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/channel-merger-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/channel-merger-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/channel-splitter-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/channel-splitter-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/connect-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/connect-multiple-outputs.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/connected-native-audio-buffer-source-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/constant-source-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/constant-source-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/convert-number-to-unsigned-long.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/convolver-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/convolver-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/create-native-offline-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/data-clone-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/detach-array-buffer.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/decode-audio-data.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/decrement-cycle-counter.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/delay-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/delay-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/delete-active-input-connection-to-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/delete-unrendered-audio-worklet-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/guards/delay-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/detect-cycles.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/disconnect-multiple-outputs.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/dynamics-compressor-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/dynamics-compressor-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/encoding-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/evaluate-source.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/event-target-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/expose-current-frame-and-current-time.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/fetch-source.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/gain-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/gain-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-active-audio-worklet-node-inputs.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-audio-node-renderer.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-audio-node-tail-time.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-audio-param-renderer.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-backup-offline-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/invalid-state-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-native-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-or-create-backup-offline-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/get-unrendered-audio-worklet-nodes.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/invalid-access-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-iir-filter-node-get-frequency-response-method.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/iir-filter-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/filter-buffer.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/iir-filter-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/increment-cycle-counter-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-any-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-any-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-any-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-any-offline-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-native-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-native-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-native-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-native-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-native-offline-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/is-secure-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/media-element-audio-source-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/media-stream-audio-destination-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/media-stream-audio-source-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/media-stream-track-audio-source-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/minimal-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/minimal-base-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-promise-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/minimal-offline-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/monitor-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/assign-native-audio-node-option.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/assign-native-audio-node-options.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-analyser-node-get-float-time-domain-data-method-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-analyser-node-get-float-time-domain-data-method.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-analyser-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-buffer-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/assign-native-audio-node-audio-param-value.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-buffer-source-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-destination-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-worklet-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-clonability-of-audio-worklet-node-options.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-worklet-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/compute-buffer-size.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/clone-audio-worklet-node-options.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/create-audio-worklet-processor-promise.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/create-audio-worklet-processor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-audio-worklet-node-faker-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-biquad-filter-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-channel-merger-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-channel-splitter-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-channel-splitter-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-constant-source-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/intercept-connections.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-constant-source-node-faker-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-convolver-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-delay-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-dynamics-compressor-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-gain-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-iir-filter-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-iir-filter-node-faker-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-media-element-audio-source-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-media-stream-audio-destination-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-media-stream-audio-source-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-media-stream-track-audio-source-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-offline-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-oscillator-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-panner-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-panner-node-faker-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-periodic-wave-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-script-processor-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-stereo-panner-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-stereo-panner-node-faker-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-wave-shaper-node-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/native-wave-shaper-node-faker-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/not-supported-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/offline-audio-context-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/oscillator-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/oscillator-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/panner-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/panner-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/periodic-wave-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/render-automation.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/render-inputs-of-audio-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/render-inputs-of-audio-param.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/render-native-offline-audio-context.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/set-active-audio-worklet-node-inputs.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/set-audio-node-tail-time.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/start-rendering.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/stereo-panner-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/stereo-panner-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/test-audio-buffer-constructor-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/test-audio-worklet-processor-post-message-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/test-offline-audio-context-current-time-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/unknown-error.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/wave-shaper-node-constructor.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/wave-shaper-node-renderer-factory.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/window.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/wrap-audio-buffer-copy-channel-methods.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer.js","webpack:///./node_modules/standardized-audio-context/build/es2019/factories/wrap-channel-merger-node.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/get-first-sample.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/is-dc-curve.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/overwrite-accessors.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/sanitize-audio-worklet-node-options.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/sanitize-channel-splitter-options.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/sanitize-periodic-wave-options.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/set-value-at-time-until-possible.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-source-node-start-method-offset-clamping-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/test-audio-worklet-node-options-clonability.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-buffer-source-node-start-method-offset-clamping.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls.js","webpack:///./node_modules/standardized-audio-context/build/es2019/helpers/wrap-event-listener.js","webpack:///./node_modules/standardized-audio-context/build/es2019/module.js","webpack:///./node_modules/tone/build/esm/core/util/Debug.js","webpack:///./node_modules/tone/build/esm/core/util/TypeCheck.js","webpack:///./node_modules/tone/build/esm/core/context/AudioContext.js","webpack:///./node_modules/tone/build/esm/core/clock/Ticker.js","webpack:///./node_modules/tone/build/esm/core/util/AdvancedTypeCheck.js","webpack:///./node_modules/tone/build/esm/core/util/Defaults.js","webpack:///./node_modules/tone/build/esm/core/Tone.js","webpack:///./node_modules/tone/build/esm/core/util/Math.js","webpack:///./node_modules/tone/build/esm/core/util/Timeline.js","webpack:///./node_modules/tone/build/esm/core/context/ContextInitialization.js","webpack:///./node_modules/tone/build/esm/core/util/Emitter.js","webpack:///./node_modules/tone/build/esm/core/context/BaseContext.js","webpack:///./node_modules/tone/build/esm/core/context/Context.js","webpack:///./node_modules/tone/build/esm/core/context/DummyContext.js","webpack:///./node_modules/tone/build/esm/core/util/Interface.js","webpack:///./node_modules/tone/build/esm/core/context/ToneAudioBuffer.js","webpack:///./node_modules/tone/build/esm/core/context/OfflineContext.js","webpack:///./node_modules/tone/build/esm/core/Global.js","webpack:///./node_modules/tone/build/esm/core/type/Conversions.js","webpack:///./node_modules/tone/build/esm/core/type/TimeBase.js","webpack:///./node_modules/tone/build/esm/core/type/Time.js","webpack:///./node_modules/tone/build/esm/core/type/Frequency.js","webpack:///./node_modules/tone/build/esm/core/type/TransportTime.js","webpack:///./node_modules/tone/build/esm/core/context/ToneWithContext.js","webpack:///./node_modules/tone/build/esm/core/util/StateTimeline.js","webpack:///./node_modules/tone/build/esm/core/context/Param.js","webpack:///./node_modules/tone/build/esm/core/context/ToneAudioNode.js","webpack:///./node_modules/tone/build/esm/core/context/Gain.js","webpack:///./node_modules/tone/build/esm/source/OneShotSource.js","webpack:///./node_modules/tone/build/esm/signal/ToneConstantSource.js","webpack:///./node_modules/tone/build/esm/signal/Signal.js","webpack:///./node_modules/tone/build/esm/core/clock/TickParam.js","webpack:///./node_modules/tone/build/esm/core/clock/TickSignal.js","webpack:///./node_modules/tone/build/esm/core/clock/TickSource.js","webpack:///./node_modules/tone/build/esm/core/clock/Clock.js","webpack:///./node_modules/tone/build/esm/core/context/ToneAudioBuffers.js","webpack:///./node_modules/tone/build/esm/core/type/Ticks.js","webpack:///./node_modules/tone/build/esm/core/util/Draw.js","webpack:///./node_modules/tone/build/esm/core/util/IntervalTimeline.js","webpack:///./node_modules/tone/build/esm/component/channel/Volume.js","webpack:///./node_modules/tone/build/esm/core/context/Destination.js","webpack:///./node_modules/tone/build/esm/core/util/TimelineValue.js","webpack:///./node_modules/tone/build/esm/core/clock/TransportEvent.js","webpack:///./node_modules/tone/build/esm/core/clock/TransportRepeatEvent.js","webpack:///./node_modules/tone/build/esm/core/clock/Transport.js","webpack:///./node_modules/tone/build/esm/source/Source.js","webpack:///./node_modules/tone/build/esm/source/buffer/ToneBufferSource.js","webpack:///./node_modules/tone/build/esm/source/oscillator/OscillatorInterface.js","webpack:///./node_modules/tone/build/esm/source/oscillator/ToneOscillatorNode.js","webpack:///./node_modules/tone/build/esm/source/oscillator/Oscillator.js","webpack:///./node_modules/tone/build/esm/signal/SignalOperator.js","webpack:///./node_modules/tone/build/esm/signal/WaveShaper.js","webpack:///./node_modules/tone/build/esm/signal/AudioToGain.js","webpack:///./node_modules/tone/build/esm/signal/Multiply.js","webpack:///./node_modules/tone/build/esm/source/oscillator/AMOscillator.js","webpack:///./node_modules/tone/build/esm/source/oscillator/FMOscillator.js","webpack:///./node_modules/tone/build/esm/source/oscillator/PulseOscillator.js","webpack:///./node_modules/tone/build/esm/source/oscillator/FatOscillator.js","webpack:///./node_modules/tone/build/esm/source/oscillator/PWMOscillator.js","webpack:///./node_modules/tone/build/esm/source/oscillator/OmniOscillator.js","webpack:///./node_modules/tone/build/esm/core/util/Decorator.js","webpack:///./node_modules/tone/build/esm/source/buffer/Player.js","webpack:///./node_modules/tone/build/esm/component/envelope/Envelope.js","webpack:///./node_modules/tone/build/esm/instrument/Instrument.js","webpack:///./node_modules/tone/build/esm/instrument/Monophonic.js","webpack:///./node_modules/tone/build/esm/component/envelope/AmplitudeEnvelope.js","webpack:///./node_modules/tone/build/esm/instrument/Synth.js","webpack:///./node_modules/tone/build/esm/instrument/MembraneSynth.js","webpack:///./node_modules/tone/build/esm/core/worklet/WorkletGlobalScope.js","webpack:///./node_modules/tone/build/esm/core/worklet/ToneAudioWorkletProcessor.worklet.js","webpack:///./node_modules/tone/build/esm/core/worklet/SingleIOProcessor.worklet.js","webpack:///./node_modules/tone/build/esm/core/worklet/DelayLine.worklet.js","webpack:///./node_modules/tone/build/esm/component/filter/FeedbackCombFilter.worklet.js","webpack:///./node_modules/tone/build/esm/instrument/Sampler.js","webpack:///./node_modules/tone/build/esm/component/channel/Panner.js","webpack:///./node_modules/tone/build/esm/effect/BitCrusher.worklet.js","webpack:///./node_modules/tone/build/esm/component/channel/Solo.js","webpack:///./node_modules/tone/build/esm/component/channel/PanVol.js","webpack:///./node_modules/tone/build/esm/component/channel/Channel.js","webpack:///./node_modules/tone/build/esm/core/context/Listener.js","webpack:///./node_modules/tone/build/esm/index.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/vue3-marquee/dist/vue3-marquee.esm.js","webpack:///./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/walletlink/dist/components/LinkFlow.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/json-rpc-engine/dist/JsonRpcEngine.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/async/eachSeries.js","webpack:///./node_modules/walletlink/dist/components/icons/globe-icon-svg.js","webpack:///./node_modules/walletlink/dist/WalletLink.js","webpack:///./node_modules/keccak256/dist/keccak256.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/browser/sha2.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/walletlink/dist/relay/Session.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/xhr2-cookies/dist/xml-http-request-event-target.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/walletlink/dist/relay/WalletLinkRelay.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeAll.js","webpack:///./node_modules/walletlink/dist/lib/ScopedLocalStorage.js","webpack:///./node_modules/walletlink/dist/init/index.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/qrcode/lib/can-promise.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/vue-screen/dist/vue-screen.esm.js","webpack:///./node_modules/async/internal/wrapAsync.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/keccak/js.js","webpack:///./node_modules/qrcode/lib/core/galois-field.js","webpack:///./node_modules/async/eachOf.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/audit.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/auditTime.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/buffer.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/bufferCount.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/bufferTime.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/bufferToggle.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/bufferWhen.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/catchError.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/combineAll.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/combineLatest.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/concat.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/concatMap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/concatMapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/count.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/debounce.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/debounceTime.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isDate.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/delay.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/delayWhen.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/dematerialize.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinct.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/take.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/elementAt.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/endWith.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/every.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/exhaust.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/exhaustMap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/expand.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/finalize.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/find.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/findIndex.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/first.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/ignoreElements.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/isEmpty.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/takeLast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/last.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/materialize.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/scan.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/reduce.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/max.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/merge.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeScan.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/min.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/multicast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/pairwise.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/partition.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/pluck.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/publish.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/publishBehavior.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/publishLast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/publishReplay.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/race.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/repeat.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/repeatWhen.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/retry.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/retryWhen.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/sample.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/sampleTime.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/share.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/shareReplay.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/single.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/skip.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/skipLast.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/skipUntil.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/skipWhile.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/startWith.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/subscribeOn.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchMap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchAll.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/takeUntil.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/takeWhile.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/tap.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/throttle.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/throttleTime.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/timeInterval.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/timeout.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/timestamp.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/toArray.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/window.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/windowCount.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/windowTime.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/windowToggle.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/windowWhen.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/zip.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/zipAll.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/inspect.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/web3-provider-engine/util/estimate-gas.js","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./node_modules/js-sha256/src/sha256.js","webpack:///./node_modules/walletlink/dist/components/LinkDialog-css.js","webpack:///./node_modules/core-js/internals/engine-is-deno.js","webpack:///./node_modules/crypto-js/format-hex.js","webpack:///./node_modules/merkletreejs/dist/MerkleTree.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/@ethersproject/random/lib.esm/random.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/constants.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/core-js/modules/es.map.constructor.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/@ethersproject/keccak256/lib.esm/index.js","webpack:///./node_modules/rlp/dist.browser/index.js","webpack:///./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/keccak/lib/keccak-state-unroll.js","webpack:///./node_modules/web3-provider-engine/subproviders/filters.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/bytes32.js","webpack:///./node_modules/@ethersproject/units/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/units/lib.esm/index.js","webpack:///./node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/message.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/@ethersproject/base64/lib.esm/index.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/crypto-js/md5.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/concat.js","webpack:///./node_modules/@walletconnect/qrcode-modal/dist/cjs/index.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@walletconnect/socket-transport/dist/esm/network.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/account.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/jsonify/index.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/combineLatest.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/secp256k1v3-adapter.js","webpack:///./node_modules/qrcode/lib/core/mask-pattern.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/vue/dist/vue.runtime.esm-bundler.js","webpack:///./node_modules/qrcode/lib/core/error-correction-level.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/detect-browser/es/index.js","webpack:///./node_modules/qrcode/lib/core/bit-buffer.js","webpack:///./node_modules/walletlink/dist/provider/WalletLinkProvider.js","webpack:///./node_modules/crypto-js/pbkdf2.js","webpack:///./node_modules/qrcode/lib/core/utils.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@ethersproject/abstract-signer/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/abstract-signer/lib.esm/index.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/index.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/formatter.js","webpack:///./node_modules/web3-provider-engine/index.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/timer.js","webpack:///./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/web3-provider-engine/util/rpc-cache-utils.js","webpack:///./node_modules/ethereumjs-abi/index.js","webpack:///./node_modules/crypto-js/mode-ecb.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/index.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/idna.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/browser/index.js","webpack:///./node_modules/async/internal/initialParams.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/walletlink/dist/vendor-js/eth-eip712-util/abi.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/secp256k1v3-lib/der.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/strip-hex-prefix/src/index.js","webpack:///./node_modules/xhr2-cookies/dist/index.js","webpack:///./node_modules/walletlink/node_modules/preact/dist/preact.module.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/eth-json-rpc-filters/tx-filter.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack:///./node_modules/walletlink/node_modules/eth-rpc-errors/dist/index.js","webpack:///./node_modules/eth-json-rpc-filters/node_modules/pify/index.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/rxjs/_esm5/internal/config.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isArray.js","webpack:///./node_modules/clsx/dist/clsx.m.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isIterable.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/walletlink/dist/components/Snackbar.js","webpack:///./node_modules/builtin-status-codes/browser.js","webpack:///./node_modules/rxjs/_esm5/internal/util/not.js","webpack:///./node_modules/walletlink/dist/connection/ClientMessage.js","webpack:///./node_modules/crypto-js/pad-iso97971.js","webpack:///./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack:///./node_modules/web3-provider-engine/subproviders/json-rpc-engine-middleware.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/index.js","webpack:///./node_modules/walletlink/node_modules/eth-rpc-errors/dist/error-constants.js","webpack:///./node_modules/async/internal/withoutIndex.js","webpack:///./node_modules/keccak/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/qrcode/lib/core/finder-pattern.js","webpack:///./node_modules/stream-http/lib/request.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/keccak/lib/api/shake.js","webpack:///./node_modules/web3-provider-engine/util/random-id.js","webpack:///./node_modules/async/eachOfLimit.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/helpers/validators.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/stream-http/index.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/crypto-js/sha256.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/qrcode/lib/core/format-info.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/defer.js","webpack:///./node_modules/json-rpc-engine/dist/index.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/async/waterfall.js","webpack:///./node_modules/rxjs/_esm5/internal/util/identity.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/ethereum-cryptography/hash-utils.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/observeOn.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/ethjs-util/lib/index.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/constants.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/encoding.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/misc.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/validators.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/ethereum.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/payload.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/url.js","webpack:///./node_modules/@walletconnect/utils/dist/esm/session.js","webpack:///./node_modules/@ethersproject/properties/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/properties/lib.esm/index.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/keystore.js","webpack:///./node_modules/eth-json-rpc-middleware/block-cache.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/bignumbers.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/scrypt-js/scrypt.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/async/internal/getIterator.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/walletlink/dist/util.js","webpack:///./node_modules/crypto-js/pad-iso10126.js","webpack:///./node_modules/walletlink/dist/relay/RelayMessage.js","webpack:///./node_modules/semaphore/lib/semaphore.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/xhr2-cookies/dist/progress-event.js","webpack:///./node_modules/crypto-js/tripledes.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack:///./node_modules/cookiejar/cookiejar.js","webpack:///./node_modules/rxjs/_esm5/internal/Subscription.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/merge.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/walletlink/dist/types.js","webpack:///./node_modules/node-libs-browser/node_modules/stream-browserify/index.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/interface.js","webpack:///./node_modules/crypto-js/pad-ansix923.js","webpack:///./node_modules/crypto-js/enc-utf16.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/@ethersproject/bignumber/lib.esm/_version.js","webpack:///./node_modules/is-typedarray/index.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/stream-http/lib/capability.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/ethereumjs-util/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/qrcode/lib/core/qrcode.js","webpack:///./node_modules/@walletconnect/window-getters/dist/cjs/index.js","webpack:///./node_modules/crypto-js/mode-ctr-gladman.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/@walletconnect/randombytes/dist/esm/browser/index.js","webpack:///./node_modules/async-mutex/es6/Semaphore.js","webpack:///./node_modules/async-mutex/es6/Mutex.js","webpack:///./node_modules/async-mutex/es6/withTimeout.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/json-stable-stringify/index.js","webpack:///./node_modules/async/internal/onlyOnce.js","webpack:///./node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/eth-json-rpc-filters/block-filter.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/index.js","webpack:///./node_modules/@walletconnect/jsonrpc-types/dist/esm/provider.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/proxy-accessor.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/walletlink/node_modules/eth-rpc-errors/dist/errors.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/@ethersproject/json-wallets/node_modules/aes-js/index.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/rxjs/_esm5/internal/Scheduler.js","webpack:///./node_modules/merkletreejs/dist/MerkleMountainRange.js","webpack:///./node_modules/rxjs/_esm5/internal/AsyncSubject.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/strings.js","webpack:///./node_modules/async/eachLimit.js","webpack:///./node_modules/@ethersproject/bignumber/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/modules/es.symbol.for.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/ethereumjs-util/dist/index.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/helpers/env.js","webpack:///./node_modules/eth-json-rpc-filters/subscriptionManager.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/ethereumjs-abi/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/crypto-js/sha384.js","webpack:///./node_modules/crypto-js/pad-nopadding.js","webpack:///./node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/jsonify/lib/stringify.js","webpack:///./node_modules/walletlink/dist/init/WalletLinkAnalyticsAbstract.js","webpack:///./node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/walletlink/dist/components/Snackbar-css.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/@ethersproject/web/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/web/lib.esm/geturl.js","webpack:///./node_modules/@ethersproject/web/lib.esm/index.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/walletlink/dist/components/Spinner-css.js","webpack:///./node_modules/qrcode/lib/core/mode.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/walletlink/dist/relay/Web3Response.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/base-provider.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/wordlist.js","webpack:///./node_modules/@walletconnect/environment/dist/cjs/index.js","webpack:///./node_modules/json-rpc-engine/dist/createScaffoldMiddleware.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/qrcode/lib/core/segments.js","webpack:///./node_modules/bech32/index.js","webpack:///./node_modules/node-libs-browser/node_modules/isarray/index.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/addresses.js","webpack:///./node_modules/ethers/lib.esm/_version.js","webpack:///./node_modules/ethers/lib.esm/ethers.js","webpack:///./node_modules/ethers/lib.esm/index.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/walletlink/dist/init/events.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/fragments.js","webpack:///./node_modules/crypto-js/aes.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/ethereum-cryptography/keccak.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/crypto-js/rc4.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/web3-provider-engine/util/create-payload.js","webpack:///./node_modules/core-js/modules/es.symbol.key-for.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack:///./node_modules/@walletconnect/crypto/dist/esm/helpers/index.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/clear-error-stack.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/refCount.js","webpack:///./node_modules/json-rpc-engine/node_modules/eth-rpc-errors/dist/classes.js","webpack:///./node_modules/qrcode/lib/core/version.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/stream-http/lib/response.js","webpack:///./node_modules/keccak/lib/api/index.js","webpack:///./node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/safe-event-emitter/index.js","webpack:///./node_modules/rxjs/_esm5/internal/util/pipe.js","webpack:///./node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/json-rpc-engine/node_modules/eth-rpc-errors/dist/errors.js","webpack:///./node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/crowdsale.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/index.js","webpack:///./node_modules/rxjs/_esm5/internal/InnerSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack:///./node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/eth-json-rpc-filters/base-filter.js","webpack:///./node_modules/@walletconnect/jsonrpc-types/dist/esm/index.js","webpack:///./node_modules/rxjs/_esm5/internal/innerSubscribe.js","webpack:///./node_modules/store2/dist/store2.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/index.js","webpack:///./node_modules/qrcode/lib/browser.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/eth-json-rpc-filters/getBlocksForRange.js","webpack:///./node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/hash.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/object.js","webpack:///./node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/keccak/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/walletlink/dist/relay/aes256gcm.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/from.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/types.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/json-rpc-engine/dist/mergeMiddleware.js","webpack:///./node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/qrcode/lib/core/alignment-pattern.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/crypto-js/sha512.js","webpack:///./node_modules/walletlink/dist/components/TryExtensionLinkDialog.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/walletlink/dist/provider/WalletLinkUI.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///./node_modules/json-rpc-random-id/index.js","webpack:///./node_modules/readable-stream/node_modules/isarray/index.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/to-arraybuffer/index.js","webpack:///./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/modules/es.error.cause.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack:///./node_modules/core-js/modules/es.symbol.constructor.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/web3-provider.js","webpack:///./node_modules/eth-json-rpc-filters/index.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/async/internal/once.js","webpack:///./node_modules/web3-provider-engine/subproviders/cache.js","webpack:///./node_modules/merkletreejs/dist/index.js","webpack:///./node_modules/rxjs/_esm5/internal/BehaviorSubject.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/ethereumjs-tx/es5/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/rxjs/_esm5/internal/util/TimeoutError.js","webpack:///./node_modules/qrcode/lib/core/numeric-data.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/rxjs/_esm5/internal/util/EmptyError.js","webpack:///./node_modules/async/internal/slice.js","webpack:///./node_modules/crypto-js/sha1.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/keccak/lib/api/keccak.js","webpack:///./node_modules/rxjs/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/walletlink/dist/connection/ServerMessage.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/typed-data.js","webpack:///./node_modules/walletlink/dist/provider/SubscriptionManager.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/@ethersproject/rlp/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/rlp/lib.esm/index.js","webpack:///./node_modules/walletlink/dist/relay/WalletLinkRelayAbstract.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/@walletconnect/environment/dist/cjs/env.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/keccak/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///./node_modules/json-rpc-engine/node_modules/eth-rpc-errors/dist/utils.js","webpack:///./node_modules/crypto-js/sha3.js","webpack:///./node_modules/walletlink/dist/vendor-js/qrcode-svg/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/async/asyncify.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/walletlink/dist/relay/Web3RequestMessage.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/rxjs/_esm5/internal/Observer.js","webpack:///./node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack:///./node_modules/rxjs/_esm5/internal/Observable.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/async/internal/parallel.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/ethereumjs-abi/lib/index.js","webpack:///./node_modules/rxjs/_esm5/internal/Notification.js","webpack:///./node_modules/rxjs/_esm5/internal/operators/map.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/vue3-burger-menu/dist/vue3-burger-menu.common.js","webpack:///./node_modules/@ethersproject/solidity/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/solidity/lib.esm/index.js","webpack:///./node_modules/@ethersproject/abstract-provider/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/abstract-provider/lib.esm/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/bind-decorator/index.js","webpack:///./node_modules/@ethersproject/hdnode/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/hdnode/lib.esm/index.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/eth-json-rpc-filters/base-filter-history.js","webpack:///./node_modules/@ethersproject/contracts/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/contracts/lib.esm/index.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/walletlink/dist/relay/Web3Method.js","webpack:///./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack:///./node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/ethereumjs-abi/node_modules/ethereumjs-util/dist/secp256k1v3-lib/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/walletlink/dist/components/TryExtensionLinkDialog-css.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/crypto-js/mode-ctr.js","webpack:///./node_modules/async/internal/map.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/rxjs/_esm5/internal/observable/zip.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/walletlink/dist/connection/RxWebSocket.js","webpack:///./node_modules/walletlink/dist/provider/FilterPolyfill.js","webpack:///./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/copy-to-clipboard/index.js","webpack:///./node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine/src/createAsyncMiddleware.js","webpack:///./node_modules/xhr2-cookies/dist/errors.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack:///./node_modules/rxjs/_esm5/internal/util/noop.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/@walletconnect/environment/dist/cjs/crypto.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@walletconnect/jsonrpc-utils/dist/esm/types.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/eth-json-rpc-middleware/scaffold.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack:///./node_modules/walletlink/dist/components/LinkDialog.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/utils.js","webpack:///./node_modules/async/internal/doParallel.js","webpack:///./node_modules/buffer-reverse/index.js","webpack:///./node_modules/web3-provider-engine/util/stoplight.js","webpack:///./node_modules/eth-block-tracker/src/base.js","webpack:///./node_modules/@ethersproject/random/lib.esm/_version.js","webpack:///./node_modules/walletlink/dist/components/Spinner.js","webpack:///./node_modules/rxjs/_esm5/internal/util/isNumeric.js","webpack:///./node_modules/@ethersproject/logger/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/logger/lib.esm/index.js"],"names":["$","call","uncurryThis","isCallable","isObject","DELEGATES_TO_EXEC","execCalled","re","exec","apply","this","arguments","test","$TypeError","TypeError","un$Test","target","proto","forced","str","result","root","factory","undef","module","exports","CryptoJS","mode","CFB","lib","BlockCipherMode","extend","generateKeystreamAndEncrypt","words","offset","blockSize","cipher","iv","_iv","keystream","slice","undefined","_prevBlock","encryptBlock","i","Encryptor","processBlock","_cipher","Decryptor","thisBlock","wellKnownSymbol","TO_STRING_TAG","String","Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","getRawTag","value","isOwn","tag","unmasked","e","version","logger","isRenetworkable","ethDefaultProvider","network","func","providers","options","providerList","InfuraProvider","push","infura","error","EtherscanProvider","etherscan","AlchemyProvider","alchemy","PocketProvider","skip","provider","indexOf","name","CloudflareProvider","length","FallbackProvider","quorum","renetwork","etcDefaultProvider","url","JsonRpcProvider","homestead","chainId","ensAddress","_defaultProvider","ropsten","classicMordor","networks","unspecified","mainnet","morden","testnet","rinkeby","kovan","goerli","kintsugi","classic","classicMorden","classicTestnet","classicKotti","xdai","matic","maticmum","optimism","arbitrum","bnb","bnbt","getNetwork","standard","throwArgumentError","defaultProvider","eos","once","callback","called","_require$codes","codes","ERR_MISSING_ARGS","ERR_STREAM_DESTROYED","noop","err","isRequest","stream","setHeader","abort","destroyer","reading","writing","closed","on","readable","writable","destroyed","destroy","fn","pipe","from","to","popCallback","streams","pop","pipeline","_len","Array","_key","isArray","destroys","map","forEach","reduce","BufferUtil","Mode","ByteData","data","BYTE","getBitsLength","getLength","write","bitBuffer","l","put","Queue","head","tail","add","item","entry","next","get","EventEmitter","defineProperty","WalletLinkAnalytics","_eventType","_eventProperties","aCallable","NATIVE_BIND","bind","that","isPrototype","nativeKeys","baseKeys","object","key","numeric","alphanumeric","kanji","replace","byte","KANJI","RegExp","BYTE_KANJI","NUMERIC","ALPHANUMERIC","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","testKanji","testNumeric","testAlphanumeric","async","hmacSha256Sign","msg","isTypedArray","strict","arr","buf","Buffer","buffer","byteLength","byteOffset","default","iterator","_isArrayLike","_isArrayLike2","_interopRequireDefault","_getIterator","_getIterator2","_keys","_keys2","obj","__esModule","createArrayIterator","coll","len","createES2015Iterator","done","createObjectIterator","okeys","global","_slicedToArray","_classCallCheck","_createClass","_interopDefaultLegacy","_slicedToArray__default","_classCallCheck__default","_createClass__default","createExtendedExponentialRampToValueAutomationEvent","endTime","insertTime","type","createExtendedLinearRampToValueAutomationEvent","createSetValueAutomationEvent","startTime","createSetValueCurveAutomationEvent","values","duration","getTargetValueAtTime","time","valueAtStartTime","_ref","timeConstant","Math","exp","isExponentialRampToValueAutomationEvent","automationEvent","isLinearRampToValueAutomationEvent","isAnyRampToValueAutomationEvent","isSetValueAutomationEvent","isSetValueCurveAutomationEvent","getValueOfAutomationEventAtIndexAtTime","automationEvents","index","defaultValue","getEndTimeAndValueOfPreviousAutomationEvent","currentAutomationEvent","nextAutomationEvent","isCancelAndHoldAutomationEvent","isCancelScheduledValuesAutomationEvent","getEventTime","cancelTime","getExponentialRampValueAtTime","pow","getLinearRampValueAtTime","interpolateValue","theoreticIndex","lowerIndex","floor","upperIndex","ceil","getValueCurveValueAtTime","isSetTargetAutomationEvent","AutomationEventList","_Symbol$iterator","_automationEvents","_currenTime","_defaultValue","eventTime","findIndex","removedAutomationEvent","lastAutomationEvent","Error","startValue","truncatedAutomationEvent","getValue","Float32Array","_index","previousAutomationEvent","persistentAutomationEvent","splice","remainingAutomationEvents","firstRemainingAutomationEvent","unshift","indexOfNextEvent","indexOfCurrentEvent","_getEndTimeAndValueOf","_getEndTimeAndValueOf2","_getEndTimeAndValueOf3","_getEndTimeAndValueOf4","_startTime","_value","createCancelAndHoldAutomationEvent","createCancelScheduledValuesAutomationEvent","createExponentialRampToValueAutomationEvent","createLinearRampToValueAutomationEvent","createSetTargetAutomationEvent","classof","toIndexedObject","$getOwnPropertyNames","f","arraySlice","windowNames","window","getOwnPropertyNames","getWindowNames","it","serializeError","isValidCode","getMessageFromCode","JSON_RPC_SERVER_ERROR_MESSAGE","error_constants_1","classes_1","FALLBACK_ERROR_CODE","errorCodes","rpc","internal","FALLBACK_MESSAGE","FALLBACK_ERROR","code","message","fallbackMessage","Number","isInteger","codeString","hasKey","errorValues","isJsonRpcServerError","fallbackError","shouldIncludeStack","_a","_b","EthereumRpcError","serialize","serialized","_error","originalError","assignOriginalError","stack","assign","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","n","constructor","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","$values","stat","stubFalse","utils","SHA256","SHA224","h","inherits","outSize","hmacStrength","padLength","_digest","enc","toHex32","split32","toLength","tryToString","Hash","K","W","Sha","init","_w","rotl5","num","rotl30","ft","s","b","c","d","_c","_d","_e","_update","M","a","readInt32BE","j","t","_hash","H","allocUnsafe","writeInt32BE","AsyncScheduler","_super","SchedulerAction","now","_this","delegate","actions","active","scheduled","schedule","work","delay","state","flush","action","execute","shift","unsubscribe","Transform","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","ts","_transformState","transforming","cb","writecb","emit","writechunk","rs","_readableState","needReadable","highWaterMark","_read","needTransform","writeencoding","sync","transform","_transform","_flush","prefinish","_writableState","chunk","encoding","_write","_destroy","err2","buildURL","InterceptorManager","dispatchRequest","mergeConfig","validator","validators","Axios","instanceConfig","defaults","interceptors","request","response","configOrUrl","config","method","toLowerCase","transitional","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","promise","responseInterceptorChain","chain","concat","Promise","resolve","then","newConfig","onFulfilled","onRejected","reject","getUri","params","paramsSerializer","EthereumChain","rpcUrl","thiz","ETHEREUM_MAINNET","ROPSTEN","RINKEBY","KOVAN","GOERLI","OPTIMISM_KOVAN","OPTIMISM_MAINNET","POLYGON_MAINNET","POLYGON_TESTNET","BSC_MAINNET","BSC_TESTNET","FANTOM_MAINNET","FANTOM_TESTNET","ARBITRUM_MAINNET","ARBITRUM_TESTNET","XDAI_MAINNET","AVALANCHE_MAINNET","AVALANCHE_FUJI","fromChainId","valueOf","ETHEREUM_CLASSIC_MAINNET","JSONRPCMethod","Zeros","Uint8Array","fill","Partition","isValidName","comps","split","namehash","current","partition","match","label","PassThrough","punycode","util","Url","protocol","slashes","auth","host","port","hostname","hash","search","query","pathname","path","href","parse","urlParse","urlResolve","resolveObject","urlResolveObject","format","urlFormat","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","u","isString","source","relative","queryIndex","splitter","uSplit","slashRegex","join","rest","trim","simplePath","substr","lowerProto","atSign","hostEnd","hec","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","k","charCodeAt","validParts","notHost","bit","toASCII","p","ae","esc","encodeURIComponent","escape","qm","keys","stringify","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","v","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","isAbsolute","isConstructor","SPECIES","$Array","originalArray","C","baToJSON","addHexPrefix","toUnsigned","fromSigned","bufferToHex","bufferToInt","toBuffer","stripZeros","unpad","setLengthRight","setLength","setLengthLeft","zeros","ethjsUtil","BN","bytes","right","copy","stripHexPrefix","first","isBuffer","isHexString","padToEven","intToBuffer","isBN","toArrayLike","toArray","toNumber","fromTwos","toTwos","isHexPrefixed","ba","array","hostReportError","setTimeout","toObject","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","pre","curves","curve","assert","PresetCurve","short","edwards","mont","g","validate","mul","isInfinity","defineCurve","configurable","enumerable","prime","sha256","gRed","sha384","sha512","beta","lambda","basis","fails","createElement","_constructorGuard","Zero","NegativeOne","throwFault","fault","operation","throwError","errors","NUMERIC_FAULT","getMultiplier","decimals","substring","formatFixed","multiplier","negative","lt","fraction","mod","whole","div","parseFixed","wholeValue","fractionValue","wei","FixedFormat","constructorGuard","signed","width","UNSUPPORTED_OPERATION","_multiplier","freeze","parseInt","check","FixedNumber","hex","checkNew","_hex","_isFixedNumber","other","_checkFormat","fromValue","sub","hasFraction","isNegative","subUnsafe","ONE","toFormat","addUnsafe","factor","bump","BUMP","mulUnsafe","divUnsafe","toHexString","parseFloat","fromString","fixedFormat","decimal","fromBytes","INVALID_ARGUMENT","freeExports","nodeType","freeModule","moduleExports","nativeIsBuffer","IS_PURE","ITERATOR","URL","searchParams","toJSON","sort","URLSearchParams","username","$String","argument","cacheIdentifierForPayload","payload","skipBlockRef","simpleParams","paramsWithoutBlockTag","canCache","cacheTypeForPayload","blockTagForPayload","blockTagParamIndex","AnimationFrameAction","scheduler","requestAsyncId","id","requestAnimationFrame","recycleAsyncId","cancelAnimationFrame","AsyncAction","AnimationFrameScheduler","count","animationFrameScheduler","animationFrame","VirtualTimeScheduler","maxFrames","POSITIVE_INFINITY","frame","frameTimeFactor","VirtualAction","sortActions","_execute","isObservable","Observable","lift","subscribe","bindCallback","callbackFunc","resultSelector","isScheduler","args","_i","subject","context","subscriber","dispatch","AsyncSubject","handler","innerArgs","complete","canReportError","console","warn","dispatchNext","bindNodeCallback","arg","forkJoin","sources","first_1","forkJoinInternal","getPrototypeOf","resultSelector_1","completed","emitted","_loop_1","hasValue","fromEvent","eventName","isFunction","setupSubscription","sourceObj","isEventTarget","source_1","addEventListener","removeEventListener","isJQueryStyleEventEmitter","source_2","off","isNodeStyleEventEmitter","source_3","addListener","removeListener","fromEventPattern","addHandler","removeHandler","retValue","generate","initialStateOrOptions","condition","iterate","resultSelectorOrObservable","initialState","identity","conditionResult","needIterate","iif","trueResult","falseResult","defer","interval","period","isNumeric","counter","NEVER","never","onErrorResumeNext","remainder","subNext","pairs","subscription","Subscription","predicate","thisArg","filter","subscribeTo","not","range","start","using","resourceFactory","observableFactory","resource","$RegExp","groups","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_e","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","first_visit","open","PriorityQueue","make","empty","cost","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","opts","T","queue","sorter","default_sorter","C_lib","WordArray","Hasher","C_algo","algo","_zl","create","_zr","_sl","_sr","_hl","_hr","RIPEMD160","_doReset","_doProcessBlock","offset_i","M_offset_i","al","bl","cl","dl","el","ar","br","cr","dr","hl","hr","zl","zr","sl","sr","f1","f2","f3","f4","f5","rotl","_doFinalize","_data","dataWords","nBitsTotal","_nDataBytes","nBitsLeft","sigBytes","_process","H_i","clone","x","y","z","_createHelper","HmacRIPEMD160","_createHmacHelper","C_enc","Base64","wordArray","_map","clamp","base64Chars","byte1","byte2","byte3","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","parseLoop","nBytes","bits1","bits2","toIntegerOrInfinity","requireObjectCoercible","$RangeError","RangeError","Infinity","MAX_BYTES","MAX_UINT32","oldBrowser","crypto","msCrypto","randomBytes","size","generated","getRandomValues","process","nextTick","getSymbolIterator","is","ProviderSubprovider","createSubscriptionManager","SubscriptionsSubprovider","super","blockTracker","engine","events","middleware","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","invalidRequest","methodNotFound","invalidParams","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","isObjectLike","StreamCipher","S","C_","G","Rabbit","cfg","X","_X","_C","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","ivSize","gx","ga","gb","gh","gl","__importDefault","Base","crypto_js_1","print","element","equals","Hex","ArrayBuffer","isView","tree","log","withPrefix","alloc","bufferify","_isHexString","_log2","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","getter","setter","arity","Function","selection","document","getSelection","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","removeAllRanges","addRange","focus","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","Subscriber","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","SafeSubscriber","_next","_complete","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","observerOrNext","_context","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","_unsubscribe","secp256k1","secp256k1v3","der","privateKeyVerify","privateKey","privateKeyExport","compressed","publicKey","privateKeyImport","privateKeyNegate","privateKeyModInverse","privateKeyTweakAdd","tweak","privateKeyTweakMul","publicKeyCreate","publicKeyConvert","publicKeyVerify","publicKeyTweakAdd","publicKeyTweakMul","publicKeyCombine","publicKeys","signatureNormalize","signature","signatureExport","signatureImport","signatureImportLax","sigObj","sign","signOptions","noncefn","attempt","bufferAlgo","bufferData","sig","ecdsaSign","recovery","recid","verify","ecdsaVerify","recover","ecdsaRecover","ecdh","ecdhUnsafe","anObject","regexpExec","R","newPromiseCapabilityModule","perform","PROMISE_STATICS_INCORRECT_ITERATION","all","iterable","capability","$promiseResolve","remaining","alreadyCalled","DOMIterables","DOMTokenListPrototype","createNonEnumerableProperty","handlePrototype","CollectionPrototype","COLLECTION_NAME","parentNode","removeChild","r","children","defaultProps","ref","props","__k","__","__b","__e","__d","__c","__v","vnode","w","base","debounceRendering","_","some","__P","A","__n","ownerSVGElement","appendChild","nextSibling","insertBefore","D","N","setProperty","style","cssText","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","event","contextType","__E","render","E","__h","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","__r","getChildContext","getSnapshotBeforeUpdate","diffed","localName","createTextNode","createElementNS","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","checked","unmount","componentWillUnmount","I","L","Consumer","Provider","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","__H","useDebugValue","F","q","clearTimeout","isPureReactComponent","__proto__","isReactComponent","displayName","only","U","__u","fallback","delete","revealOrder","Map","set","container","for","firstChild","V","Z","persist","stopPropagation","preventDefault","isPropagationStopped","isDefaultPrevented","nativeEvent","class","$$typeof","className","multiple","selected","ondoubleclick","ondblclick","onbeforeinput","onchange","oninput","B","J","Q","Y","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","unstable_batchedUpdates","Suspense","SuspenseList","lazy","events_1","safeApply","Reflect","arrayClone","SafeEventEmitter","doError","_events","listeners","WS","WebSocket","SocketTransport","_queue","_subscriptions","_protocol","_version","_url","_netMonitor","_socket","_nextSocket","subscriptions","netMonitor","_socketCreate","readyState","_socketClose","topic","silent","_socketSend","getWebSocketUrl","onmessage","_socketReceive","onopen","_socketOpen","onerror","_socketError","onclose","_queueSubscriptions","_pushQueue","close","socketMessage","JSON","send","_setToQueue","startsWith","splitUrl","env","queryString","EthQuery","pify","BaseFilterWithHistory","bnToHex","hexToInt","incrementHexInt","minBlockRef","blockRefIsNumber","LogFilter","ethQuery","fromBlock","toBlock","address","topics","currentBlock","includes","newLogs","_fetchLogs","addInitialResults","oldBlock","newBlock","matchingLogs","matchLog","addResults","getLogs","blockNumber","normalizedLogAddress","topicsMatch","every","topicPattern","logTopic","subtopicsToMatch","subtopicsIncludeWildcard","topicDoesMatch","subscribeToPromise","subscribeToIterable","return","subscribeToObservable","obs","isArrayLike","subscribeToArray","isPromise","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","superInit","subInit","typedArray","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float64Array","typedArrayByteLength","of","HmacSHA224","freeGlobal","self","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","fromCharCode","mapDomain","string","parts","labels","encoded","ucs2decode","extra","output","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","input","out","basic","oldi","baseMinusT","inputLength","bias","encode","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","isPrototypeOf","Prototype","CorkedRequest","finish","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","Stream","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","realHasInstance","destroyImpl","_require","getHighWaterMark","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","isDuplex","objectMode","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","ret","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","rState","endEmitted","endWritable","corkReq","getBuffer","hasInstance","cork","uncork","setDefaultEncoding","end","_undestroy","undestroy","WalletLinkSdkUI","LinkFlow_1","Snackbar_1","cssReset_1","WalletLinkUI_1","WalletLinkUI","attached","snackbar","Snackbar","darkMode","linkFlow","LinkFlow","sessionId","session","sessionSecret","secret","walletLinkUrl","connected$","isParentConnection","documentElement","attach","injectCssReset","connectDisabled","setConnectDisabled","onCancel","snackbarProps","isUnlinkedErrorState","autoExpand","menuItems","isRed","info","svgWidth","svgHeight","defaultFillRule","defaultClipRule","onClick","onResetConnection","presentItem","location","reload","EMPTY","emptyScheduled","getBuiltIn","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","fromArrayBuffer","fromObject","assertSize","isEncoding","actual","fromArrayLike","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","val","dir","isNaN","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","list","pos","swap16","swap32","swap64","inspect","max","thisStart","thisEnd","thisCopy","targetCopy","isFinite","_arr","MAX_ARGUMENTS_LENGTH","codePoints","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","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","toByteArray","src","dst","INPUT_ERROR","FINALIZE_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA3_NO_NODE_JS","versions","node","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","SHAKE_PADDING","CSHAKE_PADDING","KECCAK_PADDING","PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","bits","padding","outputType","Keccak","update","createShakeOutputMethod","outputBits","createCshakeOutputMethod","methods","createKmacOutputMethod","createOutputMethods","createMethod","createShakeMethod","createCshakeMethod","bytepad","createKmacMethod","Kmac","algorithms","methodNames","algorithm","methodName","newMethodName","blocks","reset","finalized","block","blockCount","byteCount","outputBlocks","extraBytes","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","arrayBuffer","digest","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","asyncGeneratorStep","gen","_throw","_asyncToGenerator","V8_VERSION","METHOD_NAME","Boolean","ethUtil","ethAbi","typedSignatureHash","typedData","types","schema","soliditySHA3","recoverPublicKey","sigParams","fromRpcSig","ecrecover","getPublicKeyFor","msgParams","msgHash","hashPersonalMessage","padWithZeroes","number","myString","concatSig","rSig","sSig","vSig","rStr","sStr","vStr","intToHex","normalize","personalSign","ecsign","recoverPersonalSignature","sender","publicToAddress","senderHex","extractPublicKey","hashBuffer","signTypedData","recoverTypedSignature","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","encodeChunk","uint8","maxChunkLength","len2","Web3RequestCanceledMessage","RelayMessage_1","RelayMessageType","WEB3_REQUEST_CANCELED","textData","atob","btoa","Hmac","inner","outer","_init","fromArray","subtype","overrides","mixIn","$super","instance","properties","propertyName","encoder","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","random","rcache","m_w","m_z","mask","_r","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","unescape","BufferedBlockAlgorithm","_append","doFlush","dataSigBytes","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","processedWords","messageUpdate","hasher","HMAC","__awaiter","_arguments","generator","adopt","step","__generator","body","sent","trys","ops","verb","op","__export","secp256k1_1","random_1","SECP256K1_PRIVATE_KEY_SIZE","createPrivateKey","pk","getRandomBytes","createPrivateKeySync","getRandomBytesSync","isArrayIteratorMethod","lengthOfArrayLike","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","callFn","groupBy","keySelector","elementSelector","durationSelector","subjectSelector","GroupByOperator","GroupBySubscriber","attemptedToUnsubscribe","_group","group","groupedObservable","GroupedObservable","GroupDurationSubscriber","clear","removeGroup","groupSubject","refCountSubscription","_subscribe","InnerRefCountSubscription","randombytes","resp","integer","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","dontCallGetSet","sham","squeezing","initialize","rate","capacity","absorb","keccakState","p1600","absorbLastFewBits","squeeze","dest","internalObjectKeys","enumBugKeys","hiddenKeys","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","stringifySafely","rawValue","parser","transformRequest","isFormData","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","merge","scheduleArray","http","https","validateParams","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","baseGetTag","argsTag","baseIsArguments","PROPER_FUNCTION_NAME","PROPER","$toString","getRegExpFlags","TO_STRING","RegExpPrototype","n$ToString","NOT_GENERIC","flags","INCORRECT_NAME","pattern","unsafe","NextId","_pollingInterval","_wsReady","connection","detectNetwork","_websocket","_requests","messageEvent","_subs","processFunc","fauxPoll","setInterval","unref","_detectNetwork","rid","jsonrpc","param","subIdPromise","_subIds","subId","_emitted","_getFilter","removed","formatter","filterLog","emitReceipt","getTransactionReceipt","receipt","listenerCount","CONNECTING","UNKNOWN_ERROR","_network","apiKey","checkAbstract","NOT_IMPLEMENTED","defaultApiKey","allowGzip","throttleCallback","blockTag","getTransactionPostData","transaction","gasLimit","gasPrice","maxFeePerGs","maxPriorityFeePerGas","nonce","storageKeys","getResult","throttleRetry","getJsonResult","checkLogTag","checkError","SERVER_ERROR","CALL_EXCEPTION","responseText","INSUFFICIENT_FUNDS","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","UNPREDICTABLE_GAS_LIMIT","getBaseUrl","accum","baseUrl","apikey","post","getPostUrl","getUrl","getPostData","procFunc","throttleSlotInterval","isCommunityResource","payloadStr","fetch","signedTransaction","catch","includeTransactions","txhash","transactionHash","postData","topic0","logs","blockHash","getBlock","ethusd","addressOrName","startBlock","endBlock","resolveName","startblock","endblock","tx","creates","contractAddress","transactionResponse","timeStamp","timestamp","Date","getTime","checkNetworks","median","maxDelta","middle","abs","isBigNumber","nextRid","stall","cancel","timer","wait","getPromise","ForwardErrors","ForwardProperties","exposeDebugConfig","weight","normalizedTally","configs","tally","getProcessFunc","_highestBlockNumber","confirmations","transactions","waitForSync","cancelled","oncePoll","getRunner","currentBlockNumber","getEtherPrice","getStorageAt","providerConfigs","configOrProvider","isProvider","stallTimeout","priority","total","networkOrReady","results","sendTransaction","getBlockNumber","shuffle","t0","inflightWeight","runner","staller","backend","waiting","race","errorCode","reason","IpcProvider","defaultProjectId","password","projectId","projectSecret","apiKeyObj","assertArgument","user","_nextId","_pendingBatch","inflightRequest","_pendingBatchAggregator","batch","inflight","defaultApplicationIds","applicationId","loadBalancer","applicationSecretKey","getDefaultProvider","NETWORK_ERROR","NodesmithProvider","Web3Provider","definePropertyModule","CONSTRUCTOR_NAME","Constructor","makePrefix","filterKeys","hideFunctions","branch","growBranch","lastStates","showValues","lastKey","circular","line","lastStatesCopy","lastState","idx","Treeify","lineCallback","hideFunctionsArg","GF","p1","p2","coeff","divident","divisor","generateECPolynomial","degree","poly","arrayWithHoles","require","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","isValid","_this2","isAccount","hasMnemonic","mnemonic","phrase","signingKey","srcMnemonic","locale","fromMnemonic","derivePath","isSigningKey","_mnemonic","_signingKey","signDigest","domain","populated","resolveNames","progressCallback","entropy","extraEntropy","json","account","wordlist","verifyMessage","verifyTypedData","ctor","superCtor","super_","TempCtor","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","nextHandle","RESOLVED","activeHandles","findAndClearHandle","handle","Immediate","setImmediate","clearImmediate","AsapAction","AsapScheduler","asapScheduler","asap","Transaction","Subprovider","NonceTrackerSubprovider","nonceCache","handleRequest","cachedResult","rawTx","getSenderAddress","hexNonce","createKeccakHash","keccak","parallelLimit","_eachOf","_eachOf2","_parallel","_parallel2","tasks","objectToString","ConnectableObservable","subjectFactory","_refCount","_isComplete","getSubject","_subject","connect","_connection","ConnectableSubscriber","refCount","connectableObservableDescriptor","connectableProto","operator","connectable","getMethod","kind","innerResult","innerError","pad","ZeroPadding","detectEnv","detectOS","os","isAndroid","isIOS","navigator","maxTouchPoints","isMobile","isNode","isBrowser","getNavigator","getFromWindow","getFromWindowOrThrow","getDocumentOrThrow","getDocument","getNavigatorOrThrow","getLocationOrThrow","getLocation","getCryptoOrThrow","getCrypto","getLocalStorageOrThrow","getLocalStorage","getClientMeta","safeJsonParse","safeJsonStringify","setLocal","raw","local","setItem","getLocal","getItem","removeLocal","removeItem","mobileLinkChoiceKey","formatIOSMobile","uri","encodedUri","universalLink","deepLink","endsWith","saveMobileLinkInfo","focusUri","getMobileRegistryEntry","registry","getMobileLinkRegistry","whitelist","links","API_URL","getWalletRegistryUrl","getDappRegistryUrl","getAppLogoUrl","formatMobileRegistryEntry","platform","shortName","metadata","color","colors","primary","logo","universal","native","formatMobileRegistry","freeSelf","MD5","EvpKDF","keySize","iterations","compute","salt","derivedKey","derivedKeyWords","FunctionPrototype","SubjectSubscriber","Subject","observers","hasError","thrownError","AnonymousSubject","_trySubscribe","asObservable","observable","_doParallel","_doParallel2","_map2","QRCode","preact_1","hooks_1","qrcode_svg_1","svg","setSvg","qrcode","content","background","bgColor","fgColor","ecl","height","image","alt","BaseX","alphabet","_alphabetMap","digits","carry","_leader","Base32","Base58","createAsyncMiddleware","asyncMiddleware","req","resolveNextPromise","nextPromise","returnHandlerCallback","nextWasCalled","asyncNext","runReturnHandlersCallback","channel","html","validateArgumentsLength","IS_IOS","IS_NODE","Dispatch","MessageChannel","ONREADYSTATECHANGE","run","listener","postMessage","port2","port1","importScripts","Deno","v8","hasNextTick","hasSetImmediate","wrap","_slice","_slice2","_defer","__CANCEL__","ERROR_SESSION_CONNECTED","ERROR_SESSION_DISCONNECTED","ERROR_SESSION_REJECTED","ERROR_MISSING_JSON_RPC","ERROR_MISSING_RESULT","ERROR_MISSING_ERROR","ERROR_MISSING_METHOD","ERROR_MISSING_ID","ERROR_MISSING_REQUIRED","ERROR_INVALID_RESPONSE","ERROR_INVALID_URI","ERROR_QRCODE_MODAL_NOT_PROVIDED","ERROR_QRCODE_MODAL_USER_CLOSED","_eventEmitters","eventEmitter","eventEmitters","storageId","alphanumerical","bridges","char","extractHostname","extractRootDomain","randomBridgeIndex","selectRandomBridgeUrl","shouldSelectRandomly","getBridgeUrl","_bridge","_clientId","_clientMeta","_peerId","_peerMeta","_handshakeId","_handshakeTopic","_connected","_accounts","_chainId","_networkId","_rpcUrl","_eventManager","connectorOpts","clientMeta","_cryptoLib","cryptoLib","_sessionStorage","sessionStorage","_qrcodeModal","qrcodeModal","_qrcodeModalOptions","qrcodeModalOptions","_signingMethods","signingMethods","bridge","_getStorageSession","handshakeId","_subscribeToSessionResponse","_transport","transport","clientId","_subscribeToInternalEvents","_initTransport","_subscribeToSessionRequest","pushServerOpts","_registerPushServer","peerMeta","_uri","_formatUri","handshakeTopic","_parseUri","networkId","accounts","connected","peerId","instantRequest","_generateKey","_formatRequest","trigger","endInstantRequest","killSession","_sendCallRequest","createSession","pending","_sendSessionRequest","sessionStatus","sessionParams","approved","_sendResponse","_setStorageSession","sessionError","_formatResponse","_removeStorageSession","_manageStorageSession","_sendRequest","_handleSessionDisconnect","parsedTx","chainParams","_subscribeToResponse","formattedRequest","formattedResponse","callRequest","encryptionPayload","_encrypt","forcePushNotification","errorMsg","_subscribeToCallResponse","baseResponse","errorResponse","successResponse","transportClose","activeTopics","_decrypt","_handleSessionResponse","mobileLinkUrl","internalPayload","_handleIncomingMessages","generateKey","encrypt","decrypt","getSession","setSession","removeSession","token","pushSubscription","peerName","language","Accept","success","_length","verifyHmac","cipherText","hmac","hmacHex","unsigned","chmac","chmacHex","providedIv","ivArrayBuffer","ivHex","contentString","cipherTextHex","verified","utf8","XHR","formatError","xhr","responded","setRequestHeader","ontimeout","onreadystatechange","ProviderEngine","CacheSubprovider","FixtureSubprovider","FilterSubprovider","HookedWalletSubprovider","NonceSubprovider","pollingInterval","infuraId","isConnecting","connectCallbacks","enable","wc","getWalletConnector","subscribeWalletConnector","sendAsyncPromise","sendAsync","onConnect","triggerConnect","connector","disableSessionCreation","onDisconnect","handleOtherRequests","formatResponse","handleReadRequests","sendCustomRequest","updateState","updateRpcUrl","custom","updateHttpConnection","addProvider","eth_hashrate","eth_mining","eth_syncing","net_listening","web3_clientVersion","configWallet","setEngine","getAccounts","processMessage","signMessage","processPersonalMessage","signPersonalMessage","processSignTransaction","txParams","signTransaction","processTransaction","processTypedMessage","Utils","KanjiData","toSJIS","rxSubscriber","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","ctx","seen","stylize","stylizeNoColor","depth","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","recurseTimes","primitive","formatPrimitive","visibleKeys","isError","isRegExp","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","prev","cur","numLinesEst","isSymbol","isPrimitive","debuglog","NODE_DEBUG","pid","months","getHours","getMinutes","getSeconds","getDate","getMonth","prop","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","original","callbackified","maybeCb","rej","setPrototypeOf","defineProperties","promisify","promiseResolve","promiseReject","OuterSubscriber","notifyNext","outerValue","innerValue","outerIndex","innerIndex","innerSub","notifyError","notifyComplete","serializedParams","toISOString","hashmarkIndex","isLength","handlers","removeHexLeadingZeros","sanitizeHex","removeHexPrefix","padRight","padLeft","sanitizeBytes","swapHex","swapBytes","splitBytes","calcByteLength","trimRight","trimLeft","concatArrays","concatBuffers","getEncoding","getType","isBinaryString","binaryToNumber","binaryToUtf8","binaryToHex","binaryToArray","binaryToBuffer","numberToBinary","numberToUtf8","numberToHex","numberToArray","numberToBuffer","utf8ToBinary","utf8ToNumber","utf8ToHex","utf8ToArray","utf8ToBuffer","hexToBinary","hexToNumber","hexToUtf8","hexToArray","hexToBuffer","arrayToBinary","arrayToNumber","arrayToUtf8","arrayToHex","arrayToBuffer","bufferToBinary","bufferToNumber","bufferToUtf8","bufferToArray","is_typedarray_1","typedarray_to_buffer_1","ENC_HEX","ENC_UTF8","ENC_BIN","TYPE_BUFFER","TYPE_ARRAY","TYPE_TYPED_ARRAY","TYPE_ARRAY_BUFFER","STRING_ZERO","prefixed","isDefined","bin","diff","byteSize","reverseString","padString","assertion","errorMessage","left","repeat","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","shouldUseNative","test1","test2","order2","test3","letter","WalletLinkConnection","rxjs_1","operators_1","init_1","Session_1","types_1","ClientMessage_1","RxWebSocket_1","ServerMessage_1","HEARTBEAT_INTERVAL","REQUEST_TIMEOUT","sessionKey","serverUrl","walletLinkAnalytics","WebSocketClass","lastHeartbeatResponse","nextReqId","IntNumber","connectedSubject","BehaviorSubject","linkedSubject","sessionConfigSubject","ReplaySubject","ws","RxWebSocket","connectionState$","tap","sendEvent","EVENTS","CONNECTED_STATE_CHANGE","sessionIdHash","Session","cs","ConnectionState","DISCONNECTED","flatMap","retry","switchMap","CONNECTED","authenticate","sendIsLinked","sendGetSessionConfig","distinctUntilChanged","catchError","updateLastHeartbeat","heartbeat","incomingData$","incomingJSONData$","LINKED","linked","onlineGuests","SESSION_CONFIG_RECEIVED","metadata_keys","webhookId","webhookUrl","STARTED_CONNECTING","disconnect","take","linked$","sme","eventId","ClientMessageSetSessionConfig","onceConnected$","makeRequest","isServerMessageFail","callWebhook","ClientMessagePublishEvent","onceLinked$","sendData","reqId","timeoutWith","ClientMessageHostSession","ClientMessageIsLinked","ClientMessageGetSessionConfig","IEvents","X32WordArray","C_x64","x64","Word","high","low","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","ShortCurve","conf","toRed","red","tinv","two","redInvm","zeroA","fromRed","cmpn","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","BasePoint","inf","forceRed","JPoint","one","zOne","modn","betas","_getEndoRoots","cmp","lambdas","redMul","vec","_getEndoBasis","ntinv","redNeg","redSqrt","l1","redAdd","l2","redSub","a0","a1","a2","prevR","aprxSqrt","ushrn","bitLength","x1","y1","x2","y2","neg","len1","sqr","_endoSplit","v1","v2","divRound","q1","q2","k1","k2","pointFromX","odd","redSqr","redIAdd","zero","isOdd","point","ax","rhs","redISub","_endoWnafMulAdd","points","coeffs","jacobianResult","npoints","ncoeffs","_getBeta","ineg","_wnafMulAdd","pointFromJSON","fromJSON","precomputed","endoMul","naf","wnd","doubles","obj2point","eq","dbl","nx","ny","ys1","dyinv","getX","getY","_hasDoubles","_fixedNafMul","_wnafMul","mulAdd","jmulAdd","_precompute","negate","toJ","jpoint","toP","zinv","zinv2","ay","pz2","z2","u1","u2","s1","s2","h2","h3","nz","mixedAdd","dblp","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","zs","rx","xc","redN","iadd","elliptic","rand","ec","eddsa","Readable","_eachOfLimit","_noop","_noop2","_once","_once2","_iterator","_iterator2","_onlyOnce","_onlyOnce2","_breakLoop","_breakLoop2","iteratee","nextElem","running","looping","iterateeCallback","replenish","elem","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","MAX_SAFE_INTEGER","Iterators","text","processFn","promiseModule","errorFirst","multiArgs","exclude","include","excludeMain","nullTag","undefinedTag","stable","deterministicStringify","stableStringify","LIMIT_REPLACE_NODE","CIRCULAR_REPLACE_NODE","replacerStack","defaultOptions","depthLimit","edgesLimit","replacer","spacer","decirc","replaceGetterValues","setReplace","propertyDescriptor","edgeIndex","compareFunction","deterministicDecirc","ripemd160","computeHmac","__extends","extendStatics","__assign","progress_event_1","errors_1","xml_http_request_event_target_1","xml_http_request_upload_1","Cookie","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","statusText","upload","XMLHttpRequestUpload","responseUrl","withCredentials","_method","_sync","_headers","_loweredHeaders","_mimeOverride","_request","_response","_responseParts","_responseHeaders","_aborting","_loadedBytes","_totalBytes","_lengthComputable","_restrictedMethods","CONNECT","TRACE","TRACK","_restrictedHeaders","cookie","cookie2","date","dnt","expect","referer","te","trailer","upgrade","via","_privateHeaders","_userAgent","arch","_anonymous","anon","SecurityError","xhrUrl","_parseUrl","_setReadyState","InvalidStateError","loweredName","_sendFile","_sendHttp","NetworkError","_setError","_dispatchProgress","getResponseHeader","getAllResponseHeaders","overrideMimeType","mimeType","nodejsSet","nodejsHttpAgent","httpAgent","nodejsHttpsAgent","httpsAgent","parsedUrl","SyntaxError","nodejsBaseUrl","dispatchEvent","ProgressEvent","_setData","_finalizeHeaders","_sendHxxpRequest","cookieJar","getCookies","CookieAccessInfo","toValueString","hxxp","agent","requestMethod","_onHttpTimeout","_onHttpResponse","_onHttpRequestError","_startUpload","Connection","Host","Referer","setCookies","statusCode","_reset","_onHttpResponseData","_onHttpResponseEnd","_onHttpResponseClose","STATUS_CODES","_parseResponseHeaders","lengthString","_parseResponse","eventType","lengthComputable","loaded","urlString","absoluteUrl","xhrUser","xhrPassword","name_1","view","_parseResponseEncoding","CookieJar","XMLHttpRequestEventTarget","globalAgent","V8_PROTOTYPE_DEFINE_BUG","objectKeys","Properties","parseBytes","cachedProperty","KeyPair","_secret","isPoint","pub","_pub","_pubBytes","fromPublic","fromSecret","encodePoint","decodePoint","priv","lastIx","encodingLength","decodeInt","privBytes","getSecret","getPublic","pubBytes","_arrayWithHoles","_iterableToArrayLimit","_s","_n","_nonIterableRest","isAxiosError","description","fileName","lineNumber","columnNumber","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","finalProcessedData","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","ciphertext","C_mode","finalProcessedBlocks","CBC","xorBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","CipherParams","BlockCipher","modeCreator","_mode","__creator","cipherParams","C_format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","derivedParams","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","requestURL","endian","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","move","_initNumber","_initArray","_parseHex","_parseBase","_strip","parseLength","limbLen","limbPow","word","imuln","_iaddn","_move","_expand","_normSign","groupSizes","groupBases","groupSize","groupBase","isZero","modrn","idivn","allocate","ArrayType","toBitArray","wbit","smallMulTo","ncarry","rword","maxJ","reqLength","postfix","_toArrayLikeLE","_toArrayLikeBE","clz32","_countBits","_zeroBits","zeroBits","inotn","iaddn","testn","notn","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","isub","comb10MulTo","mid","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","bl4","bh4","bl5","bh5","bl6","bh6","bl7","bh7","bl8","bh8","bl9","bh9","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","guessLen13b","conjugate","normalize13b","round","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","isqr","iushln","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","bhiBits","qj","divmod","positive","divn","umod","dm","half","r2","andln","acc","egcd","isEven","yp","xp","im","jm","gcd","_invmp","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lten","lte","eqn","Red","convertTo","_forceRed","convertFrom","redShl","shl","_verify2","redIMul","_verify1","redISqr","sqrt","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","mod3","nOne","lpow","inv","windowSize","currentLen","isWeb3ResponseMessage","Web3ResponseMessage","WEB3_RESPONSE","IMPOSSIBLE_CASE","TWEAK_ADD","TWEAK_MUL","CONTEXT_RANDOMIZE_UNKNOW","SECKEY_INVALID","PUBKEY_PARSE","PUBKEY_SERIALIZE","PUBKEY_COMBINE","SIG_PARSE","SIGN","RECOVER","ECDH","cond","isUint8Array","numbers","isCompressed","toTypeString","getAssertedOutput","seed","contextRandomize","seckey","pubkey","publicKeyNegate","pubkeys","outputlen","msg32","hashfn","xbuf","ybuf","getChecksumAddress","chars","expanded","hashed","log10","LN10","ibanLookup","safeDigits","ibanChecksum","checksum","getAddress","isAddress","getIcapAddress","base36","getContractAddress","getCreate2Address","initCodeHash","__webpack_amd_options__","endianness","loadavg","uptime","freemem","MAX_VALUE","totalmem","cpus","release","appVersion","networkInterfaces","getNetworkInterfaces","tmpdir","tmpDir","EOL","homedir","defineIterator","STRING_ITERATOR","setInternalState","getterFor","iterated","consolePrefix","uniqueArray","capitalizeFirstLetter","previousWarnOnceMessages","warnOnce","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","hasToPromiseFn","toPromise","asPromise","getRandomElement","defaultParams","title","titleText","footer","icon","iconColor","iconHtml","template","toast","showClass","popup","backdrop","hideClass","customClass","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","showConfirmButton","showDenyButton","showCancelButton","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","denyButtonText","denyButtonAriaLabel","denyButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","focusConfirm","focusDeny","focusCancel","returnFocus","showCloseButton","closeButtonHtml","closeButtonAriaLabel","loaderHtml","showLoaderOnConfirm","showLoaderOnDeny","imageUrl","imageWidth","imageHeight","imageAlt","timerProgressBar","inputPlaceholder","inputLabel","inputValue","inputOptions","inputAutoTrim","inputAttributes","inputValidator","returnInputValueOnDeny","validationMessage","grow","progressSteps","currentProgressStep","progressStepsDistance","willOpen","didOpen","didRender","willClose","didClose","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","swalPrefix","prefix","items","swalClasses","iconTypes","getContainer","querySelector","elementBySelector","selectorString","elementByClass","getPopup","getIcon","getTitle","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","confirm","getDenyButton","deny","getInputLabel","getLoader","loader","getCancelButton","getActions","getFooter","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","focusableElementsWithTabindex","querySelectorAll","tabindexA","getAttribute","tabindexB","otherFocusableElements","isVisible","isModal","hasClass","shown","isToast","isLoading","hasAttribute","states","previousBodyPadding","setInnerHtml","textContent","DOMParser","parseFromString","child","classList","contains","removeCustomClasses","remove","applyCustomClass","addClass","getInput","inputClass","checkbox","radio","focusInput","toggleClass","removeClass","getDirectChildByClass","HTMLElement","applyNumericalStyle","property","removeProperty","show","display","hide","setStyle","selector","toggle","offsetWidth","offsetHeight","getClientRects","allButtonsAreHidden","isScrollable","scrollHeight","clientHeight","hasCssAnimation","getComputedStyle","animDuration","getPropertyValue","transDuration","animateTimerProgressBar","transition","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","restoreActiveElement","scrollX","scrollY","restoreFocusTimeout","scrollTo","sweetHTML","file","select","textarea","resetOldContainer","oldContainer","resetValidationMessage","currentInstance","addInputChangeListeners","rangeOutput","getTarget","setupAccessibility","setupRTL","targetElement","direction","rtl","oldContainerExisted","parseHtmlToContainer","handleObject","jquery","handleJqueryElem","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","animation","measureScrollbar","scrollDiv","scrollbarWidth","getBoundingClientRect","clientWidth","renderActions","renderButtons","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","styled","backgroundColor","button","buttonType","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","center","growClass","privateProps","awaitingPromise","WeakMap","innerParams","domCache","inputClasses","renderInput","rerender","inputContainer","setAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attrName","attr","setInputPlaceholder","placeholder","setInputLabel","prependTo","labelClass","innerText","insertAdjacentElement","inputType","checkAndSetInputValue","email","tel","rangeInput","disabled","checkboxContainer","getMargin","marginLeft","marginRight","initialPopupWidth","textareaResizeHandler","textareaWidth","MutationObserver","observe","attributeFilter","renderContent","htmlContainer","renderFooter","renderCloseButton","closeButton","renderIcon","setContent","applyStyles","iconType","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","newContent","oldContent","iconContent","defaultIconHtml","question","warning","borderColor","sel","renderImage","renderProgressSteps","progressStepsContainer","stepEl","createStepElement","lineEl","createLineElement","renderTitle","renderPopup","addClasses","modal","DismissReason","setAriaHidden","bodyChildren","unsetAriaHidden","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","swalParams","showWarningsForAttributes","swalButtons","option","optionValue","optionName","paramNames","allowedElements","allowedAttributes","attribute","defaultInputValidators","setDefaultInputValidators","validateCustomTargetElement","setParameters","Timer","started","fixScrollbar","innerHeight","paddingRight","undoScrollbar","iOSfix","iOS","MSStream","iosfix","scrollTop","top","lockBodyScroll","addBottomPaddingForTallPopups","ua","webkit","iOSSafari","bottomPanelHeight","paddingBottom","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","isStylus","isZoom","touches","touchType","undoIOSfix","SHOW_CLASS_TIMEOUT","openPopup","bodyStyles","initialBodyOverflow","overflowY","addClasses$1","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","showLoading","buttonToReplace","Swal","replaceButton","loading","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","files","processInputOptions","populateInputOptions","formatInputOptions","hideLoading","renderOption","optionLabel","isSelected","inputOption","optgroup","radioValue","radioLabel","radioInput","radioLabelElement","radios","valueFormatted","showRelatedButton","getElementsByClassName","getInput$1","privateMethods","swalPromiseResolve","swalPromiseReject","isVisible$1","clickConfirm","click","clickDeny","clickCancel","removeKeydownHandler","keydownTarget","keydownHandlerAdded","keydownHandler","addKeydownHandler","dismissWith","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","isComposing","keyCode","handleEnter","handleTab","handleArrows","handleEsc","outerHTML","btnIndex","shiftKey","sibling","buttonToFocus","HTMLButtonElement","removePopupAndResetState","triggerDidCloseAndDispose","isSafari","removeBodyClasses","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","handlePopupAnimation","rejectPromise","isConfirmed","isDenied","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","setButtonsDisabled","buttons","setInputDisabled","radiosContainer","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","inputerror","resetValidationMessage$1","getProgressSteps$1","validUpdatableParams","filterValidParams","updatedParams","disposeSwal","disposeWeakMaps","unsetWeakMaps","instanceMethods","disableLoading","closePopup","closeModal","closeToast","handleConfirmButtonClick","handleConfirmOrDenyWithInput","handleDenyButtonClick","handleCancelButtonClick","handleInputValidator","checkValidity","validationPromise","preDenyPromise","preDenyValue","error$$1","rejectWith","succeedWith","preConfirmPromise","preConfirmValue","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","onclick","isAnyButtonShown","ignoreOutsideClick","onmousedown","onmouseup","isJqueryElement","isElement","Element","argsToParams","fire","mixin","mixinParams","MixinSwal","priorityMixinParams","_main","getTimerLeft","stopTimer","resumeTimer","toggleTimer","increaseTimer","increase","isTimerRunning","isRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","staticMethods","enableLoading","SweetAlert","outerParams","userParams","prepareParams","populateDomCache","swalPromise","onFinally","finally","dismiss","setupTimer","initFocus","templateParams","globalState$$1","focusButton","blurActiveElement","noWar","video","Sweetalert2","swal","sweetAlert","getElementsByTagName","styleSheet","RabbitLegacy","NATIVE_SYMBOL","keyFor","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","isValidSignature","toRpcSig","bytes_1","hash_1","calculateSigRecovery","isValidSigRecovery","senderPubKey","homesteadOrLater","SECP256K1_N_DIV_2","SECP256K1_N","rBN","sBN","EC","ecparams","toPublicKey","bn","keyFromPublic","scalar","shared","errorGas","getLowerCase","JsonRpcSigner","addressOrIndex","UncheckedJsonRpcSigner","_address","fromAddress","estimate","estimateGas","hexTx","hexlifyTransaction","_getInternalBlockNumber","sendUncheckedTransaction","getTransaction","_wrapTransaction","getPayload","waitForTransaction","allowedTransactionKeys","accessList","maxFeePerGas","_eventLoopCache","_cache","_uncachedDetectNetwork","serverError","getSigner","connectUnchecked","cache","feeData","getFeeData","prepareRequest","_startPending","_startEvent","_pendingFilter","pendingFilter","filterId","poll","hashes","seq","_stopEvent","allowExtra","allowed","doLimit","cssReset_css_1","styleEl","WalletLink","WalletLinkProvider","WalletLinkProvider_1","WalletLink_1","WalletLinkProvider_2","WalletLink_2","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","plugin","hook","targetQueue","onQueue","defaultSettings","settings","localSettingsSaveId","currentSettings","localStorage","fallbacks","pluginId","setSettings","proxiedOn","Proxy","_target","proxiedTarget","setupDevtoolsPlugin","pluginDescriptor","setupFn","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","__VUE_DEVTOOLS_PLUGINS__","EOF","USE_NATIVE_URL","defineBuiltInAccessor","anInstance","arrayFrom","codeAt","setToStringTag","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","getState","NativeURL","numberToString","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","partsLength","radix","ipv4","parseIPv6","numbersSeen","ipv4Piece","swaps","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","wss","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","bindURL","stateOverride","bufferCodePoints","seenAt","seenBracket","seenPasswordToken","scheme","fragment","cannotBeABaseURL","isSpecial","includesCredentials","encodedCodePoints","shortenPath","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","facade","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","getColorAttrib","attrib","toFixed","svgCmd","cmd","qrToPath","margin","moveBy","newRow","lineLength","col","row","qrData","getOptions","modules","qrcodesize","bg","light","dark","viewBox","svgTag","getWindowMetadata","window_getters_1","doc","loc","getIcons","icons","link","absoluteHref","finalPath","getWindowMetadataOfAny","metaTags","getName","getDescription","meta","pbkdf2","keylen","hashAlgorithm","hLen","DK","block1","destPos","fftm","clearCanvas","canvas","clearRect","getCanvasElement","canvasEl","getContext","getImageWidth","createImageData","qrToImageData","putImageData","renderToDataURL","rendererOpts","toDataURL","quality","createRandomId","currentProvider","generateFnFor","generateFnWithDefaultBlockFor","argCount","createPayload","getBalance","getCode","getTransactionCount","protocolVersion","syncing","coinbase","mining","hashrate","getBlockTransactionCountByHash","getBlockTransactionCountByNumber","getUncleCountByBlockHash","getUncleCountByBlockNumber","sendRawTransaction","getBlockByHash","getBlockByNumber","getTransactionByHash","getTransactionByBlockHashAndIndex","getTransactionByBlockNumberAndIndex","getUncleByBlockHashAndIndex","getUncleByBlockNumberAndIndex","getCompilers","compileLLL","compileSolidity","compileSerpent","newFilter","newBlockFilter","newPendingTransactionFilter","uninstallFilter","getFilterChanges","getFilterLogs","getWork","submitWork","submitHashrate","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","asyncIterator","createReadableStreamAsyncIterator","_Object$create","ReadableState","EElistenerCount","emitter","debug","debugUtil","StringDecoder","BufferList","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","onfinish","ondata","pause","dests","ev","removeAllListeners","_fromList","execPath","browser","argv","binding","cwd","chdir","exit","kill","umask","dlopen","memoryUsage","uvCounters","features","at","escapee","uffff","white","reviver","walk","Signature","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","toBytes","$Object","getAlgo","getOps","browserImportKey","importKey","browserAesEncrypt","subtle","cryptoKey","browserAesDecrypt","browserHmacSha256Sign","browserHmacSha512Sign","browserSha256","browserSha512","UNSCOPABLES","ArrayPrototype","MATCH","hex2rgba","hexCode","hexValue","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","iSrc","jSrc","getUniqueId","MAX","idCounter","_contentType","_body","loweredHeaders","waterfall","parallel","sigUtil","Semaphore","hexRegex","nonceLock","approveTransaction","autoApprove","approveMessage","approvePersonalMessage","approveDecryptMessage","approveEncryptionPublicKey","approveTypedMessage","mustProvideInConstructor","decryptMessage","encryptionPublicKey","signTypedMessage","publishTransaction","getGasPrice","cloneTxParams","gas","resemblesAddress","fixed","isValidAddress","resemblesData","isValidHex","nonPrefixed","extraParams","_parityRequests","_parityRequestCount","validateTransaction","validateMessage","validatePersonalMessage","validateDecryptMessage","processDecryptMessage","validateEncryptionPublicKey","processEncryptionPublicKey","validateTypedMessage","parityPostTransaction","parityPostSign","requestId","parityCheckRequest","didApprove","checkApproval","finalizeAndSubmitTx","finalizeTx","emitPayload","txHash","validateSender","senderIsValid","senderAddress","fillInTxExtras","leave","signedTx","taskResults","loadCompressedPublicKey","keyPair","loadUncompressedPublicKey","x3","loadPublicKey","savePublicKey","tweaked","pair","keyFromPrivate","nh","sigR","sigS","lenR","posR","lenS","posS","_noncefn","canonical","pers","recoveryParam","sigr","sigs","recoverPubKey","createError","pna","readableDestroyed","writableDestroyed","emitErrorNT","EthereumProviderError","fast_safe_stringify_1","stringifyReplacer","isValidEthProviderCode","NativePromiseConstructor","IS_BROWSER","IS_DENO","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","createCompileError","messages","defaultOnError","createPosition","column","createLocation","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","CHAR_PS","createScanner","_buf","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","currentChar","currentPeek","peek","resetPeek","skipToPeek","LITERAL_DELIMITER","ERROR_DOMAIN$1","createTokenizer","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","currentType","startLoc","endLoc","lastType","lastOffset","lastStartLoc","lastEndLoc","braceNest","inLinked","onError","emitError","getToken","getEndToken","eat","scnr","peekSpaces","skipSpaces","isIdentifierStart","cc","isNumberStart","isNamedIdentifierStart","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","isPluralStart","isTextStart","hasSpace","detectModulo","takeChar","takeIdentifierChar","closure","takeDigit","takeHexDigit","getDigits","readText","readNamedIdentifier","readListIdentifier","readLiteral","literal","readEscapeSequence","readUnicodeEscapeSequence","unicode","sequence","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","detect","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","ERROR_DOMAIN","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","fromCodePoint","createParser","tokenzer","startNode","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","nextConsumeToken","getTokenCaption","parseLinkedKey","parseLinked","linkedNode","modifier","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","endOffset","parsePlural","msgNode","hasEmptyMessage","cases","parseResource","createTransformer","ast","helpers","Set","helper","traverseNodes","transformer","traverseNode","createCodeGenerator","sourceMap","filename","breakLineCode","needIndent","_needIndent","indentLevel","_newline","withBreakLine","_breakLineCode","indent","withNewLine","level","deindent","newline","generateLinkedNode","generateNode","generateMessageNode","generatePluralNode","generateResource","baseCompile","assignedOptions","pathStateMachine","literalValueRE","isLiteral","stripQuotes","getPathCharType","formatSubPath","trimmed","newChar","typeMap","subPathDepth","maybeUnescapeQuote","nextChar","hit","handleFlatJson","subKeys","lastIndex","currentObj","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","getPluralIndex","pluralIndex","named","normalizeNamed","createMessageContext","pluralRule","pluralRules","orgPluralRule","_list","_named","_modifier","modifiers","processor","interpolate","IntlifyDevToolsHooks","I18nInit","FunctionTranslate","devtools","setDevToolsHook","initI18nDevTools","i18n","translateDevTools","createDevToolsHook","payloads","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","getDefaultLinkedModifiers","upper","lower","capitalize","toLocaleUpperCase","_compiler","registerMessageCompiler","compiler","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_cid","createCoreContext","fallbackLocale","datetimeFormats","numberFormats","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","warnHtmlMessage","escapeParameter","messageCompiler","onWarn","internalOptions","__datetimeFormatters","__numberFormatters","__meta","cid","__INTLIFY_PROD_DEVTOOLS__","handleMissing","getLocaleChain","__localeChainCache","appendBlockToChain","follow","appendLocaleToChain","tokens","appendItemToChain","updateFallbackLocale","defaultOnCacheKey","compileCache","compileToFunction","onCacheKey","cached","occurred","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","escapeParams","targetLocale","resolveMessageFormat","cacheBaseKey","errorDetector","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","locales","missingRet","getCompileOptions","msgCtx","arg1","arg2","arg3","resolveMessage","intlDefined","Intl","DateTimeFormat","NumberFormat","datetime","parseDateTimeArgs","datetimeFormat","formatToParts","arg4","clearDateTimeFormat","has","parseNumberArgs","numberFormat","clearNumberFormat","initFeatureFlags","needWarn","__VUE_I18N_FULL_INSTALL__","__VUE_I18N_LEGACY_API__","createI18nError","DEVTOOLS_META","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","SetPluralRulesSymbol","InejctWithOption","composerID","defineCoreMissingHandler","getLocaleMessages","__i18n","deepCopy","flatJson","isNotObjectOrIsArray","des","getMetaInfo","createComposer","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","getCoreContext","__v_emitter","framework","trackReactivityValues","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","rt","transrateVNode","numberParts","datetimeParts","setPluralRules","rules","getLocaleMessage","resolveMessages","targetLocaleMessages","messageValue","tm","setLocaleMessage","mergeLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","composer","__injectWithOption","convertComposerOptions","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sharedMessages","createVueI18n","vueI18n","availableLocales","__composer","componentInstanceCreatedListener","baseFormatProps","scope","Translation","keypath","required","slots","attrs","useI18n","useScope","__useComponent","getInterpolateArg","assignedAttrs","slot","renderFormatter","slotKeys","partFormatter","NUMBER_FORMAT_KEYS","DATETIME_FORMAT_KEYS","DatetimeFormat","getComposer$2","i18nInternal","__getInstance","vTDirective","parsedValue","parseValue","makeParams","beforeMount","beforeUpdate","app","pluginOptions","useI18nComponentName","globalInstall","component","directive","defineMixin","vuei18n","$options","optionsI18n","$root","$i18n","mergeToRoot","__onComponentInstanceCreated","__setInstance","$t","$rt","$tc","tc","$te","$d","$n","$tm","__deleteInstance","createI18n","__legacyMode","legacy","__globalInjection","globalInjection","__instances","__global","symbol","__VUE_I18N_SYMBOL__","provide","injectGlobalFields","appContext","__i18nGlobal","getComposer","composerOptions","setupLifeCycle","useComponent","globalExportProps","globalExportMethods","globalProperties","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","aConstructor","defaultConstructor","pref","HashZero","aesCbcEncrypt","aesCbcDecrypt","emitCloseNT","emitErrorAndCloseNT","config1","config2","getMergedValue","isPlainObject","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","LENGTH_256","LENGTH_512","AES_LENGTH","HMAC_LENGTH","AES_BROWSER_ALGO","HMAC_BROWSER_ALGO","HMAC_BROWSER","SHA256_BROWSER_ALGO","SHA512_BROWSER_ALGO","ENCRYPT_OP","DECRYPT_OP","SIGN_OP","VERIFY_OP","bufferSize","windowTime","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","OFB","_keystream","detectEthereumProvider","mustBeMetaMask","_validateInputs","handled","handleEthereum","ethereum","isMetaMask","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","__createBinding","__setModuleDefault","__importStar","formatBytes32String","Utf8ErrorFuncs","toUtf8String","toUtf8CodePoints","toUtf8Bytes","_toEscapedUtf8String","nameprep","hexDataSlice","hexDataLength","hexZeroPad","hexStripZeros","hexConcat","hexlify","base58","TransactionDescription","LogDescription","Interface","SigningKey","HDNode","defaultPath","isBytesLike","isBytes","zeroPad","arrayify","shallowCopy","resolveProperties","getStatic","defineReadOnly","checkProperties","fetchJson","_fetchData","RLP","Logger","checkResultErrors","FormatTypes","ParamType","FunctionFragment","EventFragment","ErrorFragment","ConstructorFragment","defaultAbiCoder","AbiCoder","Indexed","Utf8ErrorReason","UnicodeNormalizationForm","SupportedAlgorithm","mnemonicToSeed","isValidMnemonic","entropyToMnemonic","mnemonicToEntropy","getAccountPath","computePublicKey","recoverAddress","computeAddress","getJsonWalletAddress","TransactionTypes","serializeTransaction","parseTransaction","accessListify","joinSignature","splitSignature","soliditySha256","solidityKeccak256","solidityPack","shuffled","keccak256","commify","parseUnits","formatUnits","parseEther","formatEther","_TypedDataEncoder","hashMessage","parseBytes32String","abi_1","address_1","basex_1","hdnode_1","json_wallets_1","keccak256_1","logger_1","sha2_1","solidity_1","pack","properties_1","signing_key_1","strings_1","transactions_1","units_1","wallet_1","web_1","sha2_2","strings_2","createProperty","fin","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","concatAll","asyncScheduler","ethErrors","utils_1","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","isExtensible","FAILS_ON_PRIMITIVES","$entries","entries","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","ah","bh","dh","eh","fh","hh","fl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","refs","sortedRefs","sortBlockRefs","maxBlockRef","refA","refB","blockRef","hexString","int","needsLeftPad","unsafeRandomBytes","unsafeRandomNibble","baseTimes","abi","TYPED_MESSAGE_SCHEMA","additionalProperties","primaryType","TypedDataUtils","useV4","encodedTypes","encodedValues","hashType","encodeField","encodeData","parsedType","typeValuePairs","rawEncode","field","deps","findTypeDependencies","dep","encodeType","sanitizedData","EIP712Domain","sanitizeData","hashStruct","typedSignatureHashLegacy","hashForSignTypedDataLegacy","hashForSignTypedData_v3","hashForSignTypedData_v4","checkErrors","childPath","Coder","dynamic","Writer","_dataLength","_padding","writer","_writeData","paddingOffset","BUFFER_OVERRUN","_getValue","Reader","coerceFunc","allowLoose","_offset","_coerceFunc","coerce","loose","alignedLength","_peekBytes","readBytes","WalletLinkRelayEventManager","util_1","_nextRequestId","callbacks","idStr","prepend0x","transformData","isCancel","Cancel","throwIfCancellationRequested","cancelToken","throwIfRequested","signal","aborted","errorFunc","badCodepoint","ignoreFunc","BAD_PREFIX","UNEXPECTED_CONTINUE","OVERRUN","replaceFunc","OVERLONG","ignore","getUtf8CodePoints","extraLength","overlongMask","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","form","checkNormalize","escapeChar","_toUtf8String","EC_PRIVKEY_EXPORT_DER_COMPRESSED","EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED","lenb","lenbyte","rindex","slen","sindex","rvalue","svalue","SubProvider","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","nativeReplace","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","fullUnicode","matchStr","accumulatedResult","nextSourcePosition","replacerArgs","defineBuiltIns","createIteratorConstructor","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","safeGetBuiltIn","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","percentDecode","deserialize","find","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","entryIterator","entryNext","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","getAll","boundFunction","headersHas","headersSet","wrapRequestOptions","RequestConstructor","Request","isHexable","addSlice","checkSafeUint53","allowMissingPrefix","hexPad","HexCharacters","_vs","vs","recId","ownKeys","enumerableOnly","sym","_objectSpread2","loadWords","lang","langEn","register","wordlists","en","FilterOperator","FilterSubscriber","store","copyright","license","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","BitMatrix","reservedBit","reserved","isReserved","_throwError","writeValue","reader","readValue","coder","coders","arrayValues","unique","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","writeUpdatableValue","baseOffset","appendWriter","unpack","baseReader","subReader","offsetReader","baseType","uniqueNames","defaultChild","checkArgumentCount","writeBytes","maxUintValue","bounds","paramTypeBytes","paramTypeNumber","_getCoder","arrayChildren","arrayLength","components","_getWordSize","_getWriter","_getReader","BaseBlockTracker","sec","PollingBlockTracker","retryTimeout","keepEventLoopActive","setSkipCacheFlag","blockResetDuration","_provider","_retryTimeout","_keepEventLoopActive","_setSkipCacheFlag","_updateLatestBlock","getLatestBlock","_performSync","_isRunning","newErr","emitErr","latestBlock","_fetchLatestBlock","_newPotentialLatest","skipCache","timoutRef","overArg","SymbolPrototype","TO_PRIMITIVE","whitespaces","whitespace","ltrim","rtrim","TYPE","FixtureProvider","staticResponses","staticResponse","sha1","sha224","trunc","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","_arrayLikeToArray","arr2","$getOwnPropertySymbols","K_MAX_LENGTH","handleAddress","handleNumber","transactionFields","formatNumber","accessSetify","addr","storageKey","localeCompare","formatAccessList","_serializeEip1559","fields","_serializeEip2930","_serialize","fieldInfo","transactionType","_parseEipSignature","_parseEip1559","_parseEip2930","rawTransaction","observables","RaceOperator","RaceSubscriber","hasFirst","_outerValue","replaceAll","IS_REG_EXP","searchLength","advanceBy","endOfLastMatch","_defineProperties","protoProps","staticProps","bitmap","createIdRemapMiddleware","getUniqueId_1","_end","originalId","newId","copyBuffer","createAbortError","DOMException","createAddActiveInputConnectionToAudioNode","insertElementInSet","activeInputs","eventListener","ignoreDuplicates","activeInputConnection","createAddAudioNodeConnections","audioNodeConnectionsStore","audioNode","audioNodeRenderer","nativeAudioNode","numberOfInputs","outputs","passiveInputs","renderer","createAddAudioParamConnections","audioParamConnectionsStore","audioParam","audioParamRenderer","ACTIVE_AUDIO_NODE_STORE","WeakSet","AUDIO_NODE_CONNECTIONS_STORE","AUDIO_NODE_STORE","AUDIO_PARAM_CONNECTIONS_STORE","AUDIO_PARAM_STORE","CONTEXT_STORE","EVENT_LISTENERS","CYCLE_COUNTERS","NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS","NODE_TO_PROCESSOR_MAPS","isConstructible","constructible","IMPORT_STATEMENT_REGEX","splitImportStatements","importStatements","sourceWithoutImportStatements","unresolvedUrl","importStatementWithResolvedUrl","verifyParameterDescriptors","parameterDescriptors","verifyProcessorCtor","processorCtor","createAddAudioWorkletModule","cacheTestResult","createNotSupportedError","evaluateSource","exposeCurrentFrameAndCurrentTime","fetchSource","getNativeContext","getOrCreateBackupOfflineAudioContext","isNativeOfflineAudioContext","nativeAudioWorkletNodeConstructor","ongoingRequests","resolvedRequests","testAudioWorkletProcessorPostMessageSupport","moduleURL","credentials","resolvedRequestsOfContext","ongoingRequestsOfContext","promiseOfOngoingRequest","nativeContext","audioWorklet","wrappedSource","evaluateAudioWorkletGlobalScope","_AWGS","currentTime","sampleRate","nodeNameToProcessorConstructorMap","isSupportingPostMessage","currentIndex","patchedAudioWorkletProcessor","memberDefinition","bufferRegistration","blob","Blob","addModule","backupOfflineAudioContext","nativeContextOrBackupOfflineAudioContext","updatedResolvedRequestsOfContext","updatedOngoingRequestsOfContext","pickElementFromSet","matchingElements","matchingElement","deletePassiveInputConnectionToAudioNode","passiveInputConnections","matchingConnection","passiveInputConnection","setInternalStateToActive","isAudioWorkletNode","setInternalStateToPassive","setInternalStateToPassiveWhenNecessary","connections","createAddConnectionToAudioNode","addActiveInputConnectionToAudioNode","addPassiveInputConnectionToAudioNode","connectNativeAudioNodeToNativeAudioNode","deleteActiveInputConnectionToAudioNode","disconnectNativeAudioNodeFromNativeAudioNode","getAudioNodeConnections","getAudioNodeTailTime","getEventListenersOfAudioNode","getNativeAudioNode","isActiveAudioNode","isPartOfACycle","isPassiveAudioNode","tailTimeTimeoutIds","isOffline","eventListeners","isActive","nativeDestinationAudioNode","nativeSourceAudioNode","partialConnection","tailTime","tailTimeTimeoutId","outputConnection","createAddPassiveInputConnectionToAudioNode","createAddSilentConnection","createNativeGainNode","nativeAudioScheduledSourceNode","nativeGainNode","channelCount","channelCountMode","channelInterpretation","gain","createAddUnrenderedAudioWorkletNode","getUnrenderedAudioWorkletNodes","audioWorkletNode","DEFAULT_OPTIONS","fftSize","maxDecibels","minDecibels","smoothingTimeConstant","createAnalyserNodeConstructor","audionNodeConstructor","createAnalyserNodeRenderer","createIndexSizeError","createNativeAnalyserNode","mergedOptions","nativeAnalyserNode","analyserNodeRenderer","_nativeAnalyserNode","frequencyBinCount","getByteFrequencyData","getByteTimeDomainData","getFloatFrequencyData","getFloatTimeDomainData","isOwnedByContext","createAnalyserNodeRendererFactory","renderInputsOfAudioNode","renderedNativeAnalyserNodes","createAnalyserNode","nativeOfflineAudioContext","nativeAnalyserNodeIsOwnedByContext","renderedNativeAnalyserNode","nativeAudioBuffer","copyToChannel","wrapAudioBufferGetChannelDataMethod","audioBuffer","getChannelData","numberOfChannels","createAudioBufferConstructor","audioBufferStore","nativeAudioBufferConstructor","nativeOfflineAudioContextConstructor","testNativeAudioBufferConstructorSupport","wrapAudioBufferCopyChannelMethods","wrapAudioBufferCopyChannelMethodsOutOfBounds","AudioBuffer","copyFromChannel","MOST_NEGATIVE_SINGLE_FLOAT","MOST_POSITIVE_SINGLE_FLOAT","loop","loopEnd","loopStart","playbackRate","createAudioBufferSourceNodeConstructor","audioNodeConstructor","createAudioBufferSourceNodeRenderer","createAudioParam","createInvalidStateError","createNativeAudioBufferSourceNode","wrapEventListener","nativeAudioBufferSourceNode","audioBufferSourceNodeRenderer","_audioBufferSourceNodeRenderer","_isBufferNullified","_isBufferSet","_nativeAudioBufferSourceNode","_onended","_playbackRate","wrappedListener","onended","nativeOnEnded","when","resetInternalStateToPassive","createAudioBufferSourceNodeRendererFactory","connectAudioParam","renderAutomation","renderedNativeAudioBufferSourceNodes","createAudioBufferSourceNode","nativeAudioBufferSourceNodeIsOwnedByContext","renderedNativeAudioBufferSourceNode","isAudioBufferSourceNode","isBiquadFilterNode","isConstantSourceNode","isGainNode","isOscillatorNode","isStereoPannerNode","getAudioParamConnections","deactivateActiveAudioNodeInputConnections","audioParams","parameters","detune","frequency","pan","audioParamConnections","deactivateAudioGraph","isValidLatencyHint","latencyHint","createAudioContextConstructor","baseAudioContextConstructor","createUnknownError","mediaElementAudioSourceNodeConstructor","mediaStreamAudioDestinationNodeConstructor","mediaStreamAudioSourceNodeConstructor","mediaStreamTrackAudioSourceNodeConstructor","nativeAudioContextConstructor","nativeAudioContext","_baseLatency","baseLatency","_nativeAudioContext","_nativeGainNode","createGain","_nativeOscillatorNode","createOscillator","_state","revokeState","mediaElement","mediaStream","mediaStreamTrack","resolvePromise","suspend","createAudioDestinationNodeConstructor","createAudioDestinationNodeRenderer","createNativeAudioDestinationNode","nativeAudioDestinationNode","audioDestinationNodeRenderer","_isNodeOfNativeOfflineAudioContext","_nativeAudioDestinationNode","maxChannelCount","renderedNativeAudioDestinationNodes","createAudioDestinationNode","renderedNativeAudioDestinationNode","createAudioListenerFactory","createNativeChannelMergerNode","createNativeConstantSourceNode","createNativeScriptProcessorNode","getFirstSample","overwriteAccessors","nativeListener","createFakeAudioParams","channelMergerNode","isScriptProcessorNodeCreated","lastOrientation","lastPosition","createScriptProcessorNode","scriptProcessorNode","onaudioprocess","inputBuffer","orientation","setOrientation","positon","setPosition","createSetOrientation","createSetPosition","createFakeAudioParam","initialValue","setValue","constantSourceNode","cancelAndHoldAtTime","cancelScheduledValues","exponentialRampToValueAtTime","linearRampToValueAtTime","setTargetAtTime","setValueAtTime","setValueCurveAtTime","forwardX","forwardY","forwardZ","positionX","positionY","positionZ","upX","upY","upZ","isAudioNode","audioNodeOrAudioParam","isAudioNodeOutputConnection","lmnt","addActiveInputConnectionToAudioParam","addPassiveInputConnectionToAudioParam","isNativeAudioNodeFaker","nativeAudioNodeOrNativeAudioNodeFaker","fakeNativeDestinationAudioNode","inputs","deleteActiveInputConnection","activeInputConnections","deleteActiveInputConnectionToAudioParam","deleteEventListenerOfAudioNode","deletePassiveInputConnectionToAudioParam","testAudioNodeDisconnectMethodSupport","analyzer","createScriptProcessor","dummy","ones","channelData","createBufferSource","chnnlDt","sample","visitEachAudioNodeOnce","cycles","visitor","counts","cycle","nativeAudioNodeOrAudioParam","wrapAudioNodeDisconnectMethod","returnValue","connectionsToDestination","destinationOrOutput","filteredConnections","addConnectionToAudioParamOfAudioContext","nativeAudioParam","deleteInputConnectionOfAudioNode","deleteInputConnectionOfAudioParam","deleteInputsOfAudioNode","deleteInputsOfAudioParam","deleteAnyConnection","audioNodeConnectionsOfSource","destinations","deleteConnectionAtOutput","deleteConnectionToDestination","createAudioNodeConstructor","addAudioNodeConnections","addConnectionToAudioNode","createIncrementCycleCounter","createInvalidAccessError","decrementCycleCounter","detectCycles","eventTargetConstructor","isNativeAudioContext","isNativeAudioNode","isNativeAudioParam","_nativeAudioNode","numberOfOutputs","isPassive","isNewConnectionToAudioNode","maxValue","isNewConnectionToAudioParam","createAudioParamFactory","addAudioParamConnections","audioParamAudioNodeStore","audioParamStore","createAudioParamRenderer","setValueAtTimeUntilPossible","isAudioParamOfOfflineAudioContext","minValue","automationEventList","previousLastEvent","currentLastEvent","convertedValues","firstSample","lastSample","numberOfInterpolatedValues","interpolatedValues","timeOfLastSample","ReadOnlyMap","parameterData","processorOptions","createAudioWorkletNodeConstructor","addUnrenderedAudioWorkletNode","createAudioWorkletNodeRenderer","createNativeAudioWorkletNode","getBackupOfflineAudioContext","sanitizeAudioWorkletNodeOptions","setActiveAudioWorkletNodeInputs","testAudioWorkletNodeOptionsClonability","processorConstructor","nativeAudioWorkletNode","audioWorkletNodeRenderer","nm","_nativeAudioWorkletNode","_onprocessorerror","_parameters","onprocessorerror","nativeOnProcessorError","channelNumber","bufferOffset","slicedInput","BYTES_PER_ELEMENT","createNestedArrays","arrays","getAudioWorkletProcessor","nodeToProcessorMap","processBuffer","renderedBuffer","outputChannelCount","numberOfInputChannels","numberOfOutputChannels","sum","processedBuffer","audioNodeConnections","audioWorkletProcessor","prmtrs","potentiallyEmptyInputs","activeSourceFlag","outputChannelSplitterNodeOutput","ErrorEvent","colno","lineno","createAudioWorkletNodeRendererFactory","connectMultipleOutputs","createNativeChannelSplitterNode","deleteUnrenderedAudioWorkletNode","disconnectMultipleOutputs","renderNativeOfflineAudioContext","renderedNativeAudioNodes","processedBufferPromise","createAudioNode","nativeOutputNodes","nativeAudioWorkletNodeIsOwnedByContext","outputChannelSplitterNode","outputChannelMergerNodes","outputGainNode","numberOfParameters","renderBuffer","partialOfflineAudioContext","gainNodes","inputChannelSplitterNodes","constantSourceNodes","inputChannelMergerNode","gainNode","audioBufferSourceNode","outputChannelMergerNode","renderedNativeAudioWorkletNodeOrGainNode","createBaseAudioContextConstructor","addAudioWorkletModule","analyserNodeConstructor","audioBufferConstructor","audioBufferSourceNodeConstructor","biquadFilterNodeConstructor","channelMergerNodeConstructor","channelSplitterNodeConstructor","constantSourceNodeConstructor","convolverNodeConstructor","decodeAudioData","delayNodeConstructor","dynamicsCompressorNodeConstructor","gainNodeConstructor","iIRFilterNodeConstructor","minimalBaseAudioContextConstructor","oscillatorNodeConstructor","pannerNodeConstructor","periodicWaveConstructor","stereoPannerNodeConstructor","waveShaperNodeConstructor","_nativeContext","_audioWorklet","maxDelayTime","feedforward","feedback","real","imag","constraints","disableNormalization","audioData","successCallback","errorCallback","createBiquadFilterNodeConstructor","createBiquadFilterNodeRenderer","createNativeBiquadFilterNode","setAudioNodeTailTime","nativeBiquadFilterNode","biquadFilterNodeRenderer","_Q","_detune","log2","_frequency","_gain","_nativeBiquadFilterNode","frequencyHz","magResponse","phaseResponse","getFrequencyResponse","createBiquadFilterNodeRendererFactory","renderedNativeBiquadFilterNodes","createBiquadFilterNode","nativeBiquadFilterNodeIsOwnedByContext","renderedNativeBiquadFilterNode","createCacheTestResult","ongoingTests","testResults","tester","cachedTestResult","ongoingTest","synchronousTestResult","finalTestResult","createChannelMergerNodeConstructor","createChannelMergerNodeRenderer","nativeChannelMergerNode","channelMergerNodeRenderer","createChannelMergerNodeRendererFactory","nativeAudioNodeIsOwnedByContext","renderedNativeAudioNode","createChannelSplitterNodeConstructor","createChannelSplitterNodeRenderer","sanitizeChannelSplitterOptions","nativeChannelSplitterNode","channelSplitterNodeRenderer","createChannelSplitterNodeRendererFactory","createConnectAudioParam","renderInputsOfAudioParam","createConnectMultipleOutputs","outputAudioNodes","outputAudioNode","createConnectedNativeAudioBufferSourceNodeFactory","createConstantSourceNodeConstructor","createConstantSourceNodeRendererFactory","nativeConstantSourceNode","constantSourceNodeRenderer","_constantSourceNodeRenderer","_nativeConstantSourceNode","renderedNativeConstantSourceNodes","createConstantSourceNode","nativeConstantSourceNodeIsOwnedByContext","renderedNativeConstantSourceNode","createConvertNumberToUnsignedLong","unit32Array","createConvolverNodeConstructor","createConvolverNodeRenderer","createNativeConvolverNode","nativeConvolverNode","convolverNodeRenderer","_nativeConvolverNode","createConvolverNodeRendererFactory","renderedNativeConvolverNodes","createConvolverNode","nativeConvolverNodeIsOwnedByContext","renderedNativeConvolverNode","createCreateNativeOfflineAudioContext","detachArrayBuffer","closeAndResolve","createDecodeAudioData","createDataCloneError","createEncodingError","detachedArrayBuffers","isNativeContext","testAudioBufferCopyChannelMethodsOutOfBoundsSupport","testPromiseSupport","anyContext","fail","createDecrementCycleCounter","cycleCounters","getNativeAudioParam","cycleCounter","nativeDestinationAudioParam","delayTime","createDelayNodeConstructor","createDelayNodeRenderer","createNativeDelayNode","nativeDelayNode","delayNodeRenderer","_delayTime","createDelayNodeRendererFactory","renderedNativeDelayNodes","createDelayNode","nativeDelayNodeIsOwnedByContext","renderedNativeDelayNode","createDeleteActiveInputConnectionToAudioNode","createDeleteUnrenderedAudioWorkletNode","isDelayNode","createDetectCycles","getValueForKey","nextLink","mergedCycles","nestedCycles","getOutputAudioNodeAtIndex","createDisconnectMultipleOutputs","attack","knee","ratio","threshold","createDynamicsCompressorNodeConstructor","createDynamicsCompressorNodeRenderer","createNativeDynamicsCompressorNode","nativeDynamicsCompressorNode","dynamicsCompressorNodeRenderer","_attack","_knee","_nativeDynamicsCompressorNode","_ratio","_release","_threshold","previousChannelCount","reduction","createDynamicsCompressorNodeRendererFactory","renderedNativeDynamicsCompressorNodes","createDynamicsCompressorNode","nativeDynamicsCompressorNodeIsOwnedByContext","renderedNativeDynamicsCompressorNode","createEvaluateSource","script","originalOnErrorHandler","removeErrorEventListenerAndRevokeUrl","onload","createEventTargetConstructor","_nativeEventTarget","_listeners","wrappedEventListener","createExposeCurrentFrameAndCurrentTime","currentFrame","createFetchSource","ok","createGainNodeConstructor","createGainNodeRenderer","gainNodeRenderer","createGainNodeRendererFactory","renderedNativeGainNodes","createGainNode","nativeGainNodeIsOwnedByContext","renderedNativeGainNode","createGetActiveAudioWorkletNodeInputs","activeAudioWorkletNodeInputsStore","createGetAudioNodeRenderer","createGetAudioNodeTailTime","audioNodeTailTimeStore","createGetAudioParamRenderer","createGetBackupOfflineAudioContext","backupOfflineAudioContextStore","createGetNativeContext","contextStore","createGetOrCreateBackupOfflineAudioContext","createGetUnrenderedAudioWorkletNodes","unrenderedAudioWorkletNodeStore","unrenderedAudioWorkletNodes","wrapIIRFilterNodeGetFrequencyResponseMethod","nativeIIRFilterNode","createIIRFilterNodeConstructor","createNativeIIRFilterNode","createIIRFilterNodeRenderer","iirFilterNodeRenderer","_nativeIIRFilterNode","filterBuffer","feedbackLength","feedforwardLength","minLength","xBuffer","yBuffer","bufferIndex","bufferLength","filterFullBuffer","convertedFeedback","convertedFeedforward","filteredBuffer","createIIRFilterNodeRendererFactory","filteredBufferPromise","nativeIIRFilterNodeIsOwnedByContext","createIIRFilter","createIncrementCycleCounterFactory","createIsAnyAudioContext","anything","createIsAnyAudioNode","audioNodeStore","createIsAnyAudioParam","createIsAnyOfflineAudioContext","createIsNativeAudioContext","createIsNativeAudioNode","AudioNode","createIsNativeAudioParam","AudioParam","createIsNativeContext","createIsNativeOfflineAudioContext","createIsSecureContext","isSecureContext","createMediaElementAudioSourceNodeConstructor","createNativeMediaElementAudioSourceNode","nativeMediaElementAudioSourceNode","_nativeMediaElementAudioSourceNode","createMediaStreamAudioDestinationNodeConstructor","createNativeMediaStreamAudioDestinationNode","nativeMediaStreamAudioDestinationNode","_nativeMediaStreamAudioDestinationNode","createMediaStreamAudioSourceNodeConstructor","createNativeMediaStreamAudioSourceNode","nativeMediaStreamAudioSourceNode","_nativeMediaStreamAudioSourceNode","createMediaStreamTrackAudioSourceNodeConstructor","createNativeMediaStreamTrackAudioSourceNode","nativeMediaStreamTrackAudioSourceNode","createMinimalAudioContextConstructor","createMinimalBaseAudioContextConstructor","audioDestinationNodeConstructor","createAudioListener","_destination","_listener","_onstatechange","onstatechange","nativeOnStateChange","uint32Array","createMinimalOfflineAudioContextConstructor","createNativeOfflineAudioContext","startRendering","delayStateChangeEvent","stopImmediatePropagation","_waitForThePromiseToSettle","_nativeOfflineAudioContext","createMonitorConnections","whenConnected","whenDisconnected","wasDisconnected","wasConnected","isDisconnected","assignNativeAudioNodeOption","assignNativeAudioNodeOptions","testAnalyserNodeGetFloatTimeDomainDataMethodSupport","wrapAnalyserNodeGetFloatTimeDomainDataMethod","byteTimeDomainData","createNativeAnalyserNodeFactory","createAnalyser","createNativeAudioBufferConstructor","assignNativeAudioNodeAudioParamValue","wrapAudioBufferSourceNodeStartMethodConsecutiveCalls","isScheduled","wrapAudioScheduledSourceNodeStartMethodNegativeParameters","wrapAudioScheduledSourceNodeStopMethodNegativeParameters","createNativeAudioBufferSourceNodeFactory","addSilentConnection","testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport","testAudioBufferSourceNodeStartMethodOffsetClampingSupport","testAudioBufferSourceNodeStopMethodNullifiedBufferSupport","testAudioScheduledSourceNodeStartMethodNegativeParametersSupport","testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport","testAudioScheduledSourceNodeStopMethodNegativeParametersSupport","wrapAudioBufferSourceNodeStartMethodOffsetClampling","wrapAudioBufferSourceNodeStopMethodNullifiedBuffer","wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls","createNativeAudioContextConstructor","AudioContext","webkitAudioContext","createNativeAudioDestinationNodeFactory","isNodeOfNativeOfflineAudioContext","createNativeAudioWorkletNodeConstructor","AudioWorkletNode","testClonabilityOfAudioWorkletNodeOptions","audioWorkletNodeOptions","createNativeAudioWorkletNodeFactory","createNativeAudioWorkletNodeFaker","monitorConnections","patchedEventListeners","unpatchedEventListener","handleEvent","patchedEventListener","computeBufferSize","cloneAudioWorkletNodeOptions","onmessageerror","createAudioWorkletProcessorPromise","clonedAudioWorkletNodeOptions","createAudioWorkletProcessor","audioWorkletProcessorPromise","createNativeAudioWorkletNodeFakerFactory","getActiveAudioWorkletNodeInputs","messageChannel","parameterMap","nativeAudioWorkletNodeFaker","dWrkltPrcssr","disconnectOutputsGraph","activeInputIndexes","outputBuffer","activeInput","isConnected","disconnectFakeGraph","connectFakeGraph","createBiquadFilter","createNativeChannelMergerNodeFactory","wrapChannelMergerNode","createChannelMerger","wrapChannelSplitterNode","channelSplitterNode","createChannelSplitter","createNativeConstantSourceNodeFactory","createNativeConstantSourceNodeFaker","createConstantSource","interceptConnections","createNativeConstantSourceNodeFakerFactory","audioNodeOptions","nativeConstantSourceNodeFaker","createNativeConvolverNodeFactory","createConvolver","createDelay","createNativeDynamicsCompressorNodeFactory","createDynamicsCompressor","createNativeIIRFilterNodeFactory","createNativeIIRFilterNodeFaker","divide","denominator","multiply","evaluatePolynomial","coefficient","createNativeIIRFilterNodeFakerFactory","bufferIndexes","xBuffers","yBuffers","nyquist","nativeIIRFilterNodeFaker","omega","numerator","atan2","createMediaElementSource","createMediaStreamDestination","audioStreamTracks","getAudioTracks","filteredAudioStreamTracks","createMediaStreamSource","MediaStream","createNativeMediaStreamTrackAudioSourceNodeFactory","createMediaStreamTrackSource","createNativeOfflineAudioContextConstructor","OfflineAudioContext","webkitOfflineAudioContext","createNativeOscillatorNodeFactory","nativeOscillatorNode","periodicWave","setPeriodicWave","createNativePannerNodeFactory","createNativePannerNodeFaker","nativePannerNode","createPanner","orientationX","createNativePannerNodeFakerFactory","createNativeWaveShaperNode","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationY","orientationZ","panningModel","refDistance","rolloffFactor","pannerNode","SINGLE_CHANNEL_OPTIONS","inputGainNode","orientationXGainNode","orientationYGainNode","orientationZGainNode","positionXGainNode","positionYGainNode","positionZGainNode","waveShaperNode","oversample","nativePannerNodeFaker","createNativePeriodicWaveFactory","convertedImag","convertedReal","nativePeriodicWave","createPeriodicWave","createNativeStereoPannerNodeFactory","createNativeStereoPannerNodeFaker","createStereoPanner","nativeStereoPannerNode","createNativeStereoPannerNodeFakerFactory","CURVE_SIZE","DC_CURVE","HALF_PI","SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS","buildInternalGraphForMono","panGainNode","leftWaveShaperCurve","rightWaveShaperCurve","leftGainNode","leftWaveShaperNode","panWaveShaperNode","rightGainNode","rightWaveShaperNode","buildInternalGraphForStereo","leftInputForLeftOutputWaveShaperCurve","leftInputForRightOutputWaveShaperCurve","rightInputForLeftOutputWaveShaperCurve","rightInputForRightOutputWaveShaperCurve","centerIndex","leftInputForLeftOutputGainNode","leftInputForLeftOutputWaveShaperNode","leftInputForRightOutputGainNode","leftInputForRightOutputWaveShaperNode","rightInputForLeftOutputGainNode","rightInputForLeftOutputWaveShaperNode","rightInputForRightOutputGainNode","rightInputForRightOutputWaveShaperNode","buildInternalGraph","connectGraph","disconnectGraph","nativeStereoPannerNodeFakerFactory","createNativeWaveShaperNodeFactory","createConnectedNativeAudioBufferSourceNode","createNativeWaveShaperNodeFaker","isDCCurve","nativeWaveShaperNode","createWaveShaper","automationRate","disconnectNativeAudioBufferSourceNode","createNativeWaveShaperNodeFakerFactory","negativeWaveShaperNode","positiveWaveShaperNode","invertGainNode","revertGainNode","unmodifiedCurve","nativeWaveShaperNodeFaker","curveLength","negativeCurve","positiveCurve","createOfflineAudioContextConstructor","createOscillatorNodeConstructor","createNativeOscillatorNode","createOscillatorNodeRenderer","oscillatorNodeRenderer","_oscillatorNodeRenderer","createOscillatorNodeRendererFactory","renderedNativeOscillatorNodes","createOscillatorNode","nativeOscillatorNodeIsOwnedByContext","renderedNativeOscillatorNode","createPannerNodeConstructor","createNativePannerNode","createPannerNodeRenderer","pannerNodeRenderer","_nativePannerNode","_orientationX","_orientationY","_orientationZ","_positionX","_positionY","_positionZ","createPannerNodeRendererFactory","renderedBufferPromise","commonAudioNodeOptions","commonNativePannerNodeOptions","nativePannerNodeIsOwnedByContext","nativeConstantSourceNodes","channelDatas","gateGainNode","partialPannerNode","renderedNativeGainNodeOrNativePannerNode","createPeriodicWaveConstructor","createNativePeriodicWave","periodicWaveStore","sanitizePeriodicWaveOptions","PeriodicWave","createRenderAutomation","getAudioParamRenderer","replay","createRenderInputsOfAudioNode","getAudioNodeRenderer","allRenderingPromises","renderingPromises","createRenderInputsOfAudioParam","createRenderNativeOfflineAudioContext","testOfflineAudioContextCurrentTimeSupport","isOfflineAudioContextCurrentTimeSupported","oncomplete","createSetActiveAudioWorkletNodeInputs","createSetAudioNodeTailTime","createStartRendering","createStereoPannerNodeConstructor","createNativeStereoPannerNode","createStereoPannerNodeRenderer","stereoPannerNodeRenderer","_pan","createStereoPannerNodeRendererFactory","renderedNativeStereoPannerNodes","createStereoPannerNode","nativeStereoPannerNodeIsOwnedByContext","renderedNativeStereoPannerNode","createTestAudioBufferConstructorSupport","createTestAudioWorkletProcessorPostMessageSupport","offlineAudioContext","isEmittingMessageEvents","isEmittingProcessorErrorEvents","oscillator","createTestOfflineAudioContextCurrentTimeSupport","createWaveShaperNodeConstructor","createWaveShaperNodeRenderer","waveShaperNodeRenderer","_isCurveNullified","_nativeWaveShaperNode","createWaveShaperNodeRendererFactory","renderedNativeWaveShaperNodes","createWaveShaperNode","nativeWaveShaperNodeIsOwnedByContext","renderedNativeWaveShaperNode","createWindow","createWrapAudioBufferCopyChannelMethods","convertNumberToUnsignedLong","channelNumberAsNumber","bufferOffsetAsNumber","audioBufferLength","destinationLength","sourceLength","createWrapAudioBufferCopyChannelMethodsOutOfBounds","createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer","nullifiedBuffer","createWrapChannelMergerNode","createGetter","createSetter","wrapAudioBufferSourceNodeStartMethodOffsetClamping","clampedOffset","disconnectGainNode","currentTarget","createConstantSourceNodeRenderer","audioContextConstructor","audioWorkletNodeConstructor","offlineAudioContextConstructor","isAnyAudioContext","isAnyAudioNode","isAnyAudioParam","isAnyOfflineAudioContext","statement","assertRange","assertContextRunning","defaultLogger","isUndef","isNote","createAudioContext","createOfflineAudioContext","channels","theWindow","hasAudioContext","createAudioWorkletNode","Ticker","updateInterval","_callback","_type","_updateInterval","_createClock","blobUrl","worker","Worker","_worker","_timeout","_createTimeout","_createWorker","terminate","_disposeClock","isAudioParam","isOfflineAudioContext","isAudioContext","isAudioBuffer","noCopy","deepMerge","deepEquals","arrayA","arrayB","optionsFromArguments","argsArray","objKey","partOfDefaults","getDefaultsFromInstance","getDefaults","defaultArg","given","omitFromObject","omit","_wasDisposed","TONE_DEBUG_CLASS","EPSILON","GT","GTE","EQ","LT","_timeline","memory","increasing","lastValue","_search","after","beginning","midPoint","nextEvent","testEvent","upperBound","_iterate","dispose","notifyNewContext","onContextInit","initializeContext","notifyCloseContext","onContextClose","closeContext","boundCallback","eventList","constr","_constants","_timeouts","_timeoutIds","_initialized","_workletModules","_ticker","clockSource","_timeoutLoop","_setLatencyHint","lookAhead","feedForward","_draw","rawContext","promises","_latencyHint","lookAheadValue","constant","firstEvent","intervalFn","_numberOfChannels","_sampleRate","_numberOfInputs","_numberOfOutputs","_maxDelayTime","_feedForward","_feedback","_real","_imag","_constraints","_stream","_element","_audioData","_name","_options","_fn","_id","_interval","_val","readOnly","noOp","load","_buffer","_reversed","_reverse","doneLoading","downloads","isMultidimensional","multiChannelArray","chanNum","outputArray","numChannels","channelArray","startSamples","endSamples","retBuffer","rev","matches","extensions","extension","supportsType","canPlayType","_currentTime","_duration","asynchronous","yieldEvery","workletsAreReady","_renderClock","dummyContext","globalContext","setContext","TONE_SILENCE_LOGGING","printString","dbToGain","db","gainToDb","intervalToFrequencyRatio","A4","getA4","setA4","freq","ftom","ftomf","mtof","midi","defaultUnits","_units","_expressions","_getExpressions","hz","_frequencyToUnits","regexp","_ticksToUnits","_beatsToUnits","_getTimeSignature","dot","numericValue","_secondsToUnits","samples","tr","fromType","_noArg","typeName","quantity","expr","matching","beats","_getBpm","seconds","ticks","_getPPQ","_now","bpm","timeSignature","PPQ","toSeconds","toTicks","toFrequency","toMidi","quantize","quantTo","nextSubdivision","subdiv","percent","subdivision","ideal","testNotations","power","closestSeconds","notation","notationSeconds","quarterTime","quarters","measures","sixteenths","sixteenthString","progress","note","pitch","octave","noteToScaleIndex","noteNumber","intervals","transpose","noteName","scaleIndexToNote","cbb","cx","dbb","dx","ebb","eb","ex","fbb","fb","fx","gbb","abb","ab","bbb","bb","bx","defaultContext","member","_getPartialProperties","initial","_initial","setStateAtTime","overridden","_minOutput","_param","_swappable","swappable","_initialValue","convert","_minValue","_maxValue","_toType","getValueAtTime","_fromType","_is","computedTime","_assertRange","getAfter","before","beforeValue","previous","getBefore","_linearInterpolate","_exponentialInterpolate","previousVal","_exponentialApproach","currentVal","rampTime","setRampPoint","exponentialApproachValueAtTime","scaling","startingValue","segTime","valueAtTime","sampleTime","exponentialRampTo","linearRampTo","previousEvent","subdivisions","forEachAfter","v0","_internalChannels","nodeList","_isAudioNode","_getInternalNodes","_getChannelProperties","_setChannelProperties","outputNum","inputNum","toDestination","connectSeries","srcNode","dstNode","outputNumber","inputNumber","_gainNode","_stopTime","getStateAtTime","_fadeIn","fadeIn","_fadeOut","fadeOut","_curve","fadeInTime","_stopGain","cancelStop","fadeOutTime","targetRampTo","additionalTail","_stopSource","disposeCallback","requestIdleCallback","_source","_startGain","override","_constantSource","connectSignal","rampTo","computedValue","prevEvent","segments","rampVal","ticksUntilTime","_getTicksUntilEvent","computedVal","segmentDur","val0","val1","onTheLineEvent","currentTick","getTicksAtTime","getTimeOfTick","tick","sol1","sol2","getDurationOfTicks","computedDuration","startTicks","endTicks","ticksToTime","timeToTicks","_tickOffset","setTicksAtTime","stopEvent","getLastState","tmpEvent","elapsedTicks","forEachBetween","periodStartTime","offsetEvent","getSecondsAtTime","elapsedSeconds","absoluteTicks","lastStateEvent","forEachTickBetween","maxStartTime","ticksAtStart","nextTickTime","_lastUpdate","_boundLoop","_loop","_tickSource","_buffers","_loadingCount","urls","_bufferLoaded","expiration","anticipation","_boundDrawLoop","_drawLoop","_animationFrame","draw","_root","IntervalNode","insert","updateHeight","updateMax","_rebalance","_removeNode","forEachFrom","isLeftChild","_setRoot","_replaceNodeInParent","balance","temp","pivotNode","_rotateLeft","_rotateRight","allNodes","traverse","searchAfter","_left","_right","volume","_unmutedVolume","mute","_eventId","_currentId","_nextTick","_boundRestart","_restart","_createEvents","invoke","scheduleOnce","_loopStart","_loopEnd","_scheduledEvents","_repeatedEvents","_syncedSignals","_swingAmount","_ppq","ppq","_clock","_processTick","_bindClockEvents","_timeSignature","_swingTicks","swing","swingSubdivision","tickTime","amount","forEachAtTime","_addEvent","timeline","computedAfter","offsetTicks","timeSig","startPosition","endPosition","toNotation","toBarsBeatsSixteenths","remainingTick","transportPos","remainingTicks","computedFreq","ratioSignal","syncedSignal","_synced","_scheduled","_syncedStart","_syncedStop","_volume","onstop","_clampToCurrentTime","sched","_start","immediate","restart","getNextState","_stop","stateEvent","unsync","_sourceStarted","_sourceStopped","computedOffset","loopDuration","computedDur","generateWaveform","_oscillator","_partials","partials","_partialCount","partialCount","phase","_wave","syncSignal","unsyncSignal","oscProps","_periodicWaveCache","_phase","isBasicType","_getCachedPeriodicWave","wave","_getRealImaginary","partial","fullPartials","periodicWaveSize","piFactor","twoPi","testPositions","_inverseFFT","_shaper","setMap","oversampling","isOverSampleType","_norm","_mult","_modulationScale","_modulationNode","_carrier","_modulator","modulationType","harmonicity","modulationIndex","_widthGate","_thresh","_triangle","_oscillators","_spread","spread","_forEach","osc","sourceType","_scale","_pulse","modulationFrequency","carrierType","OmniOscillatorSourceMap","am","fat","fm","pulse","pwm","_sourceType","_createNewOscillator","_getOscType","oscType","OscConstructor","oldOsc","blockTime","sType","mType","valueMap","propertyKey","newValue","timeRange","_activeSources","_onload","autostart","origDuration","_onSourceEnd","implicitEnd","_sig","decay","sustain","attackCurve","releaseCurve","decayCurve","curveName","EnvelopeCurves","curveDef","_getCurve","_attackCurve","_setCurve","_releaseCurve","_decayCurve","velocity","originalAttack","attackRate","remainingDistance","decayValue","decayStart","triggerAttack","triggerRelease","attackPortion","envelopeDuration","sustainTime","totalDuration","triggerAttackRelease","curveLen","cosineCurve","rippleCurve","rippleCurveFreq","sineWave","stairsCurve","steps","sineCurve","bounceCurve","invertCurve","reverseCurve","bounce","In","Out","cosine","exponential","linear","ripple","sine","_original_triggerAttack","_original_triggerRelease","_syncState","_syncMethod","changed","timePosition","originalMethod","portamento","onsilence","_triggerEnvelopeAttack","setNote","_triggerEnvelopeRelease","computedFrequency","getLevelAtTime","portTime","envelope","computedAttack","computedDecay","pitchDecay","octaves","hertz","maxNote","workletContext","addToWorklet","classOrFunction","registerProcessor","classDesc","toneAudioWorkletProcessor","singleIOProcess","delayLine","workletName","feedbackCombFilter","urlMap","MAX_INTERVAL","notes","midiFloat","difference","_findClosest","closestNote","_panner","bitCrusherWorklet","_allSolos","solo","_isSoloed","_addSolo","_removeSolo","_updateSolo","_soloed","_noSolos","_solo","_panVol","muted","buses","bus","_getBus","sendKnob","getDescriptor","EXISTS","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","speciesConstructor","task","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","exited","rejection","onHandleUnhandled","enter","notify","isReject","notified","reactions","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","_hoisted_1","_hoisted_2","_hoisted_3","gradient","gradientColor","gradientWidth","pauseOnHover","pauseOnClick","__props","cloneAmount","minWidth","componentKey","containerWidth","contentWidth","ready","marqueeContent","marqueeContainer","ForcesUpdate","checkForClone","localCloneAmount","getCurrentStyle","cssVariables","showGradient","setupMarquee","_ctx","_refs","$slots","styleInject","css","insertAt","css_248z","entry_esm","installable","install","checkCorrectnessOfIteration","LinkDialog_1","TryExtensionLinkDialog_1","extensionUI$","isOpen","enabled","desktop","extension_ui","parentElement","TryExtensionLinkDialog","LinkDialog","OVERFLOW_ERROR","JsonRpcEngine","safe_event_emitter_1","eth_rpc_errors_1","_middleware","_handleBatch","_handle","_promiseHandle","middlewareError","isComplete","returnHandlers","_runAllMiddleware","_runReturnHandlers","handlerCallback","reqs","responses","_err","callerReq","_processRequest","_checkForCompletion","middlewareStack","_runMiddleware","returnHandler","jsonify","IndexedObject","$assign","_eachLimit","_eachLimit2","_doLimit","_doLimit2","WalletLinkAnalytics_1","ScopedLocalStorage_1","WalletLinkSdkUI_1","WalletLinkRelay_1","WalletLinkRelayEventManager_1","WALLETLINK_URL","WALLETLINK_VERSION","_appName","_appLogoUrl","_relay","_relayEventManager","walletLinkUIConstructor","overrideIsMetaMask","_overrideIsMetaMask","_overrideIsCoinbaseWallet","overrideIsCoinbaseWallet","_walletLinkAnalytics","walletLinkOrigin","_storage","ScopedLocalStorage","walletLinkExtension","WalletLinkRelay","storage","relayEventManager","setAppInfo","appName","appLogoUrl","attachUI","jsonRpcUrl","isCipher","setProviderInfo","relay","relayProvider","getFavicon","resetAndReload","bn_js_1","buffer_1","keccak_1","webpackPolyfill","paths","CipherBase","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","js_sha256_1","STORAGE_KEY_SESSION_ID","STORAGE_KEY_SESSION_SECRET","STORAGE_KEY_SESSION_LINKED","randomBytesHex","_linked","evt","oldValue","persistLinked","CONVERT_TO_STRING","fastKey","internalStateGetterFor","getConstructor","IS_MAP","ADDER","define","getEntry","setStrong","ITERATOR_NAME","getInternalCollectionState","ERR_STREAM_PREMATURE_CLOSE","onlegacyfinish","writableEnded","readableEnded","onrequest","listener_1","arraySpeciesConstructor","__decorate","decorators","decorate","bind_decorator_1","WalletLinkConnection_1","aes256gcm","WalletLinkRelayAbstract_1","Web3Method_1","Web3RequestCanceledMessage_1","Web3RequestMessage_1","Web3Response_1","Web3ResponseMessage_1","WalletLinkRelayAbstract","accountsCallback","chainCallback","_session","save","incomingEvent$","handleIncomingEvent","isLinked","cachedAddresses","LOCAL_STORAGE_ADDRESSES_KEY","addresses","wasConnectedViaStandalone","getSessionIdHash","UNLINKED_ERROR_STATE","sessionConfig$","__destroyed","alreadyDestroyed","isDestroyed","METADATA_DESTROYED","WalletUsername","walletUsername","WALLET_USER_NAME_KEY","GENERAL_ERROR","AppVersion","APP_VERSION_KEY","ChainId","JsonRpcUrl","zip","EthereumAddress","selectedAddress","accountRequestCallbackIds","RequestEthereumAccountsResponse","invokeCallback","ui","setSessionMetadata","SESSION_STATE_CHANGE","sessionMetadataChange","storedSession","SKIPPED_CLEARING_SESSION","storedSessionIdHash","reloadUI","FAILURE","addPrefix","typedDataJson","sendRequest","Web3Method","signEthereumMessage","hexStringFromBuffer","ethereumAddressFromSignedMessage","signEthereumTransaction","toAddress","weiValue","bigIntStringFromBN","gasPriceInWei","shouldSubmit","submitEthereumTransaction","regExp","scanQRCode","generic","hideSnackbarItem","publishWeb3RequestCanceledEvent","handleWeb3ResponseMessage","ErrorResponse","isStandalone","showConnecting","sendRequestStandalone","publishWeb3RequestEvent","Web3RequestMessage","WEB3_REQUEST","isSessionMismatched","publishEvent","encrypted","isRequestEthereumAccountsResponse","requestEthereumAccounts","hideRequestEthereumAccounts","inlineAccountsResponse","onAccounts","rpcUrls","iconUrls","blockExplorerUrls","chainName","nativeCurrency","addEthereumChain","inlineAddEthereumChain","_cancel","AddEthereumChainResponse","isApproved","approve","onApprove","switchEthereumChain","inlineSwitchEthereumChain","SwitchEthereumChainResponse","onSuccess","mergeAll","concurrent","scopedKey","keysToRemove","__exportStar","MontCurve","i4","a24","precompute","_encode","aa","diffAdd","da","jumlAdd","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","inBrowser","debounce","later","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_ORIENTATION","DEFAULT_TOUCH_SUPPORT","DEFAULT_DEBOUNCE_DELAY","useScreen","debounceDelay","touch","screen","resolution","portrait","landscape","updateWindowProperties","innerWidth","updateOrientationPropperties","resizeListener_1","query_1","matchMedia","updateComputedProperties","breakpoint","isAsync","_asyncify","_asyncify2","supportsSymbol","wrapAsync","asyncFn","EXP_TABLE","LOG_TABLE","eachOfImplementation","eachOfArrayLike","eachOfGeneric","_wrapAsync2","_eachOfLimit2","_wrapAsync","iteratorCallback","Algorithm","sha","NATIVE_WEAK_MAP","sharedKey","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","STATE","audit","AuditOperator","AuditSubscriber","throttled","innerSubscription","innerSubscribe","clearThrottle","auditTime","closingNotifier","BufferOperator","BufferSubscriber","bufferCount","startBufferEvery","BufferCountOperator","subscriberClass","BufferCountSubscriber","BufferSkipCountSubscriber","buffers","bufferTime","bufferTimeSpan","bufferCreationInterval","maxBufferSize","BufferTimeOperator","Context","BufferTimeSubscriber","contexts","openContext","timespanOnly","timeSpanOnlyState","closeAction","dispatchBufferTimeSpanOnly","closeState","creationState","dispatchBufferClose","dispatchBufferCreation","filledBufferContext","context_1","onBufferFull","context_2","spliceIndex","prevContext","bufferToggle","openings","closingSelector","BufferToggleOperator","BufferToggleSubscriber","subscribeToResult","closeBuffer","openBuffer","trySubscribe","bufferWhen","BufferWhenOperator","BufferWhenSubscriber","subscribing","closingSubscription","CatchOperator","caught","CatchSubscriber","innerSubscriber","combineAll","project","concatMap","concatMapTo","innerObservable","CountOperator","CountSubscriber","_tryPredicate","DebounceOperator","DebounceSubscriber","_tryNext","emitValue","durationSubscription","debounceTime","dueTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","clearDebounce","debouncedNext","defaultIfEmpty","DefaultIfEmptyOperator","DefaultIfEmptySubscriber","isEmpty","absoluteDelay","delayFor","DelayOperator","DelaySubscriber","errored","notification","delay_1","_schedule","scheduleNotification","DelayMessage","Notification","createNext","createComplete","delayWhen","delayDurationSelector","subscriptionDelay","DelayWhenOperator","DelayWhenSubscriber","delayNotifierSubscriptions","_innerValue","_outerIndex","_innerIndex","removeSubscription","tryComplete","delayNotifier","tryDelay","subscriptionIdx","notifierSubscription","SubscriptionDelayObservable","SubscriptionDelaySubscriber","sourceSubscribed","unused","subscribeToSource","dematerialize","DeMaterializeOperator","DeMaterializeSubscriber","distinct","flushes","DistinctOperator","DistinctSubscriber","_useKeySelector","_finalizeNext","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","distinctUntilKeyChanged","throwIfEmpty","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","ThrowIfEmptySubscriber","EmptyError","TakeOperator","ArgumentOutOfRangeError","TakeSubscriber","elementAt","hasDefaultValue","endWith","EveryOperator","observer","EverySubscriber","everyValueMatch","exhaust","SwitchFirstOperator","SwitchFirstSubscriber","hasCompleted","hasSubscription","exhaustMap","ii","ExhaustMapOperator","ExhaustMapSubscriber","tryNext","_innerSub","expand","ExpandOperator","ExpandSubscriber","subscribeToProjection","destination_1","FinallyOperator","FinallySubscriber","FindValueOperator","yieldIndex","FindValueSubscriber","ignoreElements","IgnoreElementsOperator","IgnoreElementsSubscriber","IsEmptyOperator","IsEmptySubscriber","takeLast","TakeLastOperator","TakeLastSubscriber","ring","mapTo","MapToOperator","MapToSubscriber","materialize","MaterializeOperator","MaterializeSubscriber","scan","accumulator","hasSeed","ScanOperator","ScanSubscriber","_seed","comparer","mergeMapTo","mergeScan","MergeScanOperator","MergeScanSubscriber","ish","multicast","subjectOrSubjectFactory","MulticastOperator","nextSources","OnErrorResumeNextOperator","OnErrorResumeNextSubscriber","subscribeToNextSource","pairwise","PairwiseOperator","PairwiseSubscriber","hasPrev","pluck","plucker","mapper","currentProp","publish","publishBehavior","publishLast","publishReplay","selectorOrScheduler","RepeatOperator","RepeatSubscriber","repeatWhen","notifier","RepeatWhenOperator","RepeatWhenSubscriber","sourceIsBeingSubscribedTo","retries","subscribeToRetries","retriesSubscription","notifications","RetryOperator","RetrySubscriber","retryWhen","RetryWhenOperator","RetryWhenSubscriber","SampleOperator","sampleSubscriber","SampleSubscriber","SampleTimeOperator","SampleTimeSubscriber","dispatchNotification","sequenceEqual","compareTo","comparator","SequenceEqualOperator","SequenceEqualSubscriber","_oneComplete","checkValues","areEqual","nextB","completeB","SequenceEqualCompareToSubscriber","shareSubjectFactory","share","shareReplay","configOrBufferSize","shareReplayOperator","useRefCount","single","SingleOperator","SingleSubscriber","seenValue","applySingleValue","singleValue","SkipOperator","SkipSubscriber","skipLast","SkipLastOperator","_skipCount","SkipLastSubscriber","_count","_ring","skipCount","skipUntil","SkipUntilOperator","SkipUntilSubscriber","skipWhile","SkipWhileOperator","SkipWhileSubscriber","skipping","tryCallPredicate","startWith","SubscribeOnObservable","subscribeOn","SubscribeOnOperator","SwitchMapOperator","SwitchMapSubscriber","switchAll","switchMapTo","takeUntil","TakeUntilOperator","takeUntilSubscriber","TakeUntilSubscriber","takeWhile","inclusive","TakeWhileOperator","TakeWhileSubscriber","nextOrComplete","predicateResult","nextOrObserver","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","defaultThrottleConfig","leading","trailing","throttle","ThrottleOperator","ThrottleSubscriber","_leading","_trailing","_hasValue","_sendValue","_throttled","tryDurationSelector","throttlingDone","throttleTime","ThrottleTimeOperator","ThrottleTimeSubscriber","_hasTrailingValue","_trailingValue","timeInterval","TimeInterval","due","withObservable","absoluteTimeout","waitFor","TimeoutWithOperator","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","TimeoutError","Timestamp","toArrayReducer","windowBoundaries","WindowOperator","windowSubscriber","sourceSubscription","WindowSubscriber","openWindow","prevWindow","newWindow","windowCount","startWindowEvery","WindowCountOperator","WindowCountSubscriber","windows","window_1","windowTimeSpan","windowCreationInterval","maxWindowSize","WindowTimeOperator","CountedSubject","_numberOfNextedValues","WindowTimeSubscriber","dispatchWindowClose","dispatchWindowCreation","dispatchWindowTimeSpanOnly","numberOfNextedValues","closeWindow","window_2","timeSpanState","windowToggle","WindowToggleOperator","WindowToggleSubscriber","openSubscription","context_3","context_4","windowWhen","unsubscribeClosingNotification","closingNotification","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","toRespond","_tryProject","zipAll","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","entropyEnc","nonceEnc","persEnc","_hmac","kmac","reseed","addEnc","UnsubscriptionErrorImpl","UnsubscriptionError","isCrowdsaleWallet","encseed","ethaddr","isKeystoreWallet","hasSymbol","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isESModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","currentLocation","searchPos","hashPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","toPosition","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","docRect","elRect","behavior","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getElementById","getScrollKey","history","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","teardowns","pauseState","popStateHandler","fromState","forward","back","unknown","pauseListeners","listen","teardown","beforeUnloadListener","replaceState","buildState","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","REGEX_CHARS_RE","tokensToParser","extraOptions","score","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","subPattern","avoidDuplicatedSlash","compareScoreArray","comparePathParserScore","aScore","bScore","comp","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","matcher","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","paramsFromLocation","parentMatcher","mergeMetaFields","redirect","beforeEnter","normalizeRecordProps","instances","leaveGuards","updateGuards","enterCallbacks","propsObject","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","hasLeadingIM","searchParam","eqPos","normalizeQuery","normalizedQuery","useCallbacks","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","__vccOpts","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","activeClass","exactActiveClass","ariaCurrentValue","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","RouterLink","metaKey","altKey","ctrlKey","defaultPrevented","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","injectedRoute","routeToDisplay","matchedRouteRef","viewRef","oldInstance","oldName","matchedRoute","ViewComponent","currentName","normalizeSlot","routePropsOption","routeProps","onVnodeUnmounted","isUnmounted","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","handleScroll","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","_from","readyHandlers","errorHandlers","isReady","installedApps","beforeEach","beforeResolve","afterEach","$router","reactiveRoute","unmountApp","recordFrom","recordTo","ERROR","JS_SHA256_NO_WINDOW","JS_SHA256_NO_NODE_JS","JS_SHA256_NO_COMMON_JS","JS_SHA256_NO_ARRAY_BUFFER","EXTRA","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","is224","Sha256","nodeWrap","eval","nodeMethod","createHash","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h1","h4","h5","h6","h7","hBytes","oKeyPad","iKeyPad","s0","cd","bc","dataView","DataView","setUint32","MerkleTree","buffer_reverse_1","sha256_1","Base_1","treeify_1","leaves","hashFn","duplicateOdd","hashLeaves","isBitcoinTree","layers","sortLeaves","sortPairs","fillDefaultHash","bufferifyFn","processLeaves","_createHashes","layerIndex","combined","leaf","shouldHash","_bufferIndexOf","getLeaves","jsonStr","layer","getLayersFlat","getLayers","getRoot","proof","isRightNode","pairIndex","getProof","treeIndices","leafCount","maximalIndices","redundantIndices","sortedLeafIndices","leavesCount","unevenLayers","unevenLayer","proofIndices","layerNodes","siblingIndices","proofNodeIndices","indices","isUneven","isUnevenTree","getMultiProofForUnevenTree","els","ids","nextIds","pairElement","_getPairNode","getProofIndices","proofHashes","currentLayerIndices","treeLayer","siblings","uniqueIndices","getMultiProof","proofs","_proofs","tested","skipped","proofUsed","targetNode","isLeftNode","proofLeaves","verifyMultiProofForUnevenTree","_zip","proofitem","indexqueue","proofFlag","leavesLen","totalHashes","leafPos","proofPos","bufA","bufB","computedRoot","calculateRootForUnevenTree","objs","akey","bkey","pairIdx","getLayersAsObject","asTree","_toTreeString","treeLayers","getDepth","isPowOf2","leafIndices","leafHashes","totalLeavesCount","leafTuples","indexA","indexB","leafTupleIndices","getProofIndicesForUnevenTree","nextSliceStart","proofTuplesByLayers","sliceStart","currentLayer","parentIndices","parentLayer","parentNodeTreeIndex","InternalMetadataModule","inheritIfRequired","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","getGlobal","anyGlobal","KECCAK256_RLP","KECCAK256_RLP_S","KECCAK256_RLP_ARRAY","KECCAK256_RLP_ARRAY_S","KECCAK256_NULL","KECCAK256_NULL_S","TWO_POW256","MAX_INTEGER","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","collection","collectionStrong","$propertyIsEnumerable","TO_ENTRIES","keccak_256","encodeLength","inputBuf","safeParseInt","hexLength","lLength","decoded","_decode","llength","length_1","innerRemainder","totalLength","ArgumentOutOfRangeErrorImpl","isArguments","isIndex","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","P1600_ROUND_CONSTANTS","lo0","hi0","lo1","hi1","lo2","hi2","lo3","hi3","lo4","hi4","t1slo0","t1shi0","t1slo5","t1shi5","t1slo10","t1shi10","t1slo15","t1shi15","t1slo20","t1shi20","t1slo1","t1shi1","t1slo6","t1shi6","t1slo11","t1shi11","t1slo16","t1shi16","t1slo21","t1shi21","t1slo2","t1shi2","t1slo7","t1shi7","t1slo12","t1shi12","t1slo17","t1shi17","t1slo22","t1shi22","t1slo3","t1shi3","t1slo8","t1shi8","t1slo13","t1shi13","t1slo18","t1shi18","t1slo23","t1shi23","t1slo4","t1shi4","t1slo9","t1shi9","t1slo14","t1shi14","t1slo19","t1shi19","t1slo24","t1shi24","t2slo0","t2shi0","t2slo16","t2shi16","t2slo7","t2shi7","t2slo23","t2shi23","t2slo14","t2shi14","t2slo10","t2shi10","t2slo1","t2shi1","t2slo17","t2shi17","t2slo8","t2shi8","t2slo24","t2shi24","t2slo20","t2shi20","t2slo11","t2shi11","t2slo2","t2shi2","t2slo18","t2shi18","t2slo9","t2shi9","t2slo5","t2shi5","t2slo21","t2shi21","t2slo12","t2shi12","t2slo3","t2shi3","t2slo19","t2shi19","t2slo15","t2shi15","t2slo6","t2shi6","t2slo22","t2shi22","t2slo13","t2shi13","t2slo4","t2shi4","createFilterMiddleware","names","suffix","formatted","unitName","ether","PromiseConstructorWrapper","CHECK_WRAPPER","messagePrefix","Wrapper","NewTarget","NewTargetPrototype","Sha224","_f","_g","_h","strictUriEncode","decodeComponent","splitOnFirst","encoderForArrayFormat","arrayFormat","skipNull","skipEmptyString","arrayFormatSeparator","parserForArrayFormat","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","extract","queryStart","parseNumbers","parseBooleans","shouldFilter","objectCopy","parseUrl","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotalH","nBitsTotalL","HmacMD5","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","browserUtils","_interopDefault","React","WALLETCONNECT_STYLE_SHEET","_catch","WALLETCONNECT_LOGO_SVG_URL","WALLETCONNECT_HEADER_TEXT","ANIMATION_DURATION","DEFAULT_BUTTON_COLOR","WALLETCONNECT_WRAPPER_ID","WALLETCONNECT_STYLE_ID","WALLETCONNECT_MODAL_ID","WALLETCONNECT_CLOSE_BUTTON_ID","WALLETCONNECT_CTA_TEXT_ID","WALLETCONNECT_CONNECT_BUTTON_ID","Header","onClose","ConnectButton","CARET_SVG_URL","WalletButton","backgroundSize","WalletIcon","fontSize","GRID_MIN_COUNT","LINKS_PER_PAGE","LinkDisplay","android","setInput","ref$1","setFilter","ref$2","page","setPage","grid","pages","pageLinks","hasPaging","filterTimeout","handleInput","connect_mobile_wallet","choose_preferred_wallet","onChange","handleClickIOS","no_wallets_found","pageNumber","fontWeight","formatQRCodeImage","dataString","QRCodeDisplay","setNotification","_formatQRCodeImage","copyToClipboard","copied_to_clipboard","scan_qrcode_with_wallet","copy_to_clipboard","Modal","mobile","mobileLinks","desktopLinks","setLoading","fetched","setFetched","displayQRCode","setDisplayQRCode","displayProps","ref$3","singleLinkHref","setSingleLinkHref","ref$4","hasSingleLink","setHasSingleLink","ref$5","setLinks","ref$6","setErrorMessage","getLinksIfNeeded","initLinks","_temp","registryUrl","_links","no_supported_wallets","something_went_wrong","rightSelected","connect_with","de","es","fr","ko","pt","zh","fa","languages","injectStyleSheet","renderWrapper","triggerCloseAnimation","getWrappedCallback","getText","open$1","close$1","open$2","close$2","wrappedWellKnownSymbolModule","NAME","NetworkMonitor","importPublic","privateToPublic","privateToAddress","pubToAddress","isValidPublic","isValidPrivate","isPrecompiled","generateAddress2","generateAddress","isValidChecksumAddress","toChecksumAddress","isZeroAddress","zeroAddress","addressLength","zeroAddr","eip1191ChainId","nonceBN","rlphash","initCode","fromBuf","saltBuf","initCodeBuf","sanitize","pubKey","zero2","NONE","combineLatest","CombineLatestOperator","CombineLatestSubscriber","oldVal","_tryResultSelector","documentCreateElement","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","N1","N2","N3","N4","getMaskAt","maskPattern","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","activeEffectScope","effectScopeStack","EffectScope","detached","effects","cleanups","scopes","fromParent","effectScope","recordEffectScope","effect","getCurrentScope","onScopeDispose","createDep","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","enableTracking","cleanupEffect","resetTracking","onStop","_effect","shouldTrack","trackStack","pauseTracking","track","isTracking","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","oldTarget","triggerEffects","allowRecurse","isNonTrackableKeys","builtInSymbols","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","shallowSet","hadKey","deleteProperty","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","toReadonly","toReactive","has$1","set$1","deleteEntry","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isReactive","isProxy","markRaw","trackRefValue","triggerRefValue","newVal","__v_isRef","shallowRef","__v_isShallow","_rawValue","triggerRef","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","_get","_set","customRef","toRefs","toRef","ObjectRefImpl","_object","ComputedRefImpl","_setter","isSSR","_dirty","computed","_cacheable","getterOrOptions","debugOptions","onlyGetter","cRef","appWarnHandler","warnHandler","getComponentTrace","callWithErrorHandling","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","recurseCount","parentInstance","formatTraceEntry","isRoot","formatProps","formatProp","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","errorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","findInsertionIndex","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queueCb","activeQueue","pendingQueue","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","parentJob","flushPostFlushCbs","deduped","devtoolsNotInstalled","setDevtoolsHook","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","emit$1","rawArgs","isModelListener","modelArg","modifiersKey","handlerName","onceHandler","normalizeEmitsOptions","asMixin","emitsCache","emits","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","pushScopeId","popScopeId","withScopeId","withCtx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","withProxy","propsOptions","renderCache","setupState","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","createVNode","Comment","filterModelListeners","cloneVNode","dirs","filterSingleRoot","singleRoot","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","SuspenseImpl","n1","n2","anchor","parentComponent","parentSuspense","isSVG","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","triggerEvent","patch","hiddenContainer","suspense","pendingBranch","ssContent","ssFallback","setActiveBranch","um","newBranch","newFallback","activeBranch","isInFallback","isHydrating","isSameVNodeType","pendingId","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","mountFallback","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","suspenseId","asyncResolved","handleSetupResult","doRemove","hydrateNode","isSlotChildren","normalizeSuspenseSlot","trackBlock","isBlockTreeEnabled","openBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","provides","parentProvides","inject","treatDefaultAsFactory","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","watch","deep","onTrack","onTrigger","forceTrigger","isMultiSource","onCleanup","baseGetter","isInSSRComponentSetup","queuePostRenderEffect","isMounted","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","useTransitionState","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","hooks","leavingVNode","afterHook","cancelHook","_enterCb","isKeepAlive","keepComment","keyedFragmentCount","defineComponent","setup","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loadingComponent","errorComponent","suspensible","userOnError","resolvedComp","pendingRequest","thisRequest","userRetry","userFail","createInnerComp","delayed","__isKeepAlive","KeepAliveImpl","sharedContext","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","__asyncResolved","cachedVNode","KeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","shouldCacheAccess","applyOptions","resolveMergedOptions","beforeCreate","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","created","mounted","updated","activated","deactivated","beforeDestroy","beforeUnmount","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","directives","filters","checkDuplicateProperties","resolveInjections","unwrapInjectedRef","methodHandler","opt","createWatcher","registerLifecycleHook","_hook","exposed","unwrapRef","normalizeInject","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","initProps","isStateful","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","internalInstance","bindings","invokeDirectiveHook","oldBindings","createAppContext","isNativeTag","performance","compilerOptions","uid","createAppAPI","rootComponent","rootProps","installedPlugins","_uid","_component","_props","_container","_instance","rootContainer","isHydrate","__vue_app__","getExposeProxy","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","_isString","_isRef","doSet","existing","hasMismatch","isSVGContainer","namespaceURI","isComment","createHydrationFunctions","mt","mountComponent","patchProp","createComment","hasChildNodes","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","Static","needToAdoptContent","staticCount","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","previousSibling","lastChild","createTextVNode","hydrateChildren","forcePatchValue","vnodeHooks","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","isFragment","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","hostCloneNode","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","mountChildren","unmountChildren","scopeId","needCallTransitionHooks","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","registerDep","updateComponentPreRender","componentUpdateFn","bu","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","prevShapeFlag","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","e1","e2","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","_vnode","mc","pc","pbc","createApp","ch1","ch2","arrI","isTeleport","__isTeleport","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","targetSelector","TeleportImpl","mainAnchor","targetAnchor","mount","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","hydrateTeleport","isReorder","_lpa","Teleport","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","disableTracking","vnodeArgsTransformer","setupBlock","createElementBlock","createBaseVNode","createBlock","__v_isVNode","transformVNodeArgs","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","extraProps","mergeRef","mergedProps","mergeProps","createStaticVNode","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","incoming","renderList","renderItem","createSlots","dynamicSlots","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","vnodes","toHandlers","getPublicInstance","isStatefulComponent","publicPropertiesMap","$el","$data","$props","$attrs","$refs","$parent","$emit","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","exposeProxy","setupContext","rtg","rtc","sp","ce","compile","installWithProxy","setupResult","setupStatefulComponent","createSetupContext","resolvedResult","finishComponentSetup","__ssrInlineRender","ssrRender","registerRuntimeCompiler","_compile","_rc","isRuntimeOnly","skipOptions","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","classifyRE","classify","__file","inferFromRegistry","defineProps","defineEmits","defineExpose","withDefaults","useSlots","useAttrs","mergeDefaults","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","propsOrChildren","ssrContextKey","useSSRContext","initCustomFormatter","withMemo","isMemoSame","_ssrUtils","ssrUtils","resolveFilter","compatUtils","svgNS","templateContainer","nodeOps","nodeValue","patchClass","transitionClasses","_vtc","patchStyle","isCssString","currentDisplay","importantRE","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","patchDOMProp","skipTimestampCheck","ffMatch","cachedNow","getNow","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","patchStopImmediatePropagation","originalStop","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydate","Comp","VueCustomElement","initialProps","def","defineSSRCustomElement","BaseClass","_def","_resolved","_numberProps","shadowRoot","attachShadow","_resolveDef","_setAttr","mutations","attributeName","hasOptions","rawKeys","numberProps","_setProp","_getProp","_applyStyles","asyncDef","shouldReflect","shouldUpdate","CustomEvent","detail","useCssModule","useCssVars","setVars","setVarsOnVNode","ob","childList","vars","setVarsOnNode","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","webkitTransform","transitionDuration","_moveCb","cssTransitionProps","TransitionGroup","oldPos","newPos","dy","getModelAssigner","onCompositionStart","composing","onCompositionEnd","vModelText","_assign","castToNumber","domValue","vModelCheckbox","modelValue","_modelValue","elementValue","filtered","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","setSelected","_binding","isMultiple","selectedIndex","vModelDynamic","callModelHook","modelToUse","initVModelForSSR","getSSRProps","systemModifiers","modifierGuards","prevent","ctrl","exact","withModifiers","keyNames","space","down","withKeys","eventKey","vShow","_vod","setDisplay","initVShowForSSR","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","lcStr","expires","secure","toGMTString","__spreadArrays","il","jl","BrowserInfo","NodeInfo","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","parseUserAgent","product","getNodeVersion","matchUserAgent","regex","uaMatch","matchedRule","versionParts","createVersionParts","searchBotMatch","BitBuffer","bufIndex","putBit","getLengthInBits","EthereumChain_1","eth_eip712_util_1","FilterPolyfill_1","JSONRPC_1","SubscriptionManager_1","DEFAULT_CHAIN_ID_KEY","DEFAULT_JSON_RPC_URL","HAS_CHAIN_BEEN_SWITCHED_KEY","HAS_CHAIN_OVERRIDDEN_FROM_RELAY","_filterPolyfill","FilterPolyfill","_subscriptionManager","SubscriptionManager","_addresses","hasMadeFirstChainChangedEmission","_send","_sendAsync","updateProviderInfo","getChainId","_setAddresses","genericRequest","_jsonRpcUrlFromOpts","_relayProvider","isCoinbaseWallet","chainIdStr","initializeRelay","isChainOverridden","fromRelay","hasChainSwitched","originalChainId","chainChanged","ensureIntNumber","switchResponse","ethereumChain","BigInt","ETH_ACCOUNTS_STATE","addresses_length","eth_requestAccounts","requestOrMethod","callbackOrParams","_sendRequestAsync","requests","arrayCb","_sendMultipleRequestsAsync","makeRequestId","ensureRegExpString","_handleSynchronousMethods","newAddresses","ensureAddressString","syncResult","filterPromise","_handleAsynchronousFilterMethods","subscriptionPromise","_handleSubscriptionMethods","_handleAsynchronousMethods","eth_accounts","_eth_accounts","eth_coinbase","_eth_coinbase","eth_uninstallFilter","_eth_uninstallFilter","net_version","_net_version","eth_chainId","_eth_chainId","_eth_requestAccounts","eth_sign","_eth_sign","eth_ecRecover","_eth_ecRecover","personal_sign","_personal_sign","personal_ecRecover","_personal_ecRecover","eth_signTransaction","_eth_signTransaction","eth_sendRawTransaction","_eth_sendRawTransaction","eth_sendTransaction","_eth_sendTransaction","eth_signTypedData_v1","_eth_signTypedData_v1","eth_signTypedData_v2","_throwUnsupportedMethodError","eth_signTypedData_v3","_eth_signTypedData_v3","eth_signTypedData_v4","eth_signTypedData","_eth_signTypedData_v4","walletlink_arbitrary","_walletlink_arbitrary","wallet_addEthereumChain","_wallet_addEthereumChain","wallet_switchEthereumChain","_wallet_switchEthereumChain","makeEthereumJSONRPCRequest","eth_newFilter","_eth_newFilter","eth_newBlockFilter","_eth_newBlockFilter","eth_newPendingTransactionFilter","_eth_newPendingTransactionFilter","eth_getFilterChanges","_eth_getFilterChanges","eth_getFilterLogs","_eth_getFilterLogs","eth_subscribe","eth_unsubscribe","addressString","_isKnownAddress","_ensureKnownAddress","ensureBN","ensureBuffer","hexStringFromIntNumber","_requireAuthorization","_signEthereumMessage","_ethereumAddressFromSignedMessage","_prepareTransactionParams","signAndSubmitEthereumTransaction","ensureParsedJSONObject","typedDataJSON","chainIdNumber","ensureHexString","setAccountsCallback","setChainCallback","PBKDF2","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","toSJISFunction","CODEWORDS_COUNT","getSymbolSize","getSymbolTotalCodewords","getBCHDigit","setToSJISFunction","isKanjiModeEnabled","activeXDocument","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","forwardErrors","_checkProvider","checkTransaction","populateTransaction","hasEip1559","_isSigner","_fail","_normalizeEncoding","retried","normalizeEncoding","nenc","nb","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","ripemd","$find","addToUnscopables","FIND","SKIPS_HOLES","FunctionName","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","Sha1","rotl1","Formatter","formats","getDefaultFormats","bigNumber","strictData","allowNull","transactionIndex","uint256","transactionRequest","receiptLog","arrayOf","logIndex","gasUsed","logsBloom","cumulativeGasUsed","effectiveGasPrice","parentHash","difficulty","miner","extraData","baseFeePerGas","blockWithTransactions","allowFalsish","author","_difficulty","_block","byzantium","checkKey","checkValue","nullValue","isCommunityResourcable","throttleMessage","showThrottleMessage","EthBlockTracker","eachSeries","Stoplight","Web3ProviderEngine","setMaxListeners","directProvider","_handleAsync","blockTrackerProvider","_blockTracker","_ready","_providers","toBufferBlock","jsonBlock","mixHash","sha3Uncles","transactionsRoot","stateRoot","receiptsRoot","receiptRoot","totalDifficulty","_getBlockByNumberWithRetry","bufferBlock","_setCurrentBlock","_running","removeProvider","await","retriesRemaining","attemptRequest","_getBlockByNumber","afterRequest","_result","resultObj","periodOrScheduler","includeBlockRef","ECB","endPos","isAbsoluteURL","combineURLs","baseURL","requestedURL","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","bytes2","createTable","createRangeTable","matchMap","Table_A_1_ranges","Table_B_1_flags","Table_B_2_ranges","Table_B_2_lut_abs","Table_B_2_lut_rel","Table_B_2_complex","Table_C_ranges","flatten","_nameprepTableA1","codepoint","_nameprepTableB2","complex","_nameprepTableC","codesTableB2","NFKC","thing","deprecatedWarnings","allowUnknown","formatMessage","elementaryName","parseTypeN","parseTypeNxM","parseTypeArray","parseNumber","encodeSingle","isDynamic","headLength","quot","copyProps","SafeBuffer","BaseFilter","getBlocksForRange","TxFilter","blockTxHashes","Action","clearInterval","errorValue","unwrapped","arguments_","filterCache","objectType","writableOrConfigurableOwn","included","pified","allowHalfOpen","onEndNT","_enable_super_gross_mode_that_will_cause_bad_things","functionToString","toVal","mix","scheduleObservable","schedulePromise","scheduleIterable","isInteropObservable","isIterable","SHA512","SHA384","clsx_1","Snackbar_css_1","cblogo","gearIcon","nextItemKey","itemProps","SnackbarContainer","SnackbarInstance","hidden","setHidden","setExpanded","timers","toggleExpanded","xmlns","cy","pred","notPred","Iso97971","Polynomial","ReedSolomonEncoder","genPoly","paddedData","buff","JsonRpcEngineMiddlewareSubprovider","constructorFn","_constructorFn","provEngNext","provEngEnd","middlewareNext","middlewareEnd","CancelToken","onfulfilled","_resolve","_withoutIndex","_inheritsLoose","subClass","superClass","createErrorType","getMessage","NodeError","_Base","oneOf","expected","this_len","determiner","regExpFlags","isLE","mLen","eLen","eMax","eBias","nBits","NaN","LN2","qs","sep","maxKeys","kstr","vstr","FINDER_PATTERN_SIZE","getPositions","toArrayBuffer","IncomingMessage","rStates","readyStates","decideMode","preferBinary","useFetch","mozchunkedarraybuffer","msstream","arraybuffer","vbArray","ClientRequest","_opts","abortController","_fetchTimer","_onFinish","statusValid","lowerName","unsafeHeaders","getHeader","header","removeHeader","_destroyed","headersObj","blobConstructor","headersList","keyName","controller","AbortController","_fetchAbortController","requestTimeout","_fetchResponse","_connect","_xhr","_onXHRProgress","onprogress","flushHeaders","setNoDelay","setSocketKeepAlive","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","KeccakState","Shake","delimitedSuffix","_rate","_capacity","_delimitedSuffix","_finalized","dataByteLength","eachOfLimit","_eachOfLimit3","isConstantTime","arr1","throwIfNotStringOrBuffer","HashBase","_blockSize","_blockOffset","EDDSA","pointClass","keyFromSecret","hashInt","s_","makeSignature","SG","RplusAh","intFromLE","normed","xIsOdd","statusCodes","defaultProtocol","Agent","defaultMaxSockets","METHODS","feature","detection","POLYFILL","NATIVE","isPrime","sqrtN","getFractionalBits","nPrime","gamma0x","gamma1x","HmacSHA256","asyncTag","genTag","proxyTag","G15","G15_MASK","G15_BCH","getEncodedBits","_objectSpread","_require2","hasStrings","_getString","_getBuffer","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","mark","awrap","skipTempReset","rootEntry","rootRecord","rval","exception","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","_isArray2","taskIndex","nextTask","_isArray","alg","createHashFunction","hashConstructor","createHTML","forcedStringHTMLMethod","observeOn","ObserveOnOperator","ObserveOnSubscriber","scheduleMessage","ObserveOnMessage","doesNotExceedSafeInteger","arraySpeciesCreate","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","freeProcess","getBinarySize","arrayContainsArray","superset","subset","toUtf8","bufferValue","toAscii","fromUtf8","stringValue","fromAscii","getKeys","allowEmpty","usingIterator","reservedEvents","infuraNetworks","1","3","4","5","42","convertArrayBufferToBuffer","arrBuf","convertArrayBufferToHex","noPrefix","convertBufferToArrayBuffer","convertUtf8ToBuffer","convertUtf8ToHex","convertHexToArrayBuffer","convertNumberToHex","payloadId","uuid","getInfuraRpcUrl","getRpcUrl","infuraUrl","isEmptyString","isEmptyArray","isJsonRpcRequest","isJsonRpcResponseSuccess","isJsonRpcResponseError","isInternalEvent","isReservedEvent","isSilentPayload","parsePersonalSign","parseTransactionData","txData","parseHexValues","txDataRPC","prunable","formatRpcError","getQueryString","pathEnd","appendToQueryString","newQueryParams","queryParams","formatQueryString","isWalletConnectSession","parseWalletConnectUri","pathStart","parseRequiredParams","separator","requiredParams","parseQueryParams","opaque","bigint","_isFrozen","isFrozen","_deepCopy","Description","$defineProperty","ENUMERABLE","WRITABLE","Attributes","KeystoreAccount","_isKeystoreAccount","Counter","aesCtr","ModeOfOperation","ctr","_getAccount","computedMAC","mnemonicKey","mnemonicCiphertext","mnemonicIv","mnemonicCounter","mnemonicAesCtr","pbkdf2Sync","passwordBytes","dkLen","prfFunc","_computeKdfKey","pbkdf2Func","scryptFunc","prf","decryptSync","syncScrypt","scrypt","client","uuidRandom","macPrefix","mac","Crypto","cipherparams","kdfparams","dklen","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","gethFilename","cacheUtils","emptyValues","createBlockCacheMiddleware","blockCache","BlockCacheStrategy","strategies","perma","fork","strategy","canCacheRequest","requestedBlockNumber","latestBlockNumber","clearBefore","cacheResult","blockNumberHex","newCache","getBlockCacheForPayload","identifier","canCacheResult","oldBlockHex","oldBlockNumber","One","Two","WeiPerEther","MaxUint256","MinInt256","MaxInt256","ALPHA_NUM_CHARS","AlphanumericData","ENUMERABLE_NEXT","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","innerLen","outerKey","dk","incrementCounter","blockmix_salsa8","BY","Yi","arraycopy","blockxor","salsa20_8","Si","srcPos","checkBufferish","ensureInteger","_scrypt","XY","totalOps","Bi","currentOp","lastPercent10","incrementalSMix","percent10","lastProgress","MISSED_STICKY","makeMap","expectsLowerCase","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","parseStringStyle","listDelimiterRE","propertyDelimiterRE","normalizeClass","normalizeProps","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","isMap","isSet","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","camelizeRE","camelize","hyphenateRE","hyphenate","toHandlerKey","hasChanged","invokeArrayFns","fns","_globalThis","getGlobalThis","toPrimitive","ensureEvenLengthHexString","strip0x","has0xPrefix","intNumberFromHexString","hexStringToUint8Array","uint8ArrayToHex","INT_STRING_REGEX","HEXADECIMAL_STRING_REGEX","padStart","includePrefix","HexString","BigIntString","AddressString","RegExpString","EUCLID","Iso10126","semaphore","firstHere","isFirst","available","bubbles","cancelable","PC1","PC2","BIT_SHIFTS","SBOX_P","0","SBOX_MASK","DES","keyWords","keyBits","keyBitPos","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_doCryptBlock","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","_des1","_des2","_des3","deletePropertyOrThrow","deleteCount","insertCount","actualDeleteCount","actualStart","INCORRECT_ITERATION","MergeMapOperator","MergeMapSubscriber","cookiestr","request_domain","request_path","expiration_date","explicit_path","explicit_domain","noscript","All","cookie_str_splitter","cookies","cookies_list","collidable_cookie","setCookie","collidesWith","getCookie","cookie_name","access_info","access_domain","cookie_domain","wildcard","successful","_ctorUnsubscribe","parent_1","flattenUnsubscriptionErrors","subscriptionIndex","errs","NON_GENERIC","OpaqueType","EE","_isStdio","didOnEnd","ErrorDescription","_isIndexed","BuiltinErrors","wrapAccessError","fragments","bucket","deploy","functions","payable","full","sighash","eventFragment","nameOrSignatureOrSighash","getSighash","nameOrSignatureOrTopic","topichash","getEventTopic","getFunction","getError","getEvent","_abiCoder","_encodeParams","_decodeParams","functionFragment","errorArgs","errorName","errorSignature","builtin","UNEXPECTED_ARGUMENT","anonymous","encodeTopic","indexed","dataTypes","dataValues","topicHash","nonIndexed","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","decodeEventLog","hexData","errorFragment","_isInterface","AnsiX923","lastBytePos","Ansix923","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","swapEndian","Utf16LE","isStrictTypedArray","isLooseTypedArray","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","maxCode","NumberWrapper","writableStream","WritableStream","getXHR","XDomainRequest","checkTypeSupport","haveArrayBuffer","haveSlice","VBArray","rotr32","p32","AlignmentPattern","FinderPattern","MaskPattern","ECCode","Version","FormatInfo","Segments","setupFinderPattern","matrix","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupFormatInfo","setupData","inc","bitIndex","byteIndex","createData","getCharCountIndicator","totalCodewords","ecTotalCodewords","dataTotalCodewordsBits","remainingByte","createCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup2","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","dcData","ecData","maxDataSize","dataSize","createSymbol","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","toSJISFunc","CTRGladman","incWord","incCounter","_counter","error1","error2","cause","browserCrypto","_maxConcurrency","acquire","locked","isLocked","ticket","_dispatch","runExclusive","_currentReleaser","releaser","nextConsumer","released","Mutex","_semaphore","withTimeout","timeoutError","isTimeout","getDevtoolsGlobalHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","aobj","bobj","colonSeparator","keyValue","onlyOnce","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","RESERVED_ERROR_CODES","SERVER_ERROR_CODE_RANGE","STANDARD_ERROR_MAP","hasIndices","ignoreCase","dotAll","unicodeSets","BlockFilter","blockBodies","blockHashes","readableHwm","readableHighWaterMark","defaultHwm","needMoreData","fromListPartial","copyFromBufferString","copyFromBuffer","increasedAwaitDrain","mergeSort","comparefn","insertionSort","rlength","lindex","getCurve","p0","encodeCompressed","digestBytes","otherKey","otherKeyPair","derive","_isSigningKey","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","Target","Source","getEthJsonRpcError","parseOpts","getEthProviderError","server","TO_STRING_TAG_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","checkInts","arrayish","coerceArray","createArray","copyArray","sourceArray","targetArray","sourceStart","sourceEnd","convertUtf8","convertHex","numberOfRounds","16","24","32","rcon","T3","T4","T5","T6","T7","T8","U1","U2","U3","U4","convertToInt32","AES","_prepare","rounds","_Ke","_Kd","roundKeyCount","KC","tt","rconpointer","ModeOfOperationECB","_aes","ModeOfOperationCBC","_lastCipherblock","ModeOfOperationCFB","segmentSize","_shiftRegister","xorSegment","ModeOfOperationOFB","_lastPrecipher","_lastPrecipherIndex","setBytes","ModeOfOperationCTR","_remainingCounter","_remainingCounterIndex","pkcs7pad","padder","pkcs7strip","aesjs","ecb","cbc","cfb","ofb","pkcs7","_arrayTest","Scheduler","MerkleMountainRange","hashLeafFn","peakBaggingFn","hashBranchFn","dataHash","dataHashHex","hashLeaf","peakIndexes","getPeakIndexes","getSize","peaks","_getOrCreateNode","peakBagging","numPeaks","numOfPeaks","reducedIndex","peakIndex","mountainHeight","heightAt","isLeaf","cursor","getChildren","targetPeak","hashBranch","peakMap","peakRef","prevPeakMap","itemHash","nextPeakMap","newWidth","cursorIndex","getLeafIndex","cursorNode","prevPeakExist","nextPeakExist","obtained","itemHashes","tmpWidth","tmpPeakMap","peaksToPeakMap","peakUpdate","peakMapToPeaks","leftIndex","rightIndex","leftHash","rightHash","hasNext","EtherSymbol","eachLimit","_withoutIndex2","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","settle","buildFullPath","parseHeaders","isURLSameOrigin","onCanceled","requestData","requestHeaders","Authorization","onloadend","responseHeaders","responseData","responseURL","onabort","timeoutErrorMessage","xsrfValue","onDownloadProgress","onUploadProgress","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","yh","yl","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","characterData","ARRAY16","fn1","fn2","fn3","fn4","fn5","tl","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","_typeof","keccak224","keccak384","keccak512","rlp","SHA3_NULL_S","SHA3_NULL","SHA3_RLP_ARRAY_S","SHA3_RLP_ARRAY","SHA3_RLP_S","SHA3_RLP","sha3","padded","_fields","allowZero","allowLess","finalSize","_finalSize","assigned","rem","lowBits","highBits","$repeat","un$ToFixed","dataToString","fractionDigits","fractDigits","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","filterReject","_importDER","Position","place","octetLen","rmPadding","constructLength","octets","toDER","backHalf","createScaffoldMiddleware","createSubscriptionMiddleware","filterManager","subscriptionType","createSubNewHeads","filterParams","newLogFilter","createSubFromFilter","rawBlocks","normalizeBlock","_emitSubscriptionResult","idHex","filterIdHex","Sha384","X64Word","X64WordArray","HmacSHA384","NoPadding","SubjectSubscription","subscriberIndex","gap","rep","escapable","quote","mind","WalletLinkAnalyticsAbstract","fromPrivate","genKeyPair","drbg","ns2","_truncateToN","truncOnly","getPrivate","ns1","kp","kpX","sinv","_maxwellTrick","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","Events","_eventsCount","clearEvent","eventNames","skipFetchSetup","referrer","statusMessage","bodyify","attemptLimit","throttleLimit","allow304","allowInsecureAuthentication","authorization","reData","dataMatch","requestBody","flatHeaders","runningTimeout","makeError","TIMEOUT","runningFetch","tryAgain","retryAfter","processJsonFunc","hasContentType","ceiling","retryLimit","onceBlock","preventExtensions","_importPrivate","privEnc","_importPublic","pubEnc","compact","sum32_3","Kh","Ah","Bh","Dh","Eh","rh","sh","VersionCheck","Regex","ccBits","MIXED","getBestModeForData","dataStr","EthereumAddressFromSignedMessageResponse","SubmitEthereumTransactionResponse","SignEthereumTransactionResponse","SignEthereumMessageResponse","addResponse","signedData","checkTopic","serializeTopics","sorted","deserializeTopics","getEventTag","isForkEvent","PollableEvents","Event","coinInfos","p2pkh","p2sh","ilk","bytes32ify","base58Encode","matcherIpfs","_parseString","_parseBytes","getIpfsLink","Resolver","resolvedAddress","coinType","hexBytes","coinInfo","toWords","callAddress","_fetchBytes","_getAddress","linkage","avatar","_resolvedAddress","tokenId","tokenOwner","metadataUrl","ipfs","swarm","keyBytes","defaultFormatter","nextPollId","BaseProvider","getFormatter","anyNetwork","_networkPromise","knownNetwork","_maxInternalBlockNumber","_lastBlockNumber","_fastQueryDate","maxAge","_internalBlockNumber","internalBlockNumber","respTime","reqTime","checkInternalBlockNumber","networkError","_setFastBlockNumber","pollId","runners","previousBlockNumber","eventBlockNumber","polling","currentNetwork","_fastBlockNumber","_fastBlockNumberPromise","detectedNetwork","_poller","_bootstrapPoll","_waitForTransaction","replaceable","cancelFuncs","alreadyDone","minedHandler","lastBlockNumber","scannedBlock","replaceHandler","mined","getBlockWithTransactions","ti","TRANSACTION_REPLACED","_getBlockTag","expectedHash","returnedHash","confirms","_getTransactionRequest","blockHashOrBlockTag","blockWithTxs","_getBlock","_getResolver","resolver","getResolver","reverseName","resolverAddress","nameOrAddress","getAvatar","pollable","_addEventListener","eventTag","exportWordlist","getWord","getWordIndex","_ethers","NumericData","getStringByteLength","getSegments","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","segs","getSegmentBitsLength","mergeSegments","curr","prevSeg","buildNodes","seg","buildGraph","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildSingleSegment","modesHint","bestMode","optimizedSegs","ALPHABET","ALPHABET_MAP","polymodStep","prefixChk","chk","LIMIT","__decode","lowered","uppered","wordChars","decodeUnsafe","inBits","outBits","maxV","toWordsUnsafe","fromWordsUnsafe","fromWords","AddressZero","ordinaryToPrimitive","exoticToPrim","REQUEST_CHILD_ETHEREUM_ACCOUNTS_START","REQUEST_CHILD_ETHEREUM_ACCOUNTS_RESPONSE","reIsUint","ModifiersBytes","calldata","ModifiersNest","checkModifier","parseParamType","allowIndexed","originalParam","newNode","allowType","allowParams","verifyType","allowName","allowArray","readArray","populate","minimal","paramTypeArray","_isParamType","isParamType","ParamTypify","parseParams","allowIndex","splitNesting","_isFragment","isEventFragment","verifyIdentifier","regexParen","parseGas","parseModifiers","stateMutability","verifyState","isConstructorFragment","parens","isFunctionFragment","returns","checkForbidden","isErrorFragment","regexIdentifier","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x4","x8","RCON","_nRounds","_keyPriorReset","nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","s3","t3","createCommonjsModule","basedir","commonjsRequire","minimalisticAssert","utils_1$1","getNAF","getJSF","jsf","m8","d1","d2","m14","m24","computer","assert$1","BaseCurve","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","_getDoubles","nafW","repr","nafPoints","_getNAFPoints","defW","wndWidth","comb","ja","jb","inherits_browser","assert$2","short_1","curve_1","curves_1","hmacDrbg","assert$3","assert$4","assert$5","signature$1","elliptic_1","EC$1","hash_utils_1","ignoreDuplicateOf","RC4","keySigBytes","keyByteIndex","keyByte","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","isSurrogatePair","htonl","zero8","join32","getRandomId","assignValue","stripBOM","SHARED","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","RefCountOperator","refCounter","RefCountSubscriber","sharedConnection","G18","G18_BCH","getBestVersionForDataLength","currentVersion","getCapacity","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getBestVersionForMixedData","usableBits","normalizedName","fetchTimer","rawHeaders","trailers","rawTrailers","_resumeFetch","pipeTo","getReader","_pos","_charset","charsetMatch","responseBody","newData","MSStreamReader","readAsArrayBuffer","createKeccak","createShake","$includes","BROKEN_ON_SPARSE","nonConfigurable","nonWritable","ReflectApply","pipeFromArray","isReservedErrorCode","getErrorByCode","promiseCapability","_isCrowdsaleAccount","encryptedSeed","aesCbc","seedHex","seedHexBytes","decryptJsonWallet","decryptJsonWalletSync","InnerSubscriber","outerSubscriber","QueueAction","QueueScheduler","queueScheduler","createInstance","defaultConfig","axios","updates","newResults","SimpleInnerSubscriber","SimpleOuterSubscriber","areas","apis","inherit","api","revive","storeAPI","area","Store","namespace","overwrite","transact","each","setAll","testKey","_area","_ns","singleArea","ns","isFake","_in","_out","fillList","fillObj","clearAll","storageAPI","amd","conflict","canPromise","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","toCanvas","aFunction","fromBlockNumber","toBlockNumber","blockCountToQuery","missingBlockNumbers","blockNum","parseHex","NASHORN_BUG","obj_1","keys_1","defineWellKnownSymbol","aPossiblePrototype","CORRECT_SETTER","plainText","ivBytes","secretKey","TextEncoder","encryptedResult","tagLength","authTag","encryptedPlaintext","authTagBytes","encryptedPlaintextBytes","concatted","concattedBytes","decrypted","TextDecoder","TAG","Pebble","mergeMiddleware","JsonRpcEngine_1","asMiddleware","closed_1","getRowColCoords","posCount","positions","coords","posLength","passed","X64Word_create","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","Wi","gamma0xh","gamma0xl","gamma0h","gamma1xh","gamma1xl","gamma1h","Wi7","Wi16","Ki","HmacSHA512","globe_icon_svg_1","link_icon_svg_1","lock_icon_svg_1","QRLogo_1","QRCode_1","Spinner_1","TryExtensionLinkDialog_css_1","isContainerHidden","setContainerHidden","isDialogHidden","setDialogHidden","TryExtensionBox","onInstallClick","ScanQRBox","CancelButton","DescriptionItem","sessionIdKey","qrUrl","Spinner","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","uncurriedNativeRegExpMethod","nativeMethod","forceStringMethod","$exec","$map","IdIterator","arrayCopy","sfc","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","ERROR_NAME","exportWebAssemblyErrorCauseWrapper","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineSymbolToPrimitive","HIDDEN","ObjectPrototype","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$create","IS_OBJECT_PROTOTYPE","useSetter","useSimple","buildWeb3LegacyFetcher","sendFunc","fetcher","buildEip1193Fetcher","jsonRpcFetchFunc","subprovider","createJsonRpcMiddleware","createEthFilterMiddleware","filterIndex","mutex","waitForFree","mutexMiddlewareWrapper","toFilterCreationMiddleware","toAsyncRpcMiddleware","uninstallFilterHandler","filterUpdater","releaseLock","objValues","uninstallAllFilters","installFilter","filterIndexHex","getChangesAndClear","getAllResults","prevFilterCount","newFilterCount","updateBlockTrackerSubs","createFilterFn","BlockCacheSubprovider","MerkleTree_1","MerkleMountainRange_1","fees","N_DIV_2","sigV","_homestead","toCreationAddress","includeSignature","getSenderPublicKey","_senderPubKey","verifySignature","getDataFee","txDataZeroGas","txDataNonZeroGas","getBaseFee","fee","txGas","txCreation","getUpfrontCost","stringError","asyncWrite","writableHwm","writableHighWaterMark","TimeoutErrorImpl","remainingNum","ArrayIteratorMethods","ArrayValues","EmptyErrorImpl","newLen","newArr","HmacSHA1","normalizeArray","allowAboveRoot","basename","matchedSlash","resolvedPath","resolvedAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","dirname","hasRoot","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","hashBitLength","_hashBitLength","_resetState","stringifyPrimitive","ks","hexPadRight","padOffset","hexTrue","hexFalse","domainFieldTypes","verifyingContract","domainFieldNames","checkString","domainChecks","getBaseEncoder","boundsUpper","boundsLower","TypedDataEncoder","parents","subtypes","primaryTypes","checkCircular","st","_types","_encoderCache","_getEncoder","subEncoder","getEncoder","encodedType","_visit","domainFields","hashDomain","ensCache","visit","domainValues","domainTypes","typesWithDomain","subscriptionMiddleware","CORRECT_PROTOTYPE_GETTER","arrayifyInteger","unarrayifyInteger","_decodeChildren","childOffset","consumed","lengthLength","isReactNative","ARRAY_ITERATOR","Arguments","MAX_SAFE","isBigNumberish","BigNumber","_warnedToStringRadix","_isBigNumber","toBigNumber","toBN","anyValue","_base36To16","_base16To36","$default","proxyAccessor","normalizeStringArgument","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newX","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","QR8bitByte","QRMode","MODE_8BIT_BYTE","parsedData","QRCodeModel","typeNumber","errorCorrectLevel","dataCache","dataList","addData","isDark","getModuleCount","makeImpl","getBestMaskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTypeInfo","setupTypeNumber","mapData","minLostPoint","lostPoint","QRUtil","getLostPoint","createMovieClip","target_mc","instance_name","qr_mc","createEmptyMovieClip","beginFill","moveTo","lineTo","endFill","getPatternPosition","getBCHTypeNumber","getBCHTypeInfo","getMask","PAD0","PAD1","rsBlocks","QRRSBlock","getRSBlocks","QRBitBuffer","totalDataCount","dataCount","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","totalCount","rsPoly","getErrorCorrectPolynomial","rawPoly","QRPolynomial","modPoly","modIndex","totalCodeCount","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRErrorCorrectLevel","QRMaskPattern","PATTERN_POSITION_TABLE","errorCorrectLength","QRMath","gexp","qrCode","sameCount","glog","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","QRCodeLimitLength","_getErrorCorrectLevel","_getTypeNumber","_getUTF8Length","pretty","xsize","ysize","xmlDeclaration","predefined","defs","bgrect","modrect","pathdata","px","py","imgSvg","imgWidth","imgHeight","imgX","imgY","relativeURL","asyncify","_isObject","_isObject2","_initialParams","_initialParams2","_setImmediate","_setImmediate2","rethrow","exceptions","toSubscriber","_isScalar","sink","promiseCtor","getPromiseCtor","operations","$stringify","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","eachfn","Ctor","ABI","parseSignature","retargs","decodeSingle","parseType","subArray","eventID","methodID","rawDecode","simpleEncode","simpleDecode","solidityHexValue","bitsize","subType","arraySize","bytesize","soliditySHA256","solidityRIPEMD160","fromSerpent","toSerpent","NotificationKind","do","accept","toObservable","undefinedValueNotification","completeNotification","MapOperator","MapSubscriber","installedModules","__webpack_require__","moduleId","locals","cssWithMappingToString","useSourceMap","cssMapping","sourceMapping","toComment","sourceURLs","sourceRoot","mediaQuery","dedupe","alreadyImportedModules","__webpack_exports__","listToStyles","parentId","newStyles","media","addStylesClient","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","_isProduction","addStylesToDom","newList","mayRemove","domStyle","addStyle","createStyleElement","styleElement","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","cssNode","ssrId","___CSS_LOADER_API_IMPORT___","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","getCurrentScript","currentScript","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","scriptLocation","scripts","external_commonjs_vue_commonjs2_vue_root_Vue_","$setup","_component_Menu","onOpenMenu","openMenu","onCloseMenu","closeMenu","Menuvue_type_template_id_b817dacc_render","crossIcon","burgerIcon","Menuvue_type_script_lang_js","disableEsc","noOverlay","onStateChange","disableOutsideClick","closeOnNavigation","bmBurgerButton","isSideBarOpen","sideNav","_toRefs","closeMenuOnEsc","documentClick","prevIsOpen","prevRight","Menu","slidevue_type_script_lang_js","slide","bubblevue_type_template_id_325b4e41_render","bubblevue_type_script_lang_js","propsToPass","borderRadius","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","transitionTimingFunction","bubble","revealvue_type_template_id_01427236_render","pull","revealvue_type_script_lang_js","bodyOldStyle","overflowX","reveal","pushvue_type_template_id_1e67cf34_render","pushvue_type_script_lang_js","elasticvue_type_template_id_378b43ec_render","elasticvue_type_script_lang_js","elastic","fallDownvue_type_template_id_3802665a_render","fallDownvue_type_script_lang_js","fallDown","pushRotatevue_type_template_id_b055c8f2_render","pushRotatevue_type_script_lang_js","appOldStyle","transformOrigin","transformStyle","perspective","overflow","pushRotate","stackvue_type_template_id_9093ae04_render","stackvue_type_script_lang_js","scaleRotatevue_type_template_id_5c3b7fd8_render","scaleRotatevue_type_script_lang_js","scaleRotate","scaleDownvue_type_template_id_34b586d9_render","scaleDownvue_type_script_lang_js","scaleDown","Slide","Bubble","Reveal","Push","PushRotate","ScaleDown","ScaleRotate","Stack","FallDown","Elastic","regexBytes","regexNumber","regexArray","_pack","tight","_isForkEvent","_isProvider","pendingTotal","_delta8","_delta32","_pad","constants","typeOfFunction","boolTrue","bound","MasterSecret","HardenedBit","getUpperMask","getLowerMask","bytes32","base58check","sha2","getWordlist","parentFingerprint","chainCode","mnemonicOrPath","compressedPublicKey","IL","IR","ki","ek","_addPoint","fingerprint","_derive","seedArray","_fromSeed","extendedKey","NFKD","entropyBits","checksumBits","checksumMask","remainingBits","PromiseCapability","$$resolve","$$reject","allResults","customData","nameOrPromise","resolveAddresses","paramType","contract","signer","interface","encodeFunctionData","intrinsic","roValue","leftovers","buildPopulate","buildEstimate","signerOrProvider","addContractWait","parseLog","eventSignature","buildCall","collapseSimple","deployTransaction","_deployed","decodeFunctionResult","buildSend","txRequest","buildDefault","argsCopy","ErrorRunningEvent","contractInterface","prepareEvent","decodeError","Contract","isSigner","uniqueFilters","encodeFilterTopics","uniqueSignatures","callStatic","signatures","isInterface","_deployedPromise","deployed","isIndexed","runningEvent","_runningEvents","_normalizeRunningEvent","_wrappedEmits","_checkRunningEvents","wrappedEmit","_wrapEvent","getEmit","fromBlockOrBlockhash","_getRunningEvent","bytecode","bytecodeHex","encodeDeploy","unsignedTx","getDeployTransaction","getContract","compilerOutput","MISSING_ARGUMENT","evm","getInterface","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","getWeakData","onFreeze","ObjectUnsubscribedErrorImpl","ObjectUnsubscribedError","singleMatcher","multiMatcher","decodeComponents","customDecodeURIComponent","replaceMap","encodedURI","separatorIndex","minAssert","minUtils","CTR","_asyncMap","_iteratee","fnF","fnG","fnH","fnI","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","objectAssign","pSlice","functionsHaveNames","pToString","arrbuf","truncate","something","rawname","stackStartFunction","AssertionError","_deepEqual","memos","actualIndex","objEquiv","actualVisitedObjects","aIsArgs","bIsArgs","ka","kb","notDeepStrictEqual","expectedException","_tryBlock","_throws","shouldThrow","userProvidedMessage","isUnwantedException","isUnexpectedException","generatedMessage","captureStackTrace","fn_name","next_line","notEqual","deepEqual","deepStrictEqual","notDeepEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","use","eject","ZipOperator","ZipSubscriber","iterators","StaticArrayIterator","StaticIterator","ZipBufferIterator","stillUnsubscribed","notifyInactive","checkIterators","shouldComplete","_tryresultSelector","nextResult","webSocket","connectionStateSubject","incomingDataSubject","clearWebSocket","filterFromParam","JSONRPC_TEMPLATE","logFilters","blockFilters","pendingTransactionFilters","cursors","timeouts","nextFilterId","makeFilterId","setInitialCursorPosition","setFilterTimeout","deleteFilter","getLogFilterChanges","getBlockFilterChanges","getPendingTransactionFilterChanges","filterNotFoundError","paramFromFilter","cursorPosition","currentBlockHeight","getCurrentBlockHeight","emptyResult","highestBlock","newCursorPosition","getBlockHashByNumber","initialCursorPosition","intBlockHeightFromHexBlockHeight","hexBlockHeightFromIntBlockHeight","RE_ARGS","makeSymbol","generateFormatCacheKey","friendlyJSONstringify","isEmptyObject","escapeHtml","rawText","deselectCurrent","clipboardToIE11Formatting","defaultMessage","copyKey","reselectPrevious","createRange","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","clipboardData","clearData","setData","onCopy","selectNodeContents","execCommand","prompt","removeRange","ReflectOwnKeys","ProcessEmitWarning","NumberIsNaN","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","newListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","evlistener","unwrapListeners","spliceOne","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","wrapListener","getMaxListeners","prependOnceListener","originalListener","rawListeners","un$Slice","getBrowerCrypto","getSubtleCrypto","webkitSubtle","isBrowserCryptoAvailable","LinkDialog_css_1","ScanQRCode","Rand","_rand","getBytes","getByte","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","looseArrayify","zpad","searchPath","currentChild","matchingChild","uuidV4","doParallel","calculateSum","blockTrackerEvents","_blockResetDuration","_blockResetTimeout","_currentBlock","_onNewListener","_onRemoveListener","_resetCurrentBlock","_setupInternalEvents","_maybeStart","_getBlockTrackerEventCount","_maybeEnd","_cancelBlockResetTimeout","_setupBlockResetTimeout","hexInt","Spinner_css_1","stroke","_permanentCensorErrors","_censorErrors","LogLevels","_logLevel","_globalLogger","_checkNormalize","_normalizeError","LogLevel","ErrorCode","logLevel","_log","levels","INFO","WARNING","messageDetails","expectedCount","MISSING_NEW","censorship","permanent","globalLogger"],"mappings":"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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,sEAINY,IAAK,CACHC,IAAK,EACLb,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEAC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gW,EAAIqoF,YAAcvgE,EACpB,MAAM,IAAI1uB,MAAM,+BAAiC0uB,EAAO,OAAS9nB,EAAIqoF,aAGvEz+C,EAAI7+C,KAAKiV,EAAI8R,OAAOgW,GAAMpW,YAAY1d,EAAQ,KAAM8zB,EAAO,KAO/D,OAAO9zB,EAAOuS,OAAOqjC,GAGvB,SAASkW,EAAcF,EAAOtpD,GAC5B,OAAOmT,EAAK41D,OAAOkiG,EAAa3hH,EAAOtpD,IAGzC7O,EAAOC,QAAU,CACfsiL,YACAzI,eACAzhH,kB,kEC9QF,YAGAt2D,OAAOoI,eAAelK,EAAS,aAAc,CAAEsC,OAAO,IACtD,IAAIqkL,EAAmCr6K,EAAOtE,KAAK,CAE/C,GACA,IACA,IACA,EACA,EACA,EACA,EACA,GAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,IACA,GACA,IACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,EACA,EACA,EACA,IACA,GACA,EACA,GACA,EAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEA4+K,EAAqCt6K,EAAOtE,KAAK,CAEjD,GACA,IACA,EACA,GACA,EACA,EACA,EACA,EACA,GAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,IACA,GACA,IACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAC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AM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//C81T,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//C5tE,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/F2kF,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAG1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAG1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WA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,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhDC,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDC,EAAK,CACP,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAA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,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG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","file":"js/chunk-vendors.8d0ab9ba.js","sourcesContent":["'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar $TypeError = TypeError;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n var exec = this.exec;\n if (!isCallable(exec)) return un$Test(this, str);\n var result = call(exec, this, str);\n if (result !== null && !isObject(result)) {\n throw new $TypeError('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t var keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","export const version = \"networks/5.5.2\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nfunction isRenetworkable(value) {\n return (value && typeof (value.renetwork) === \"function\");\n}\nfunction ethDefaultProvider(network) {\n const func = function (providers, options) {\n if (options == null) {\n options = {};\n }\n const providerList = [];\n if (providers.InfuraProvider) {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n }\n catch (error) { }\n }\n if (providers.EtherscanProvider) {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n }\n catch (error) { }\n }\n if (providers.AlchemyProvider) {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n }\n catch (error) { }\n }\n if (providers.PocketProvider) {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [\"goerli\", \"ropsten\", \"rinkeby\"];\n try {\n const provider = new providers.PocketProvider(network);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providers.CloudflareProvider) {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n }\n catch (error) { }\n }\n if (providerList.length === 0) {\n return null;\n }\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n }\n else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n return providerList[0];\n };\n func.renetwork = function (network) {\n return ethDefaultProvider(network);\n };\n return func;\n}\nfunction etcDefaultProvider(url, network) {\n const func = function (providers, options) {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n return null;\n };\n func.renetwork = function (network) {\n return etcDefaultProvider(url, network);\n };\n return func;\n}\nconst homestead = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\nconst ropsten = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\nconst classicMordor = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n// See: https://chainlist.org\nconst networks = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n homestead: homestead,\n mainnet: homestead,\n morden: { chainId: 2, name: \"morden\" },\n ropsten: ropsten,\n testnet: ropsten,\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n xdai: { chainId: 100, name: \"xdai\" },\n matic: { chainId: 137, name: \"matic\" },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n optimism: { chainId: 10, name: \"optimism\" },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n};\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network) {\n // No network (null)\n if (network == null) {\n return null;\n }\n if (typeof (network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n if (typeof (network) === \"string\") {\n const standard = networks[network];\n if (standard == null) {\n return null;\n }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n const standard = networks[network.name];\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof (network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n }\n else {\n defaultProvider = standard._defaultProvider;\n }\n }\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n//# sourceMappingURL=index.js.map","// 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;","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","module.exports = require('events').EventEmitter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkAnalytics = void 0;\nclass WalletLinkAnalytics {\n sendEvent(_eventType, _eventProperties) {\n // no-op\n }\n}\nexports.WalletLinkAnalytics = WalletLinkAnalytics;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar 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\nvar 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\nvar TEST_KANJI = new RegExp('^' + kanji + '$')\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$')\nvar 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","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","/**\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = iterator;\n\nvar _isArrayLike = require('lodash/isArrayLike');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _getIterator = require('./getIterator');\n\nvar _getIterator2 = _interopRequireDefault(_getIterator);\n\nvar _keys = require('lodash/keys');\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? { value: coll[i], key: i } : null;\n };\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done) return null;\n i++;\n return { value: item.value, key: i };\n };\n}\n\nfunction createObjectIterator(obj) {\n var okeys = (0, _keys2.default)(obj);\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n return i < len ? { value: obj[key], key: key } : null;\n };\n}\n\nfunction iterator(coll) {\n if ((0, _isArrayLike2.default)(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = (0, _getIterator2.default)(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\nmodule.exports = exports['default'];","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/slicedToArray'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass')) :\n typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/slicedToArray', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.automationEvents = {}, global._slicedToArray, global._classCallCheck, global._createClass));\n})(this, (function (exports, _slicedToArray, _classCallCheck, _createClass) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);\n var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);\n var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);\n\n var createExtendedExponentialRampToValueAutomationEvent = function createExtendedExponentialRampToValueAutomationEvent(value, endTime, insertTime) {\n return {\n endTime: endTime,\n insertTime: insertTime,\n type: 'exponentialRampToValue',\n value: value\n };\n };\n\n var createExtendedLinearRampToValueAutomationEvent = function createExtendedLinearRampToValueAutomationEvent(value, endTime, insertTime) {\n return {\n endTime: endTime,\n insertTime: insertTime,\n type: 'linearRampToValue',\n value: value\n };\n };\n\n var createSetValueAutomationEvent = function createSetValueAutomationEvent(value, startTime) {\n return {\n startTime: startTime,\n type: 'setValue',\n value: value\n };\n };\n\n var createSetValueCurveAutomationEvent = function createSetValueCurveAutomationEvent(values, startTime, duration) {\n return {\n duration: duration,\n startTime: startTime,\n type: 'setValueCurve',\n values: values\n };\n };\n\n var getTargetValueAtTime = function getTargetValueAtTime(time, valueAtStartTime, _ref) {\n var startTime = _ref.startTime,\n target = _ref.target,\n timeConstant = _ref.timeConstant;\n return target + (valueAtStartTime - target) * Math.exp((startTime - time) / timeConstant);\n };\n\n var isExponentialRampToValueAutomationEvent = function isExponentialRampToValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'exponentialRampToValue';\n };\n\n var isLinearRampToValueAutomationEvent = function isLinearRampToValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'linearRampToValue';\n };\n\n var isAnyRampToValueAutomationEvent = function isAnyRampToValueAutomationEvent(automationEvent) {\n return isExponentialRampToValueAutomationEvent(automationEvent) || isLinearRampToValueAutomationEvent(automationEvent);\n };\n\n var isSetValueAutomationEvent = function isSetValueAutomationEvent(automationEvent) {\n return automationEvent.type === 'setValue';\n };\n\n var isSetValueCurveAutomationEvent = function isSetValueCurveAutomationEvent(automationEvent) {\n return automationEvent.type === 'setValueCurve';\n };\n\n var getValueOfAutomationEventAtIndexAtTime = function getValueOfAutomationEventAtIndexAtTime(automationEvents, index, time, defaultValue) {\n var automationEvent = automationEvents[index];\n return automationEvent === undefined ? defaultValue : isAnyRampToValueAutomationEvent(automationEvent) || isSetValueAutomationEvent(automationEvent) ? automationEvent.value : isSetValueCurveAutomationEvent(automationEvent) ? automationEvent.values[automationEvent.values.length - 1] : getTargetValueAtTime(time, getValueOfAutomationEventAtIndexAtTime(automationEvents, index - 1, automationEvent.startTime, defaultValue), automationEvent);\n };\n\n var getEndTimeAndValueOfPreviousAutomationEvent = function getEndTimeAndValueOfPreviousAutomationEvent(automationEvents, index, currentAutomationEvent, nextAutomationEvent, defaultValue) {\n return currentAutomationEvent === undefined ? [nextAutomationEvent.insertTime, defaultValue] : isAnyRampToValueAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.endTime, currentAutomationEvent.value] : isSetValueAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.startTime, currentAutomationEvent.value] : isSetValueCurveAutomationEvent(currentAutomationEvent) ? [currentAutomationEvent.startTime + currentAutomationEvent.duration, currentAutomationEvent.values[currentAutomationEvent.values.length - 1]] : [currentAutomationEvent.startTime, getValueOfAutomationEventAtIndexAtTime(automationEvents, index - 1, currentAutomationEvent.startTime, defaultValue)];\n };\n\n var isCancelAndHoldAutomationEvent = function isCancelAndHoldAutomationEvent(automationEvent) {\n return automationEvent.type === 'cancelAndHold';\n };\n\n var isCancelScheduledValuesAutomationEvent = function isCancelScheduledValuesAutomationEvent(automationEvent) {\n return automationEvent.type === 'cancelScheduledValues';\n };\n\n var getEventTime = function getEventTime(automationEvent) {\n if (isCancelAndHoldAutomationEvent(automationEvent) || isCancelScheduledValuesAutomationEvent(automationEvent)) {\n return automationEvent.cancelTime;\n }\n\n if (isExponentialRampToValueAutomationEvent(automationEvent) || isLinearRampToValueAutomationEvent(automationEvent)) {\n return automationEvent.endTime;\n }\n\n return automationEvent.startTime;\n };\n\n var getExponentialRampValueAtTime = function getExponentialRampValueAtTime(time, startTime, valueAtStartTime, _ref) {\n var endTime = _ref.endTime,\n value = _ref.value;\n\n if (valueAtStartTime === value) {\n return value;\n }\n\n if (0 < valueAtStartTime && 0 < value || valueAtStartTime < 0 && value < 0) {\n return valueAtStartTime * Math.pow(value / valueAtStartTime, (time - startTime) / (endTime - startTime));\n }\n\n return 0;\n };\n\n var getLinearRampValueAtTime = function getLinearRampValueAtTime(time, startTime, valueAtStartTime, _ref) {\n var endTime = _ref.endTime,\n value = _ref.value;\n return valueAtStartTime + (time - startTime) / (endTime - startTime) * (value - valueAtStartTime);\n };\n\n var interpolateValue = function interpolateValue(values, theoreticIndex) {\n var lowerIndex = Math.floor(theoreticIndex);\n var upperIndex = Math.ceil(theoreticIndex);\n\n if (lowerIndex === upperIndex) {\n return values[lowerIndex];\n }\n\n return (1 - (theoreticIndex - lowerIndex)) * values[lowerIndex] + (1 - (upperIndex - theoreticIndex)) * values[upperIndex];\n };\n\n var getValueCurveValueAtTime = function getValueCurveValueAtTime(time, _ref) {\n var duration = _ref.duration,\n startTime = _ref.startTime,\n values = _ref.values;\n var theoreticIndex = (time - startTime) / duration * (values.length - 1);\n return interpolateValue(values, theoreticIndex);\n };\n\n var isSetTargetAutomationEvent = function isSetTargetAutomationEvent(automationEvent) {\n return automationEvent.type === 'setTarget';\n };\n\n var AutomationEventList = /*#__PURE__*/function (_Symbol$iterator) {\n function AutomationEventList(defaultValue) {\n _classCallCheck__default[\"default\"](this, AutomationEventList);\n\n this._automationEvents = [];\n this._currenTime = 0;\n this._defaultValue = defaultValue;\n }\n\n _createClass__default[\"default\"](AutomationEventList, [{\n key: _Symbol$iterator,\n value: function value() {\n return this._automationEvents[Symbol.iterator]();\n }\n }, {\n key: \"add\",\n value: function add(automationEvent) {\n var eventTime = getEventTime(automationEvent);\n\n if (isCancelAndHoldAutomationEvent(automationEvent) || isCancelScheduledValuesAutomationEvent(automationEvent)) {\n var index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n if (isCancelScheduledValuesAutomationEvent(automationEvent) && isSetValueCurveAutomationEvent(currentAutomationEvent)) {\n return currentAutomationEvent.startTime + currentAutomationEvent.duration >= eventTime;\n }\n\n return getEventTime(currentAutomationEvent) >= eventTime;\n });\n\n var removedAutomationEvent = this._automationEvents[index];\n\n if (index !== -1) {\n this._automationEvents = this._automationEvents.slice(0, index);\n }\n\n if (isCancelAndHoldAutomationEvent(automationEvent)) {\n var lastAutomationEvent = this._automationEvents[this._automationEvents.length - 1];\n\n if (removedAutomationEvent !== undefined && isAnyRampToValueAutomationEvent(removedAutomationEvent)) {\n if (isSetTargetAutomationEvent(lastAutomationEvent)) {\n throw new Error('The internal list is malformed.');\n }\n\n var startTime = isSetValueCurveAutomationEvent(lastAutomationEvent) ? lastAutomationEvent.startTime + lastAutomationEvent.duration : getEventTime(lastAutomationEvent);\n var startValue = isSetValueCurveAutomationEvent(lastAutomationEvent) ? lastAutomationEvent.values[lastAutomationEvent.values.length - 1] : lastAutomationEvent.value;\n var value = isExponentialRampToValueAutomationEvent(removedAutomationEvent) ? getExponentialRampValueAtTime(eventTime, startTime, startValue, removedAutomationEvent) : getLinearRampValueAtTime(eventTime, startTime, startValue, removedAutomationEvent);\n var truncatedAutomationEvent = isExponentialRampToValueAutomationEvent(removedAutomationEvent) ? createExtendedExponentialRampToValueAutomationEvent(value, eventTime, this._currenTime) : createExtendedLinearRampToValueAutomationEvent(value, eventTime, this._currenTime);\n\n this._automationEvents.push(truncatedAutomationEvent);\n }\n\n if (lastAutomationEvent !== undefined && isSetTargetAutomationEvent(lastAutomationEvent)) {\n this._automationEvents.push(createSetValueAutomationEvent(this.getValue(eventTime), eventTime));\n }\n\n if (lastAutomationEvent !== undefined && isSetValueCurveAutomationEvent(lastAutomationEvent) && lastAutomationEvent.startTime + lastAutomationEvent.duration > eventTime) {\n this._automationEvents[this._automationEvents.length - 1] = createSetValueCurveAutomationEvent(new Float32Array([6, 7]), lastAutomationEvent.startTime, eventTime - lastAutomationEvent.startTime);\n }\n }\n } else {\n var _index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n return getEventTime(currentAutomationEvent) > eventTime;\n });\n\n var previousAutomationEvent = _index === -1 ? this._automationEvents[this._automationEvents.length - 1] : this._automationEvents[_index - 1];\n\n if (previousAutomationEvent !== undefined && isSetValueCurveAutomationEvent(previousAutomationEvent) && getEventTime(previousAutomationEvent) + previousAutomationEvent.duration > eventTime) {\n return false;\n }\n\n var persistentAutomationEvent = isExponentialRampToValueAutomationEvent(automationEvent) ? createExtendedExponentialRampToValueAutomationEvent(automationEvent.value, automationEvent.endTime, this._currenTime) : isLinearRampToValueAutomationEvent(automationEvent) ? createExtendedLinearRampToValueAutomationEvent(automationEvent.value, eventTime, this._currenTime) : automationEvent;\n\n if (_index === -1) {\n this._automationEvents.push(persistentAutomationEvent);\n } else {\n if (isSetValueCurveAutomationEvent(automationEvent) && eventTime + automationEvent.duration > getEventTime(this._automationEvents[_index])) {\n return false;\n }\n\n this._automationEvents.splice(_index, 0, persistentAutomationEvent);\n }\n }\n\n return true;\n }\n }, {\n key: \"flush\",\n value: function flush(time) {\n var index = this._automationEvents.findIndex(function (currentAutomationEvent) {\n return getEventTime(currentAutomationEvent) > time;\n });\n\n if (index > 1) {\n var remainingAutomationEvents = this._automationEvents.slice(index - 1);\n\n var firstRemainingAutomationEvent = remainingAutomationEvents[0];\n\n if (isSetTargetAutomationEvent(firstRemainingAutomationEvent)) {\n remainingAutomationEvents.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents, index - 2, firstRemainingAutomationEvent.startTime, this._defaultValue), firstRemainingAutomationEvent.startTime));\n }\n\n this._automationEvents = remainingAutomationEvents;\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue(time) {\n if (this._automationEvents.length === 0) {\n return this._defaultValue;\n }\n\n var indexOfNextEvent = this._automationEvents.findIndex(function (automationEvent) {\n return getEventTime(automationEvent) > time;\n });\n\n var nextAutomationEvent = this._automationEvents[indexOfNextEvent];\n var indexOfCurrentEvent = (indexOfNextEvent === -1 ? this._automationEvents.length : indexOfNextEvent) - 1;\n var currentAutomationEvent = this._automationEvents[indexOfCurrentEvent];\n\n if (currentAutomationEvent !== undefined && isSetTargetAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent) || nextAutomationEvent.insertTime > time)) {\n return getTargetValueAtTime(time, getValueOfAutomationEventAtIndexAtTime(this._automationEvents, indexOfCurrentEvent - 1, currentAutomationEvent.startTime, this._defaultValue), currentAutomationEvent);\n }\n\n if (currentAutomationEvent !== undefined && isSetValueAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent))) {\n return currentAutomationEvent.value;\n }\n\n if (currentAutomationEvent !== undefined && isSetValueCurveAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent) || currentAutomationEvent.startTime + currentAutomationEvent.duration > time)) {\n if (time < currentAutomationEvent.startTime + currentAutomationEvent.duration) {\n return getValueCurveValueAtTime(time, currentAutomationEvent);\n }\n\n return currentAutomationEvent.values[currentAutomationEvent.values.length - 1];\n }\n\n if (currentAutomationEvent !== undefined && isAnyRampToValueAutomationEvent(currentAutomationEvent) && (nextAutomationEvent === undefined || !isAnyRampToValueAutomationEvent(nextAutomationEvent))) {\n return currentAutomationEvent.value;\n }\n\n if (nextAutomationEvent !== undefined && isExponentialRampToValueAutomationEvent(nextAutomationEvent)) {\n var _getEndTimeAndValueOf = getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents, indexOfCurrentEvent, currentAutomationEvent, nextAutomationEvent, this._defaultValue),\n _getEndTimeAndValueOf2 = _slicedToArray__default[\"default\"](_getEndTimeAndValueOf, 2),\n startTime = _getEndTimeAndValueOf2[0],\n value = _getEndTimeAndValueOf2[1];\n\n return getExponentialRampValueAtTime(time, startTime, value, nextAutomationEvent);\n }\n\n if (nextAutomationEvent !== undefined && isLinearRampToValueAutomationEvent(nextAutomationEvent)) {\n var _getEndTimeAndValueOf3 = getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents, indexOfCurrentEvent, currentAutomationEvent, nextAutomationEvent, this._defaultValue),\n _getEndTimeAndValueOf4 = _slicedToArray__default[\"default\"](_getEndTimeAndValueOf3, 2),\n _startTime = _getEndTimeAndValueOf4[0],\n _value = _getEndTimeAndValueOf4[1];\n\n return getLinearRampValueAtTime(time, _startTime, _value, nextAutomationEvent);\n }\n\n return this._defaultValue;\n }\n }]);\n\n return AutomationEventList;\n }(Symbol.iterator);\n\n var createCancelAndHoldAutomationEvent = function createCancelAndHoldAutomationEvent(cancelTime) {\n return {\n cancelTime: cancelTime,\n type: 'cancelAndHold'\n };\n };\n\n var createCancelScheduledValuesAutomationEvent = function createCancelScheduledValuesAutomationEvent(cancelTime) {\n return {\n cancelTime: cancelTime,\n type: 'cancelScheduledValues'\n };\n };\n\n var createExponentialRampToValueAutomationEvent = function createExponentialRampToValueAutomationEvent(value, endTime) {\n return {\n endTime: endTime,\n type: 'exponentialRampToValue',\n value: value\n };\n };\n\n var createLinearRampToValueAutomationEvent = function createLinearRampToValueAutomationEvent(value, endTime) {\n return {\n endTime: endTime,\n type: 'linearRampToValue',\n value: value\n };\n };\n\n var createSetTargetAutomationEvent = function createSetTargetAutomationEvent(target, startTime, timeConstant) {\n return {\n startTime: startTime,\n target: target,\n timeConstant: timeConstant,\n type: 'setTarget'\n };\n };\n\n exports.AutomationEventList = AutomationEventList;\n exports.createCancelAndHoldAutomationEvent = createCancelAndHoldAutomationEvent;\n exports.createCancelScheduledValuesAutomationEvent = createCancelScheduledValuesAutomationEvent;\n exports.createExponentialRampToValueAutomationEvent = createExponentialRampToValueAutomationEvent;\n exports.createLinearRampToValueAutomationEvent = createLinearRampToValueAutomationEvent;\n exports.createSetTargetAutomationEvent = createSetTargetAutomationEvent;\n exports.createSetValueAutomationEvent = createSetValueAutomationEvent;\n exports.createSetValueCurveAutomationEvent = createSetValueCurveAutomationEvent;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeError = exports.isValidCode = exports.getMessageFromCode = exports.JSON_RPC_SERVER_ERROR_MESSAGE = void 0;\nconst error_constants_1 = require(\"./error-constants\");\nconst classes_1 = require(\"./classes\");\nconst FALLBACK_ERROR_CODE = error_constants_1.errorCodes.rpc.internal;\nconst FALLBACK_MESSAGE = 'Unspecified error message. This is a bug, please report it.';\nconst FALLBACK_ERROR = {\n code: FALLBACK_ERROR_CODE,\n message: getMessageFromCode(FALLBACK_ERROR_CODE),\n};\nexports.JSON_RPC_SERVER_ERROR_MESSAGE = 'Unspecified server error.';\n/**\n * Gets the message for a given code, or a fallback message if the code has\n * no corresponding message.\n */\nfunction getMessageFromCode(code, fallbackMessage = FALLBACK_MESSAGE) {\n if (Number.isInteger(code)) {\n const codeString = code.toString();\n if (hasKey(error_constants_1.errorValues, codeString)) {\n return error_constants_1.errorValues[codeString].message;\n }\n if (isJsonRpcServerError(code)) {\n return exports.JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n }\n return fallbackMessage;\n}\nexports.getMessageFromCode = getMessageFromCode;\n/**\n * Returns whether the given code is valid.\n * A code is only valid if it has a message.\n */\nfunction isValidCode(code) {\n if (!Number.isInteger(code)) {\n return false;\n }\n const codeString = code.toString();\n if (error_constants_1.errorValues[codeString]) {\n return true;\n }\n if (isJsonRpcServerError(code)) {\n return true;\n }\n return false;\n}\nexports.isValidCode = isValidCode;\n/**\n * Serializes the given error to an Ethereum JSON RPC-compatible error object.\n * Merely copies the given error's values if it is already compatible.\n * If the given error is not fully compatible, it will be preserved on the\n * returned object's data.originalError property.\n */\nfunction serializeError(error, { fallbackError = FALLBACK_ERROR, shouldIncludeStack = false, } = {}) {\n var _a, _b;\n if (!fallbackError ||\n !Number.isInteger(fallbackError.code) ||\n typeof fallbackError.message !== 'string') {\n throw new Error('Must provide fallback error with integer number code and string message.');\n }\n if (error instanceof classes_1.EthereumRpcError) {\n return error.serialize();\n }\n const serialized = {};\n if (error &&\n typeof error === 'object' &&\n !Array.isArray(error) &&\n hasKey(error, 'code') &&\n isValidCode(error.code)) {\n const _error = error;\n serialized.code = _error.code;\n if (_error.message && typeof _error.message === 'string') {\n serialized.message = _error.message;\n if (hasKey(_error, 'data')) {\n serialized.data = _error.data;\n }\n }\n else {\n serialized.message = getMessageFromCode(serialized.code);\n serialized.data = { originalError: assignOriginalError(error) };\n }\n }\n else {\n serialized.code = fallbackError.code;\n const message = (_a = error) === null || _a === void 0 ? void 0 : _a.message;\n serialized.message = (message && typeof message === 'string'\n ? message\n : fallbackError.message);\n serialized.data = { originalError: assignOriginalError(error) };\n }\n const stack = (_b = error) === null || _b === void 0 ? void 0 : _b.stack;\n if (shouldIncludeStack && error && stack && typeof stack === 'string') {\n serialized.stack = stack;\n }\n return serialized;\n}\nexports.serializeError = serializeError;\n// Internal\nfunction isJsonRpcServerError(code) {\n return code >= -32099 && code <= -32000;\n}\nfunction assignOriginalError(error) {\n if (error && typeof error === 'object' && !Array.isArray(error)) {\n return Object.assign({}, error);\n }\n return error;\n}\nfunction hasKey(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQTREO0FBQzVELHVDQUF5RTtBQUV6RSxNQUFNLG1CQUFtQixHQUFHLDRCQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUNwRCxNQUFNLGdCQUFnQixHQUFHLDZEQUE2RCxDQUFDO0FBQ3ZGLE1BQU0sY0FBYyxHQUErQjtJQUNqRCxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztDQUNqRCxDQUFDO0FBRVcsUUFBQSw2QkFBNkIsR0FBRywyQkFBMkIsQ0FBQztBQUl6RTs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsSUFBWSxFQUNaLGtCQUEwQixnQkFBZ0I7SUFFMUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVuQyxJQUFJLE1BQU0sQ0FBQyw2QkFBVyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ25DLE9BQU8sNkJBQVcsQ0FBQyxVQUEyQixDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QixPQUFPLHFDQUE2QixDQUFDO1NBQ3RDO0tBQ0Y7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBZkQsZ0RBZUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBWTtJQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMzQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLElBQUksNkJBQVcsQ0FBQyxVQUEy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","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}","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","module.exports = require('./lib/_stream_duplex.js');\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}","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EthereumChain = void 0;\n// TODO: deprecate this class in February 2022\nvar EthereumChain;\n(function (EthereumChain) {\n // mainnets\n EthereumChain[EthereumChain[\"ETHEREUM_MAINNET\"] = 1] = \"ETHEREUM_MAINNET\";\n EthereumChain[EthereumChain[\"OPTIMISM_MAINNET\"] = 10] = \"OPTIMISM_MAINNET\";\n EthereumChain[EthereumChain[\"POLYGON_MAINNET\"] = 137] = \"POLYGON_MAINNET\";\n EthereumChain[EthereumChain[\"ETHEREUM_CLASSIC_MAINNET\"] = 61] = \"ETHEREUM_CLASSIC_MAINNET\";\n EthereumChain[EthereumChain[\"BSC_MAINNET\"] = 56] = \"BSC_MAINNET\";\n EthereumChain[EthereumChain[\"FANTOM_MAINNET\"] = 250] = \"FANTOM_MAINNET\";\n EthereumChain[EthereumChain[\"ARBITRUM_MAINNET\"] = 42161] = \"ARBITRUM_MAINNET\";\n EthereumChain[EthereumChain[\"XDAI_MAINNET\"] = 100] = \"XDAI_MAINNET\";\n EthereumChain[EthereumChain[\"AVALANCHE_MAINNET\"] = 43114] = \"AVALANCHE_MAINNET\";\n // testnets\n EthereumChain[EthereumChain[\"ROPSTEN\"] = 3] = \"ROPSTEN\";\n EthereumChain[EthereumChain[\"RINKEBY\"] = 4] = \"RINKEBY\";\n EthereumChain[EthereumChain[\"GOERLI\"] = 5] = \"GOERLI\";\n EthereumChain[EthereumChain[\"KOVAN\"] = 42] = \"KOVAN\";\n EthereumChain[EthereumChain[\"OPTIMISM_KOVAN\"] = 69] = \"OPTIMISM_KOVAN\";\n EthereumChain[EthereumChain[\"POLYGON_TESTNET\"] = 80001] = \"POLYGON_TESTNET\";\n EthereumChain[EthereumChain[\"BSC_TESTNET\"] = 97] = \"BSC_TESTNET\";\n EthereumChain[EthereumChain[\"FANTOM_TESTNET\"] = 4002] = \"FANTOM_TESTNET\";\n EthereumChain[EthereumChain[\"ARBITRUM_TESTNET\"] = 421611] = \"ARBITRUM_TESTNET\";\n EthereumChain[EthereumChain[\"AVALANCHE_FUJI\"] = 43113] = \"AVALANCHE_FUJI\";\n})(EthereumChain = exports.EthereumChain || (exports.EthereumChain = {}));\n(function (EthereumChain) {\n function rpcUrl(thiz) {\n switch (thiz) {\n case EthereumChain.ETHEREUM_MAINNET: return \"https://mainnet-infura.wallet.coinbase.com\";\n case EthereumChain.ROPSTEN: return \"https://ropsten-infura.wallet.coinbase.com\";\n case EthereumChain.RINKEBY: return \"https://rinkeby-infura.wallet.coinbase.com\";\n case EthereumChain.KOVAN: return \"https://kovan-infura.wallet.coinbase.com\";\n case EthereumChain.GOERLI: return \"https://goerli-node.wallet.coinbase.com\";\n case EthereumChain.OPTIMISM_KOVAN: return \"https://optimism-node.wallet.coinbase.com\";\n case EthereumChain.OPTIMISM_MAINNET: return \"https://optimism-mainnet.wallet.coinbase.com\";\n case EthereumChain.POLYGON_MAINNET: return \"https://polygon-mainnet-infura.wallet.coinbase.com\";\n case EthereumChain.POLYGON_TESTNET: return \"https://polygon-mumbai-infura.wallet.coinbase.com\";\n case EthereumChain.BSC_MAINNET: return \"https://bsc-dataseed.binance.org\";\n case EthereumChain.BSC_TESTNET: return \"https://data-seed-prebsc-1-s1.binance.org:8545\";\n case EthereumChain.FANTOM_MAINNET: return \"https://rpcapi.fantom.network\";\n case EthereumChain.FANTOM_TESTNET: return \"https://rpc.testnet.fantom.network\";\n case EthereumChain.ARBITRUM_MAINNET: return \"https://l2-mainnet.wallet.coinbase.com?targetName=arbitrum\";\n case EthereumChain.ARBITRUM_TESTNET: return \"https://rinkeby.arbitrum.io/rpc\";\n case EthereumChain.XDAI_MAINNET: return \"https://rpc.xdaichain.com\";\n case EthereumChain.AVALANCHE_MAINNET: return \"https://api.avax.network/ext/bc/C/rpc\";\n case EthereumChain.AVALANCHE_FUJI: return \"https://api.avax-test.network/ext/bc/C/rpc\";\n default: return undefined;\n }\n }\n EthereumChain.rpcUrl = rpcUrl;\n function fromChainId(chainId) {\n switch (Number(chainId)) {\n // mainnets\n case EthereumChain.ETHEREUM_MAINNET.valueOf(): return EthereumChain.ETHEREUM_MAINNET;\n case EthereumChain.OPTIMISM_MAINNET.valueOf(): return EthereumChain.OPTIMISM_MAINNET;\n case EthereumChain.POLYGON_MAINNET.valueOf(): return EthereumChain.POLYGON_MAINNET;\n case EthereumChain.ETHEREUM_CLASSIC_MAINNET.valueOf(): return EthereumChain.ETHEREUM_CLASSIC_MAINNET;\n case EthereumChain.BSC_MAINNET.valueOf(): return EthereumChain.BSC_MAINNET;\n case EthereumChain.FANTOM_MAINNET.valueOf(): return EthereumChain.FANTOM_MAINNET;\n case EthereumChain.ARBITRUM_MAINNET.valueOf(): return EthereumChain.ARBITRUM_MAINNET;\n case EthereumChain.AVALANCHE_MAINNET.valueOf(): return EthereumChain.AVALANCHE_MAINNET;\n case EthereumChain.XDAI_MAINNET.valueOf(): return EthereumChain.XDAI_MAINNET;\n // testnets\n case EthereumChain.ROPSTEN.valueOf(): return EthereumChain.ROPSTEN;\n case EthereumChain.RINKEBY.valueOf(): return EthereumChain.RINKEBY;\n case EthereumChain.GOERLI.valueOf(): return EthereumChain.GOERLI;\n case EthereumChain.KOVAN.valueOf(): return EthereumChain.KOVAN;\n case EthereumChain.OPTIMISM_KOVAN.valueOf(): return EthereumChain.OPTIMISM_KOVAN;\n case EthereumChain.POLYGON_TESTNET.valueOf(): return EthereumChain.POLYGON_TESTNET;\n case EthereumChain.BSC_TESTNET.valueOf(): return EthereumChain.BSC_TESTNET;\n case EthereumChain.FANTOM_TESTNET.valueOf(): return EthereumChain.FANTOM_TESTNET;\n case EthereumChain.ARBITRUM_TESTNET.valueOf(): return EthereumChain.ARBITRUM_TESTNET;\n case EthereumChain.AVALANCHE_FUJI.valueOf(): return EthereumChain.AVALANCHE_FUJI;\n default: return undefined;\n }\n }\n EthereumChain.fromChainId = fromChainId;\n})(EthereumChain = exports.EthereumChain || (exports.EthereumChain = {}));\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JSONRPCMethod = void 0;\nvar JSONRPCMethod;\n(function (JSONRPCMethod) {\n // synchronous or asynchronous\n JSONRPCMethod[\"eth_accounts\"] = \"eth_accounts\";\n JSONRPCMethod[\"eth_coinbase\"] = \"eth_coinbase\";\n JSONRPCMethod[\"net_version\"] = \"net_version\";\n JSONRPCMethod[\"eth_chainId\"] = \"eth_chainId\";\n JSONRPCMethod[\"eth_uninstallFilter\"] = \"eth_uninstallFilter\";\n // asynchronous only\n JSONRPCMethod[\"eth_requestAccounts\"] = \"eth_requestAccounts\";\n JSONRPCMethod[\"eth_sign\"] = \"eth_sign\";\n JSONRPCMethod[\"eth_ecRecover\"] = \"eth_ecRecover\";\n JSONRPCMethod[\"personal_sign\"] = \"personal_sign\";\n JSONRPCMethod[\"personal_ecRecover\"] = \"personal_ecRecover\";\n JSONRPCMethod[\"eth_signTransaction\"] = \"eth_signTransaction\";\n JSONRPCMethod[\"eth_sendRawTransaction\"] = \"eth_sendRawTransaction\";\n JSONRPCMethod[\"eth_sendTransaction\"] = \"eth_sendTransaction\";\n JSONRPCMethod[\"eth_signTypedData_v1\"] = \"eth_signTypedData_v1\";\n JSONRPCMethod[\"eth_signTypedData_v2\"] = \"eth_signTypedData_v2\";\n JSONRPCMethod[\"eth_signTypedData_v3\"] = \"eth_signTypedData_v3\";\n JSONRPCMethod[\"eth_signTypedData_v4\"] = \"eth_signTypedData_v4\";\n JSONRPCMethod[\"eth_signTypedData\"] = \"eth_signTypedData\";\n JSONRPCMethod[\"walletlink_arbitrary\"] = \"walletlink_arbitrary\";\n JSONRPCMethod[\"wallet_addEthereumChain\"] = \"wallet_addEthereumChain\";\n JSONRPCMethod[\"wallet_switchEthereumChain\"] = \"wallet_switchEthereumChain\";\n // asynchronous pub/sub\n JSONRPCMethod[\"eth_subscribe\"] = \"eth_subscribe\";\n JSONRPCMethod[\"eth_unsubscribe\"] = \"eth_unsubscribe\";\n // asynchronous filter methods\n JSONRPCMethod[\"eth_newFilter\"] = \"eth_newFilter\";\n JSONRPCMethod[\"eth_newBlockFilter\"] = \"eth_newBlockFilter\";\n JSONRPCMethod[\"eth_newPendingTransactionFilter\"] = \"eth_newPendingTransactionFilter\";\n JSONRPCMethod[\"eth_getFilterChanges\"] = \"eth_getFilterChanges\";\n JSONRPCMethod[\"eth_getFilterLogs\"] = \"eth_getFilterLogs\";\n})(JSONRPCMethod = exports.JSONRPCMethod || (exports.JSONRPCMethod = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `\n\n\n\n\n\n\n`;\n","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { nameprep, toUtf8Bytes } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nconst Partition = new RegExp(\"^((.*)\\\\.)?([^.]+)$\");\nexport function isValidName(name) {\n try {\n const comps = name.split(\".\");\n for (let i = 0; i < comps.length; i++) {\n if (nameprep(comps[i]).length === 0) {\n throw new Error(\"empty\");\n }\n }\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let current = name;\n let result = Zeros;\n while (current.length) {\n const partition = current.match(Partition);\n if (partition == null || partition[2] === \"\") {\n logger.throwArgumentError(\"invalid ENS address; missing component\", \"name\", name);\n }\n const label = toUtf8Bytes(nameprep(partition[3]));\n result = keccak256(concat([result, keccak256(label)]));\n current = partition[2] || \"\";\n }\n return hexlify(result);\n}\n//# sourceMappingURL=namehash.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// 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};","\"use strict\";\nexport { randomBytes } from \"./random\";\nexport { shuffled } from \"./shuffle\";\n//# sourceMappingURL=index.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","\"use strict\";\n// Copyright (c) 2018-2021 WalletLink.org \n// Copyright (c) 2018-2021 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjYzNSAyLjExN2EzLjg4OSAzLjg4OSAwIDAgMC01LjUyMSAwTDYuODkgNS4zMzVBMy44OTQgMy44OTQgMCAwIDAgNS44IDguNzM5Yy4wODMuNTA2LjI2OCAxLjAxMS41NTMgMS40NjYuMTUxLjI1My4zMzYuNDcyLjUzNy42OTFsLjYyMS42MjQgMS4xNDEtMS4xNDYtLjYyLS42MjRhMi4xMDUgMi4xMDUgMCAwIDEtLjQ4Ny0uNzQxIDIuMzQgMi4zNCAwIDAgMSAuNTAzLTIuNTFsMy4yMDYtMy4yMmEyLjI5MyAyLjI5MyAwIDAgMSAzLjIzOSAwYy44OS44OTQuODkgMi4zNDMgMCAzLjI1M2wtMS41MjcgMS41MzNjLjIzNC42NC4zMzUgMS4zMzEuMzAyIDIuMDA1bDIuMzgzLTIuMzkyYzEuNTEtMS41MzQgMS40OTMtNC4wMjgtLjAxNy01LjU2MVoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBkPSJNMTEuMjcxIDcuNzQ1YTMuMTMgMy4xMyAwIDAgMC0uNTU0LS42OWwtLjYyLS42MjQtMS4xNDIgMS4xNDYuNjIxLjYyM2MuMjE4LjIyLjM4Ni40ODkuNDg3Ljc1OC4zMzUuODI2LjE2NyAxLjgyLS41MDQgMi40OTRsLTMuMjA1IDMuMjE5YTIuMjkzIDIuMjkzIDAgMCAxLTMuMjQgMCAyLjMxNiAyLjMxNiAwIDAgMSAwLTMuMjUybDEuNTI4LTEuNTM0YTQuODE1IDQuODE1IDAgMCAxLS4yODUtMi4wMDVsLTIuMzgzIDIuMzkzYTMuOTI3IDMuOTI3IDAgMCAwIDAgNS41NDQgMy45MDkgMy45MDkgMCAwIDAgNS41MzggMGwzLjIwNS0zLjIxOWEzLjk1OCAzLjk1OCAwIDAgMCAxLjA5MS0zLjQwNCA0LjIxMSA0LjIxMSAwIDAgMC0uNTM3LTEuNDQ5WiIgZmlsbD0iIzE2NTJGMCIvPjwvc3ZnPg==`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.baToJSON = exports.addHexPrefix = exports.toUnsigned = exports.fromSigned = exports.bufferToHex = exports.bufferToInt = exports.toBuffer = exports.stripZeros = exports.unpad = exports.setLengthRight = exports.setLength = exports.setLengthLeft = exports.zeros = void 0;\nvar ethjsUtil = require('ethjs-util');\nvar BN = require(\"bn.js\");\n/**\n * Returns a buffer filled with 0s.\n * @param bytes the number of bytes the buffer should be\n */\nexports.zeros = function (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0);\n};\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer|Array)\n * @param length the number of bytes the output should be\n * @param right whether to start padding form the left or right\n * @return (Buffer|Array)\n */\nexports.setLengthLeft = function (msg, length, right) {\n if (right === void 0) { right = false; }\n var buf = exports.zeros(length);\n msg = exports.toBuffer(msg);\n if (right) {\n if (msg.length < length) {\n msg.copy(buf);\n return buf;\n }\n return msg.slice(0, length);\n }\n else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length);\n return buf;\n }\n return msg.slice(-length);\n }\n};\nexports.setLength = exports.setLengthLeft;\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer|Array)\n * @param length the number of bytes the output should be\n * @return (Buffer|Array)\n */\nexports.setLengthRight = function (msg, length) {\n return exports.setLength(msg, length, true);\n};\n/**\n * Trims leading zeros from a `Buffer` or an `Array`.\n * @param a (Buffer|Array|String)\n * @return (Buffer|Array|String)\n */\nexports.unpad = function (a) {\n a = ethjsUtil.stripHexPrefix(a);\n var first = a[0];\n while (a.length > 0 && first.toString() === '0') {\n a = a.slice(1);\n first = a[0];\n }\n return a;\n};\nexports.stripZeros = exports.unpad;\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.\n * @param v the value\n */\nexports.toBuffer = function (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v);\n }\n else if (typeof v === 'string') {\n if (ethjsUtil.isHexString(v)) {\n v = Buffer.from(ethjsUtil.padToEven(ethjsUtil.stripHexPrefix(v)), 'hex');\n }\n else {\n throw new Error(\"Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: \" + v);\n }\n }\n else if (typeof v === 'number') {\n v = ethjsUtil.intToBuffer(v);\n }\n else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0);\n }\n else if (BN.isBN(v)) {\n v = v.toArrayLike(Buffer);\n }\n else if (v.toArray) {\n // converts a BN to a Buffer\n v = Buffer.from(v.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return v;\n};\n/**\n * Converts a `Buffer` to a `Number`.\n * @param buf `Buffer` object to convert\n * @throws If the input number exceeds 53 bits.\n */\nexports.bufferToInt = function (buf) {\n return new BN(exports.toBuffer(buf)).toNumber();\n};\n/**\n * Converts a `Buffer` into a `0x`-prefixed hex `String`.\n * @param buf `Buffer` object to convert\n */\nexports.bufferToHex = function (buf) {\n buf = exports.toBuffer(buf);\n return '0x' + buf.toString('hex');\n};\n/**\n * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes 256-bit numbers.\n * @param num Signed integer value\n */\nexports.fromSigned = function (num) {\n return new BN(num).fromTwos(256);\n};\n/**\n * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes 256-bit numbers.\n * @param num\n */\nexports.toUnsigned = function (num) {\n return Buffer.from(num.toTwos(256).toArray());\n};\n/**\n * Adds \"0x\" to a given `String` if it does not already start with \"0x\".\n */\nexports.addHexPrefix = function (str) {\n if (typeof str !== 'string') {\n return str;\n }\n return ethjsUtil.isHexPrefixed(str) ? str : '0x' + str;\n};\n/**\n * Converts a `Buffer` or `Array` to JSON.\n * @param ba (Buffer|Array)\n * @return (Array|String|null)\n */\nexports.baToJSON = function (ba) {\n if (Buffer.isBuffer(ba)) {\n return \"0x\" + ba.toString('hex');\n }\n else if (ba instanceof Array) {\n var array = [];\n for (var i = 0; i < ba.length; i++) {\n array.push(exports.baToJSON(ba[i]));\n }\n return array;\n }\n};\n//# sourceMappingURL=bytes.js.map","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","\"use strict\";\nimport { arrayify, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BigNumber, isBigNumberish } from \"./bignumber\";\nconst _constructorGuard = {};\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\nfunction throwFault(message, fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value !== undefined) {\n params.value = value;\n }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) {\n zeros += zeros;\n}\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals) {\n if (typeof (decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n }\n catch (e) { }\n }\n if (typeof (decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\nexport function formatFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n const negative = value.lt(Zero);\n if (negative) {\n value = value.mul(NegativeOne);\n }\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) {\n fraction = \"0\" + fraction;\n }\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n }\n else {\n value = whole + \".\" + fraction;\n }\n if (negative) {\n value = \"-\" + value;\n }\n return value;\n}\nexport function parseFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n if (typeof (value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) {\n value = value.substring(1);\n }\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n let whole = comps[0], fraction = comps[1];\n if (!whole) {\n whole = \"0\";\n }\n if (!fraction) {\n fraction = \"0\";\n }\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") {\n fraction = \"0\";\n }\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) {\n fraction += \"0\";\n }\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n if (negative) {\n wei = wei.mul(NegativeOne);\n }\n return wei;\n}\nexport class FixedFormat {\n constructor(constructorGuard, signed, width, decimals) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n this.name = (signed ? \"\" : \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n this._multiplier = getMultiplier(decimals);\n Object.freeze(this);\n }\n static from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n if (typeof (value) === \"number\") {\n value = `fixed128x${value}`;\n }\n let signed = true;\n let width = 128;\n let decimals = 18;\n if (typeof (value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n }\n else if (value === \"ufixed\") {\n signed = false;\n }\n else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) {\n logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n }\n else if (value) {\n const check = (key, type, defaultValue) => {\n if (value[key] == null) {\n return defaultValue;\n }\n if (typeof (value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n return value[key];\n };\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\nexport class FixedNumber {\n constructor(constructorGuard, hex, value, format) {\n logger.checkNew(new.target, FixedNumber);\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.format = format;\n this._hex = hex;\n this._value = value;\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n _checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n addUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n subUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n mulUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n divUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n floor() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n ceiling() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n // @TODO: Support other rounding algorithms\n round(decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n if (comps[1].length <= decimals) {\n return this;\n }\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n isZero() {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n isNegative() {\n return (this._value[0] === \"-\");\n }\n toString() { return this._value; }\n toHexString(width) {\n if (width == null) {\n return this._hex;\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid byte width\", \"width\", width);\n }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n toUnsafeFloat() { return parseFloat(this.toString()); }\n toFormat(format) {\n return FixedNumber.fromString(this._value, format);\n }\n static fromValue(value, decimals, format) {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n if (decimals == null) {\n decimals = 0;\n }\n if (format == null) {\n format = \"fixed\";\n }\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n static fromString(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n const numeric = parseFixed(value, fixedFormat.decimals);\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n let hex = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n }\n else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static fromBytes(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) {\n numeric = numeric.fromTwos(fixedFormat.width);\n }\n const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static from(value, format) {\n if (typeof (value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n try {\n return FixedNumber.fromValue(value, 0, format);\n }\n catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n static isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n}\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n//# sourceMappingURL=fixednumber.js.map","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","const stringify = require('json-stable-stringify')\n\nmodule.exports = {\n cacheIdentifierForPayload: cacheIdentifierForPayload,\n canCache: canCache,\n blockTagForPayload: blockTagForPayload,\n paramsWithoutBlockTag: paramsWithoutBlockTag,\n blockTagParamIndex: blockTagParamIndex,\n cacheTypeForPayload: cacheTypeForPayload\n}\n\nfunction cacheIdentifierForPayload (payload, skipBlockRef) {\n const simpleParams = skipBlockRef ? paramsWithoutBlockTag(payload) : payload.params\n if (canCache(payload)) {\n return payload.method + ':' + stringify(simpleParams)\n } else {\n return null\n }\n}\n\nfunction canCache (payload) {\n return cacheTypeForPayload(payload) !== 'never'\n}\n\nfunction blockTagForPayload (payload) {\n let index = blockTagParamIndex(payload)\n\n // Block tag param not passed.\n if (index >= payload.params.length) {\n return null\n }\n\n return payload.params[index]\n}\n\nfunction paramsWithoutBlockTag (payload) {\n const index = blockTagParamIndex(payload)\n\n // Block tag param not passed.\n if (index >= payload.params.length) {\n return payload.params\n }\n\n // eth_getBlockByNumber has the block tag first, then the optional includeTx? param\n if (payload.method === 'eth_getBlockByNumber') {\n return payload.params.slice(1)\n }\n\n return payload.params.slice(0, index)\n}\n\nfunction blockTagParamIndex (payload) {\n switch (payload.method) {\n // blockTag is at index 2\n case 'eth_getStorageAt':\n return 2\n // blockTag is at index 1\n case 'eth_getBalance':\n case 'eth_getCode':\n case 'eth_getTransactionCount':\n case 'eth_call':\n return 1\n // blockTag is at index 0\n case 'eth_getBlockByNumber':\n return 0\n // there is no blockTag\n default:\n return undefined\n }\n}\n\nfunction cacheTypeForPayload (payload) {\n switch (payload.method) {\n // cache permanently\n case 'web3_clientVersion':\n case 'web3_sha3':\n case 'eth_protocolVersion':\n case 'eth_getBlockTransactionCountByHash':\n case 'eth_getUncleCountByBlockHash':\n case 'eth_getCode':\n case 'eth_getBlockByHash':\n case 'eth_getTransactionByHash':\n case 'eth_getTransactionByBlockHashAndIndex':\n case 'eth_getTransactionReceipt':\n case 'eth_getUncleByBlockHashAndIndex':\n case 'eth_getCompilers':\n case 'eth_compileLLL':\n case 'eth_compileSolidity':\n case 'eth_compileSerpent':\n case 'shh_version':\n case 'test_permaCache':\n return 'perma'\n\n // cache until fork\n case 'eth_getBlockByNumber':\n case 'eth_getBlockTransactionCountByNumber':\n case 'eth_getUncleCountByBlockNumber':\n case 'eth_getTransactionByBlockNumberAndIndex':\n case 'eth_getUncleByBlockNumberAndIndex':\n case 'test_forkCache':\n return 'fork'\n\n // cache for block\n case 'eth_gasPrice':\n case 'eth_blockNumber':\n case 'eth_getBalance':\n case 'eth_getStorageAt':\n case 'eth_getTransactionCount':\n case 'eth_call':\n case 'eth_estimateGas':\n case 'eth_getFilterLogs':\n case 'eth_getLogs':\n case 'test_blockCache':\n return 'block'\n\n // never cache\n case 'net_version':\n case 'net_peerCount':\n case 'net_listening':\n case 'eth_syncing':\n case 'eth_sign':\n case 'eth_coinbase':\n case 'eth_mining':\n case 'eth_hashrate':\n case 'eth_accounts':\n case 'eth_sendTransaction':\n case 'eth_sendRawTransaction':\n case 'eth_newFilter':\n case 'eth_newBlockFilter':\n case 'eth_newPendingTransactionFilter':\n case 'eth_uninstallFilter':\n case 'eth_getFilterChanges':\n case 'eth_getWork':\n case 'eth_submitWork':\n case 'eth_submitHashrate':\n case 'db_putString':\n case 'db_getString':\n case 'db_putHex':\n case 'db_getHex':\n case 'shh_post':\n case 'shh_newIdentity':\n case 'shh_hasIdentity':\n case 'shh_newGroup':\n case 'shh_addToGroup':\n case 'shh_newFilter':\n case 'shh_uninstallFilter':\n case 'shh_getFilterChanges':\n case 'shh_getMessages':\n case 'test_neverCache':\n return 'never'\n }\n}\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map\n","/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */\nimport { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = /*@__PURE__*/ new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) {\n SchedulerAction = VirtualAction;\n }\n if (maxFrames === void 0) {\n maxFrames = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) {\n index = scheduler.index += 1;\n }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map\n","/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (isArray(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = from(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map\n","/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n return new Observable(function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map\n","/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) {\n trueResult = EMPTY;\n }\n if (falseResult === void 0) {\n falseResult = EMPTY;\n }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map\n","/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) {\n period = 0;\n }\n if (scheduler === void 0) {\n scheduler = async;\n }\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map\n","/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = /*@__PURE__*/ new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map\n","/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new Observable(function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return from(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map\n","/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */\nimport { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { Observable } from '../Observable';\nexport function partition(source, predicate, thisArg) {\n return [\n filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))\n ];\n}\n//# sourceMappingURL=partition.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) {\n start = 0;\n }\n return new Observable(function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map\n","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","export const version = \"abi/5.5.0\";\n//# sourceMappingURL=_version.js.map","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","const ProviderSubprovider = require('./json-rpc-engine-middleware')\nconst createSubscriptionManager = require('eth-json-rpc-filters/subscriptionManager')\n\nclass SubscriptionsSubprovider extends ProviderSubprovider {\n constructor() {\n super(({ blockTracker, provider, engine }) => {\n const { events, middleware } = createSubscriptionManager({ blockTracker, provider })\n // forward subscription events on the engine\n events.on('notification', (data) => engine.emit('data', null, data))\n // return the subscription install/remove middleware\n return middleware\n })\n }\n}\n\nmodule.exports = SubscriptionsSubprovider\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorValues = exports.errorCodes = void 0;\nexports.errorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n};\nexports.errorValues = {\n '-32700': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n },\n '-32600': {\n standard: 'JSON RPC 2.0',\n message: 'The JSON sent is not a valid Request object.',\n },\n '-32601': {\n standard: 'JSON RPC 2.0',\n message: 'The method does not exist / is not available.',\n },\n '-32602': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid method parameter(s).',\n },\n '-32603': {\n standard: 'JSON RPC 2.0',\n message: 'Internal JSON-RPC error.',\n },\n '-32000': {\n standard: 'EIP-1474',\n message: 'Invalid input.',\n },\n '-32001': {\n standard: 'EIP-1474',\n message: 'Resource not found.',\n },\n '-32002': {\n standard: 'EIP-1474',\n message: 'Resource unavailable.',\n },\n '-32003': {\n standard: 'EIP-1474',\n message: 'Transaction rejected.',\n },\n '-32004': {\n standard: 'EIP-1474',\n message: 'Method not supported.',\n },\n '-32005': {\n standard: 'EIP-1474',\n message: 'Request limit exceeded.',\n },\n '4001': {\n standard: 'EIP-1193',\n message: 'User rejected the request.',\n },\n '4100': {\n standard: 'EIP-1193',\n message: 'The requested account and/or method has not been authorized by the user.',\n },\n '4200': {\n standard: 'EIP-1193',\n message: 'The requested method is not supported by this Ethereum provider.',\n },\n '4900': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from all chains.',\n },\n '4901': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from the specified chain.',\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9yLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QmEsUUFBQSxVQUFVLEdBQWU7SUFDcEMsR0FBRyxFQUFFO1FBQ0gsWUFBWSxFQUFFLENBQUMsS0FBSztRQUNwQixnQkFBZ0IsRUFBRSxDQUFDLEtBQUs7UUFDeEIsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLO1FBQzNCLG1CQUFtQixFQUFFLENBQUMsS0FBSztRQUMzQixrQkFBa0IsRUFBRSxDQUFDLEtBQUs7UUFDMUIsYUFBYSxFQUFFLENBQUMsS0FBSztRQUNyQixLQUFLLEVBQUUsQ0FBQyxLQUFLO1FBQ2IsY0FBYyxFQUFFLENBQUMsS0FBSztRQUN0QixjQUFjLEVBQUUsQ0FBQyxLQUFLO1FBQ3RCLGFBQWEsRUFBRSxDQUFDLEtBQUs7UUFDckIsUUFBUSxFQUFFLENBQUMsS0FBSztLQUNqQjtJQUNELFFBQVEsRUFBRTtRQUNSLG1CQUFtQixFQUFFLElBQUk7UUFDekIsWUFBWSxFQUFFLElBQUk7UUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixZQUFZLEVBQUUsSUFBSTtRQUNsQixpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCO0NBQ0YsQ0FBQztBQUVXLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLE9BQU8sRUFBRSx1R0FBdUc7S0FDakg7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsY0FBYztRQUN4QixPQUFPLEVBQUUsOENBQThDO0tBQ3hEO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGNBQWM7UUFDeEIsT0FBTyxFQUFFLCtDQUErQztLQUN6RDtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLE9BQU8sRUFBRSw4QkFBOEI7S0FDeEM7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsY0FBYztRQUN4QixPQUFPLEVBQUUsMEJBQTBCO0tBQ3BDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLFVBQVU7UUFDcEIsT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE9BQU8sRUFBRSxxQkFBcUI7S0FDL0I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsdUJBQXVCO0tBQ2pDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLFVBQVU7UUFDcEIsT0FBTyxFQUFFLHVCQUF1QjtLQUNqQztJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE9BQU8sRUFBRSx1QkFBdUI7S0FDakM7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUseUJBQXlCO0tBQ25DO0lBQ0QsTUFBTSxFQUFFO1FBQ04sUUFBUSxFQUFFLFVBQVU7UUFDcEIsT0FBTyxFQUFFLDRCQUE0QjtLQUN0QztJQUNELE1BQU0sRUFBRTtRQUNOLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE9BQU8sRUFBRSwwRUFBMEU7S0FDcEY7SUFDRCxNQUFNLEVBQUU7UUFDTixRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsa0VBQWtFO0tBQzVFO0lBQ0QsTUFBTSxFQUFFO1FBQ04sUUFBUSxFQUFFLFVBQVU7UUFDcEIsT0FBTyxFQUFFLCtDQUErQztLQUN6RDtJQUNELE1BQU0sRUFBRTtRQUNOLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE9BQU8sRUFBRSx3REFBd0Q7S0FDbEU7Q0FDRixDQUFDIn0=","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\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.Base = void 0;\nconst crypto_js_1 = __importDefault(require(\"crypto-js\"));\nclass Base {\n /**\n * print\n * @desc Prints out a visual representation of the merkle tree.\n * @example\n *```js\n *tree.print()\n *```\n */\n print() {\n Base.print(this);\n }\n /**\n * bufferIndexOf\n * @desc Returns the first index of which given buffer is found in array.\n * @param {Buffer[]} haystack - Array of buffers.\n * @param {Buffer} needle - Buffer to find.\n * @return {Number} - Index number\n *\n * @example\n * ```js\n *const index = tree.bufferIndexOf(haystack, needle)\n *```\n */\n _bufferIndexOf(array, element) {\n for (let i = 0; i < array.length; i++) {\n if (element.equals(array[i])) {\n return i;\n }\n }\n return -1;\n }\n /**\n * bufferify\n * @desc Returns a buffer type for the given value.\n * @param {String|Number|Object|Buffer|ArrayBuffer} value\n * @return {Buffer}\n *\n * @example\n * ```js\n *const buf = MerkleTree.bufferify('0x1234')\n *```\n */\n static bufferify(value) {\n if (!Buffer.isBuffer(value)) {\n // crypto-js support\n if (typeof value === 'object' && value.words) {\n return Buffer.from(value.toString(crypto_js_1.default.enc.Hex), 'hex');\n }\n else if (Base.isHexString(value)) {\n return Buffer.from(value.replace(/^0x/, ''), 'hex');\n }\n else if (typeof value === 'string') {\n return Buffer.from(value);\n }\n else if (typeof value === 'number') {\n let s = value.toString();\n if (s.length % 2) {\n s = `0${s}`;\n }\n return Buffer.from(s, 'hex');\n }\n else if (ArrayBuffer.isView(value)) {\n return Buffer.from(value.buffer, value.byteOffset, value.byteLength);\n }\n }\n return value;\n }\n /**\n * isHexString\n * @desc Returns true if value is a hex string.\n * @param {String} value\n * @return {Boolean}\n *\n * @example\n * ```js\n *console.log(MerkleTree.isHexString('0x1234'))\n *```\n */\n static isHexString(v) {\n return (typeof v === 'string' && /^(0x)?[0-9A-Fa-f]*$/.test(v));\n }\n /**\n * print\n * @desc Prints out a visual representation of the given merkle tree.\n * @param {Object} tree - Merkle tree instance.\n * @return {String}\n * @example\n *```js\n *MerkleTree.print(tree)\n *```\n */\n static print(tree) {\n console.log(tree.toString());\n }\n /**\n * bufferToHex\n * @desc Returns a hex string with 0x prefix for given buffer.\n * @param {Buffer} value\n * @return {String}\n * @example\n *```js\n *const hexStr = tree.bufferToHex(Buffer.from('A'))\n *```\n */\n bufferToHex(value, withPrefix = true) {\n return Base.bufferToHex(value, withPrefix);\n }\n /**\n * bufferToHex\n * @desc Returns a hex string with 0x prefix for given buffer.\n * @param {Buffer} value\n * @return {String}\n * @example\n *```js\n *const hexStr = MerkleTree.bufferToHex(Buffer.from('A'))\n *```\n */\n static bufferToHex(value, withPrefix = true) {\n return `${withPrefix ? '0x' : ''}${(value || Buffer.alloc(0)).toString('hex')}`;\n }\n /**\n * bufferify\n * @desc Returns a buffer type for the given value.\n * @param {String|Number|Object|Buffer} value\n * @return {Buffer}\n *\n * @example\n * ```js\n *const buf = tree.bufferify('0x1234')\n *```\n */\n bufferify(value) {\n return Base.bufferify(value);\n }\n /**\n * bufferifyFn\n * @desc Returns a function that will bufferify the return value.\n * @param {Function}\n * @return {Function}\n *\n * @example\n * ```js\n *const fn = tree.bufferifyFn((value) => sha256(value))\n *```\n */\n bufferifyFn(f) {\n return (value) => {\n const v = f(value);\n if (Buffer.isBuffer(v)) {\n return v;\n }\n if (this._isHexString(v)) {\n return Buffer.from(v.replace('0x', ''), 'hex');\n }\n if (typeof v === 'string') {\n return Buffer.from(v);\n }\n if (ArrayBuffer.isView(v)) {\n return Buffer.from(v.buffer, v.byteOffset, v.byteLength);\n }\n // crypto-js support\n return Buffer.from(f(crypto_js_1.default.enc.Hex.parse(value.toString('hex'))).toString(crypto_js_1.default.enc.Hex), 'hex');\n };\n }\n /**\n * isHexString\n * @desc Returns true if value is a hex string.\n * @param {String} value\n * @return {Boolean}\n *\n * @example\n * ```js\n *console.log(MerkleTree.isHexString('0x1234'))\n *```\n */\n _isHexString(value) {\n return Base.isHexString(value);\n }\n /**\n * log2\n * @desc Returns the log2 of number.\n * @param {Number} value\n * @return {Number}\n */\n _log2(n) {\n return n === 1 ? 0 : 1 + this._log2((n / 2) | 0);\n }\n /**\n * zip\n * @desc Returns true if value is a hex string.\n * @param {String[]|Number[]|Buffer[]} a - first array\n * @param {String[]|Number[]|Buffer[]} b - second array\n * @return {String[][]|Number[][]|Buffer[][]}\n *\n * @example\n * ```js\n *const zipped = tree.zip(['a', 'b'],['A', 'B'])\n *console.log(zipped) // [ [ 'a', 'A' ], [ 'b', 'B' ] ]\n *```\n */\n _zip(a, b) {\n return a.map((e, i) => [e, b[i]]);\n }\n}\nexports.Base = Base;\nexports.default = Base;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","'use strict';\n\nvar secp256k1 = require('ethereum-cryptography/secp256k1');\n\nvar secp256k1v3 = require('./secp256k1-lib/index');\nvar der = require('./secp256k1-lib/der');\n\n/**\n * Verify an ECDSA privateKey\n * @method privateKeyVerify\n * @param {Buffer} privateKey\n * @return {boolean}\n */\nvar privateKeyVerify = function privateKeyVerify(privateKey) {\n // secp256k1 v4 version throws when privateKey length is not 32\n if (privateKey.length !== 32) {\n return false;\n }\n\n return secp256k1.privateKeyVerify(Uint8Array.from(privateKey));\n};\n\n/**\n * Export a privateKey in DER format\n * @method privateKeyExport\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {boolean}\n */\nvar privateKeyExport = function privateKeyExport(privateKey, compressed) {\n // privateKeyExport method is not part of secp256k1 v4 package\n // this implementation is based on v3\n if (privateKey.length !== 32) {\n throw new RangeError('private key length is invalid');\n }\n\n var publicKey = secp256k1v3.privateKeyExport(privateKey, compressed);\n\n return der.privateKeyExport(privateKey, publicKey, compressed);\n};\n\n/**\n * Import a privateKey in DER format\n * @method privateKeyImport\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\n\nvar privateKeyImport = function privateKeyImport(privateKey) {\n // privateKeyImport method is not part of secp256k1 v4 package\n // this implementation is based on v3\n privateKey = der.privateKeyImport(privateKey);\n if (privateKey !== null && privateKey.length === 32 && privateKeyVerify(privateKey)) {\n return privateKey;\n }\n\n throw new Error(\"couldn't import from DER format\");\n};\n\n/**\n * Negate a privateKey by subtracting it from the order of the curve's base point\n * @method privateKeyNegate\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nvar privateKeyNegate = function privateKeyNegate(privateKey) {\n return Buffer.from(secp256k1.privateKeyNegate(Uint8Array.from(privateKey)));\n};\n\n/**\n * Compute the inverse of a privateKey (modulo the order of the curve's base point).\n * @method privateKeyModInverse\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nvar privateKeyModInverse = function privateKeyModInverse(privateKey) {\n if (privateKey.length !== 32) {\n throw new Error('private key length is invalid');\n }\n\n return Buffer.from(secp256k1v3.privateKeyModInverse(Uint8Array.from(privateKey)));\n};\n\n/**\n * Tweak a privateKey by adding tweak to it.\n * @method privateKeyTweakAdd\n * @param {Buffer} privateKey\n * @param {Buffer} tweak\n * @return {Buffer}\n */\nvar privateKeyTweakAdd = function privateKeyTweakAdd(privateKey, tweak) {\n return Buffer.from(secp256k1.privateKeyTweakAdd(Uint8Array.from(privateKey), tweak));\n};\n\n/**\n * Tweak a privateKey by multiplying it by a tweak.\n * @method privateKeyTweakMul\n * @param {Buffer} privateKey\n * @param {Buffer} tweak\n * @return {Buffer}\n */\nvar privateKeyTweakMul = function privateKeyTweakMul(privateKey, tweak) {\n return Buffer.from(secp256k1.privateKeyTweakMul(Uint8Array.from(privateKey), Uint8Array.from(tweak)));\n};\n\n/**\n * Compute the public key for a privateKey.\n * @method publicKeyCreate\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar publicKeyCreate = function publicKeyCreate(privateKey, compressed) {\n return Buffer.from(secp256k1.publicKeyCreate(Uint8Array.from(privateKey), compressed));\n};\n\n/**\n * Convert a publicKey to compressed or uncompressed form.\n * @method publicKeyConvert\n * @param {Buffer} publicKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar publicKeyConvert = function publicKeyConvert(publicKey, compressed) {\n return Buffer.from(secp256k1.publicKeyConvert(Uint8Array.from(publicKey), compressed));\n};\n\n/**\n * Verify an ECDSA publicKey.\n * @method publicKeyVerify\n * @param {Buffer} publicKey\n * @return {boolean}\n */\nvar publicKeyVerify = function publicKeyVerify(publicKey) {\n // secp256k1 v4 version throws when publicKey length is not 33 or 65\n if (publicKey.length !== 33 && publicKey.length !== 65) {\n return false;\n }\n\n return secp256k1.publicKeyVerify(Uint8Array.from(publicKey));\n};\n\n/**\n * Tweak a publicKey by adding tweak times the generator to it.\n * @method publicKeyTweakAdd\n * @param {Buffer} publicKey\n * @param {Buffer} tweak\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar publicKeyTweakAdd = function publicKeyTweakAdd(publicKey, tweak, compressed) {\n return Buffer.from(secp256k1.publicKeyTweakAdd(Uint8Array.from(publicKey), Uint8Array.from(tweak), compressed));\n};\n\n/**\n * Tweak a publicKey by multiplying it by a tweak value\n * @method publicKeyTweakMul\n * @param {Buffer} publicKey\n * @param {Buffer} tweak\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar publicKeyTweakMul = function publicKeyTweakMul(publicKey, tweak, compressed) {\n return Buffer.from(secp256k1.publicKeyTweakMul(Uint8Array.from(publicKey), Uint8Array.from(tweak), compressed));\n};\n\n/**\n * Add a given publicKeys together.\n * @method publicKeyCombine\n * @param {Array} publicKeys\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar publicKeyCombine = function publicKeyCombine(publicKeys, compressed) {\n var keys = [];\n publicKeys.forEach(function (publicKey) {\n keys.push(Uint8Array.from(publicKey));\n });\n\n return Buffer.from(secp256k1.publicKeyCombine(keys, compressed));\n};\n\n/**\n * Convert a signature to a normalized lower-S form.\n * @method signatureNormalize\n * @param {Buffer} signature\n * @return {Buffer}\n */\nvar signatureNormalize = function signatureNormalize(signature) {\n return Buffer.from(secp256k1.signatureNormalize(Uint8Array.from(signature)));\n};\n\n/**\n * Serialize an ECDSA signature in DER format.\n * @method signatureExport\n * @param {Buffer} signature\n * @return {Buffer}\n */\nvar signatureExport = function signatureExport(signature) {\n return Buffer.from(secp256k1.signatureExport(Uint8Array.from(signature)));\n};\n\n/**\n * Parse a DER ECDSA signature (follow by [BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)).\n * @method signatureImport\n * @param {Buffer} signature\n * @return {Buffer}\n */\nvar signatureImport = function signatureImport(signature) {\n return Buffer.from(secp256k1.signatureImport(Uint8Array.from(signature)));\n};\n\n/**\n * Parse a DER ECDSA signature (not follow by [BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)).\n * @method signatureImportLax\n * @param {Buffer} signature\n * @return {Buffer}\n */\nvar signatureImportLax = function signatureImportLax(signature) {\n // signatureImportLax method is not part of secp256k1 v4 package\n // this implementation is based on v3\n // ensure that signature is greater than 0\n if (signature.length === 0) {\n throw new RangeError('signature length is invalid');\n }\n\n var sigObj = der.signatureImportLax(signature);\n if (sigObj === null) {\n throw new Error(\"couldn't parse DER signature\");\n }\n\n return secp256k1v3.signatureImport(sigObj);\n};\n\n/**\n * Create an ECDSA signature. Always return low-S signature.\n * @method sign\n * @param {Buffer} message\n * @param {Buffer} privateKey\n * @param {Object} options\n * @return {Buffer}\n */\nvar sign = function sign(message, privateKey, options) {\n if (options === null) {\n throw new TypeError('options should be an Object');\n }\n\n var signOptions = void 0;\n\n if (options) {\n signOptions = {};\n\n if (options.data === null) {\n throw new TypeError('options.data should be a Buffer');\n }\n\n if (options.data) {\n // validate option.data length\n if (options.data.length !== 32) {\n throw new RangeError('options.data length is invalid');\n }\n\n signOptions.data = new Uint8Array(options.data);\n }\n\n if (options.noncefn === null) {\n throw new TypeError('options.noncefn should be a Function');\n }\n\n if (options.noncefn) {\n // convert option.noncefn function signature\n signOptions.noncefn = function (message, privateKey, algo, data, attempt) {\n var bufferAlgo = algo != null ? Buffer.from(algo) : null;\n var bufferData = data != null ? Buffer.from(data) : null;\n\n var buffer = Buffer.from('');\n\n if (options.noncefn) {\n buffer = options.noncefn(Buffer.from(message), Buffer.from(privateKey), bufferAlgo, bufferData, attempt);\n }\n\n return Uint8Array.from(buffer);\n };\n }\n }\n\n var sig = secp256k1.ecdsaSign(Uint8Array.from(message), Uint8Array.from(privateKey), signOptions);\n\n return {\n signature: Buffer.from(sig.signature),\n recovery: sig.recid\n };\n};\n\n/**\n * Verify an ECDSA signature.\n * @method verify\n * @param {Buffer} message\n * @param {Buffer} signature\n * @param {Buffer} publicKey\n * @return {boolean}\n */\nvar verify = function verify(message, signature, publicKey) {\n // note: secp256k1 v4 verify method has a different argument order\n return secp256k1.ecdsaVerify(Uint8Array.from(signature), Uint8Array.from(message), publicKey);\n};\n\n/**\n * Recover an ECDSA public key from a signature.\n * @method recover\n * @param {Buffer} message\n * @param {Buffer} signature\n * @param {Number} recid\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar recover = function recover(message, signature, recid, compressed) {\n // note: secp256k1 v4 recover method has a different argument order\n return Buffer.from(secp256k1.ecdsaRecover(Uint8Array.from(signature), recid, Uint8Array.from(message), compressed));\n};\n\n/**\n * Compute an EC Diffie-Hellman secret and applied sha256 to compressed public key.\n * @method ecdh\n * @param {Buffer} publicKey\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nvar ecdh = function ecdh(publicKey, privateKey) {\n // note: secp256k1 v3 doesn't allow optional parameter\n return Buffer.from(secp256k1.ecdh(Uint8Array.from(publicKey), Uint8Array.from(privateKey), {}));\n};\n\n/**\n * Compute an EC Diffie-Hellman secret and return public key as result\n * @method ecdhUnsafe\n * @param {Buffer} publicKey\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nvar ecdhUnsafe = function ecdhUnsafe(publicKey, privateKey, compressed) {\n // ecdhUnsafe method is not part of secp256k1 v4 package\n // this implementation is based on v3\n // ensure valid publicKey length\n if (publicKey.length !== 33 && publicKey.length !== 65) {\n throw new RangeError('public key length is invalid');\n }\n\n // ensure valid privateKey length\n if (privateKey.length !== 32) {\n throw new RangeError('private key length is invalid');\n }\n\n return Buffer.from(secp256k1v3.ecdhUnsafe(Uint8Array.from(publicKey), Uint8Array.from(privateKey), compressed));\n};\n\nmodule.exports = {\n privateKeyVerify: privateKeyVerify,\n privateKeyExport: privateKeyExport,\n privateKeyImport: privateKeyImport,\n privateKeyNegate: privateKeyNegate,\n privateKeyModInverse: privateKeyModInverse,\n privateKeyTweakAdd: privateKeyTweakAdd,\n privateKeyTweakMul: privateKeyTweakMul,\n\n publicKeyCreate: publicKeyCreate,\n publicKeyConvert: publicKeyConvert,\n publicKeyVerify: publicKeyVerify,\n publicKeyTweakAdd: publicKeyTweakAdd,\n publicKeyTweakMul: publicKeyTweakMul,\n publicKeyCombine: publicKeyCombine,\n\n signatureNormalize: signatureNormalize,\n signatureExport: signatureExport,\n signatureImport: signatureImport,\n signatureImportLax: signatureImportLax,\n\n sign: sign,\n verify: verify,\n recover: recover,\n\n ecdh: ecdh,\n ecdhUnsafe: ecdhUnsafe\n};","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var i,t=arguments,r={};for(i in l)\"key\"!==i&&\"ref\"!==i&&(r[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i2&&(l.children=c.slice.call(arguments,2)),u={},l)\"key\"!==i&&\"ref\"!==i&&(u[i]=l[i]);return p(n.type,u,l.key||n.key,l.ref||n.ref,null)}function M(n){var l={},u={__c:\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(n){t.props.value!==n.value&&i.some(function(l){l.context=n.value,g(l)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},m.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),g(this))},m.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},m.prototype.render=d,u=[],i=0,t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=e,f=0;export{H as render,I as hydrate,h as createElement,h,d as Fragment,y as createRef,l as isValidElement,m as Component,L as cloneElement,M as createContext,x as toChildArray,D as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,i=0,o=[],c=n.__r,f=n.diffed,e=n.__c,a=n.unmount;function v(t,r){n.__h&&n.__h(u,t,i||r),i=0;var o=u.__H||(u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function m(n){return i=1,p(E,n)}function p(n,r,i){var o=v(t++,2);return o.__c||(o.__c=u,o.__=[i?i(r):E(void 0,r),function(t){var u=n(o.__[0],t);o.__[0]!==u&&(o.__[0]=u,o.__c.setState({}))}]),o.__}function l(r,i){var o=v(t++,3);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__H.__h.push(o))}function y(r,i){var o=v(t++,4);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__h.push(o))}function d(n){return i=5,h(function(){return{current:n}},[])}function s(n,t,u){i=6,y(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function h(n,u){var r=v(t++,7);return x(r.__H,u)?(r.__H=u,r.__h=n,r.__=n()):r.__}function T(n,t){return i=8,h(function(){return n},t)}function w(n){var r=u.context[n.__c],i=v(t++,9);return i.__c=n,r?(null==i.__&&(i.__=!0,r.sub(u)),r.props.value):n.__}function A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(n){var r=v(t++,10),i=m();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function _(){o.some(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(q),t.__H.__h=[]}catch(u){return t.__H.__h=[],n.__e(u,t.__v),!0}}),o=[]}function g(n){n.t&&n.t()}function q(n){var t=n.__();\"function\"==typeof t&&(n.t=t)}function x(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function E(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){c&&c(n),t=0,(u=n.__c).__H&&(u.__H.__h.forEach(g),u.__H.__h.forEach(q),u.__H.__h=[])},n.diffed=function(t){f&&f(t);var u=t.__c;if(u){var i=u.__H;i&&i.__h.length&&(1!==o.push(u)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(_))}},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||q(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),e&&e(t,u)},n.unmount=function(t){a&&a(t);var u=t.__c;if(u){var r=u.__H;if(r)try{r.__.forEach(function(n){return n.t&&n.t()})}catch(t){n.__e(t,u.__v)}}};export{m as useState,p as useReducer,l as useEffect,y as useLayoutEffect,d as useRef,s as useImperativeHandle,h as useMemo,T as useCallback,w as useContext,A as useDebugValue,F as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as o,useImperativeHandle as u,useMemo as i,useCallback as f,useContext as c,useDebugValue as a}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as l,createElement as s,options as v,toChildArray as h,hydrate as p,render as d,_unmount as m,cloneElement as y,createRef as b,createContext as g,Fragment as x}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function E(n,t){for(var e in t)n[e]=t[e];return n}function w(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}var C=function(n){var t,e;function r(t){var e;return(e=n.call(this,t)||this).isPureReactComponent=!0,e}return e=n,(t=r).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,r.prototype.shouldComponentUpdate=function(n,t){return w(this.props,n)||w(this.state,t)},r}(l);function _(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:w(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,E({},t))}return r.prototype.isReactComponent=!0,r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.t=!0,r}var A=v.__b;function S(n){function t(t){var e=E({},t);return delete e.ref,n(e,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}v.__b=function(n){n.type&&n.type.t&&n.ref&&(n.props.ref=n.ref,n.ref=null),A&&A(n)};var k=function(n,t){return n?h(n).reduce(function(n,e,r){return n.concat(t(e,r))},[]):null},R={map:k,forEach:k,count:function(n){return n?h(n).length:0},only:function(n){if(1!==(n=h(n)).length)throw new Error(\"Children.only() expects only one child.\");return n[0]},toArray:h},F=v.__e;function N(n){return n&&((n=E({},n)).__c=null,n.__k=n.__k&&n.__k.map(N)),n}function U(){this.__u=0,this.o=null,this.__b=null}function M(n){var t=n.__.__c;return t&&t.u&&t.u(n)}function L(n){var t,e,r;function o(o){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,o)}return o.displayName=\"Lazy\",o.t=!0,o}function O(){this.i=null,this.l=null}v.__e=function(n,t,e){if(n.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(n,t.__c);F(n,t,e)},(U.prototype=new l).__c=function(n,t){var e=this;null==e.o&&(e.o=[]),e.o.push(t);var r=M(e.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=e.state.u,e.setState({u:e.__b=null});n=e.o.pop();)n.forceUpdate()};e.__u++||e.setState({u:e.__b=e.__v.__k[0]}),n.then(u,u)},U.prototype.render=function(n,t){return this.__b&&(this.__v.__k[0]=N(this.__b),this.__b=null),[s(l,null,t.u?null:n.children),t.u&&n.fallback]};var P=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1] {\n throw err;\n });\n }\n}\nfunction arrayClone(arr) {\n const n = arr.length;\n const copy = new Array(n);\n for (let i = 0; i < n; i += 1) {\n copy[i] = arr[i];\n }\n return copy;\n}\nclass SafeEventEmitter extends events_1.EventEmitter {\n emit(type, ...args) {\n let doError = type === 'error';\n const events = this._events;\n if (events !== undefined) {\n doError = doError && events.error === undefined;\n }\n else if (!doError) {\n return false;\n }\n // If there is no 'error' event listener then throw.\n if (doError) {\n let er;\n if (args.length > 0) {\n [er] = args;\n }\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 const err = new Error(`Unhandled error.${er ? ` (${er.message})` : ''}`);\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n const handler = events[type];\n if (handler === undefined) {\n return false;\n }\n if (typeof handler === 'function') {\n safeApply(handler, this, args);\n }\n else {\n const len = handler.length;\n const listeners = arrayClone(handler);\n for (let i = 0; i < len; i += 1) {\n safeApply(listeners[i], this, args);\n }\n }\n return true;\n }\n}\nexports.default = SafeEventEmitter;\n//# sourceMappingURL=index.js.map","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","const EthQuery = require('eth-query')\nconst pify = require('pify')\nconst BaseFilterWithHistory = require('./base-filter-history')\nconst { bnToHex, hexToInt, incrementHexInt, minBlockRef, blockRefIsNumber } = require('./hexUtils')\n\nclass LogFilter extends BaseFilterWithHistory {\n\n constructor ({ provider, params }) {\n super()\n this.type = 'log'\n this.ethQuery = new EthQuery(provider)\n this.params = Object.assign({\n fromBlock: 'latest',\n toBlock: 'latest',\n address: undefined,\n topics: [],\n }, params)\n // normalize address parameter\n if (this.params.address) {\n // ensure array\n if (!Array.isArray(this.params.address)) {\n this.params.address = [this.params.address]\n }\n // ensure lowercase\n this.params.address = this.params.address.map(address => address.toLowerCase())\n }\n }\n\n async initialize({ currentBlock }) {\n // resolve params.fromBlock\n let fromBlock = this.params.fromBlock\n if (['latest', 'pending'].includes(fromBlock)) fromBlock = currentBlock\n if ('earliest' === fromBlock) fromBlock = '0x0'\n this.params.fromBlock = fromBlock\n // set toBlock for initial lookup\n const toBlock = minBlockRef(this.params.toBlock, currentBlock)\n const params = Object.assign({}, this.params, { toBlock })\n // fetch logs and add to results\n const newLogs = await this._fetchLogs(params)\n this.addInitialResults(newLogs)\n }\n\n async update ({ oldBlock, newBlock }) {\n // configure params for this update\n const toBlock = newBlock\n let fromBlock\n // oldBlock is empty on first sync\n if (oldBlock) {\n fromBlock = incrementHexInt(oldBlock)\n } else {\n fromBlock = newBlock\n }\n // fetch logs\n const params = Object.assign({}, this.params, { fromBlock, toBlock })\n const newLogs = await this._fetchLogs(params)\n const matchingLogs = newLogs.filter(log => this.matchLog(log))\n\n // add to results\n this.addResults(matchingLogs)\n }\n\n async _fetchLogs (params) {\n const newLogs = await pify(cb => this.ethQuery.getLogs(params, cb))()\n // add to results\n return newLogs\n }\n\n matchLog(log) {\n // check if block number in bounds:\n if (hexToInt(this.params.fromBlock) >= hexToInt(log.blockNumber)) return false\n if (blockRefIsNumber(this.params.toBlock) && hexToInt(this.params.toBlock) <= hexToInt(log.blockNumber)) return false\n\n // address is correct:\n const normalizedLogAddress = log.address && log.address.toLowerCase()\n if (this.params.address && normalizedLogAddress && !this.params.address.includes(normalizedLogAddress)) return false\n\n // topics match:\n // topics are position-dependant\n // topics can be nested to represent `or` [[a || b], c]\n // topics can be null, representing a wild card for that position\n const topicsMatch = this.params.topics.every((topicPattern, index) => {\n // pattern is longer than actual topics\n let logTopic = log.topics[index]\n if (!logTopic) return false\n logTopic = logTopic.toLowerCase()\n // normalize subTopics\n let subtopicsToMatch = Array.isArray(topicPattern) ? topicPattern : [topicPattern]\n // check for wild card\n const subtopicsIncludeWildcard = subtopicsToMatch.includes(null)\n if (subtopicsIncludeWildcard) return true\n subtopicsToMatch = subtopicsToMatch.map(topic => topic.toLowerCase())\n // check each possible matching topic\n const topicDoesMatch = subtopicsToMatch.includes(logTopic)\n return topicDoesMatch\n })\n\n return topicsMatch\n }\n\n}\n\nmodule.exports = LogFilter\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.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, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = void 0;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe\n} : [].forEach;\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map\n","export * from \"./constants\";\nexport * from \"./error\";\nexport * from \"./env\";\nexport * from \"./format\";\nexport * from \"./routing\";\nexport * from \"./types\";\nexport * from \"./url\";\nexport * from \"./validators\";\n//# sourceMappingURL=index.js.map",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\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 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};","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkSdkUI = void 0;\nconst LinkFlow_1 = require(\"../components/LinkFlow\");\nconst Snackbar_1 = require(\"../components/Snackbar\");\nconst cssReset_1 = require(\"../lib/cssReset\");\nconst WalletLinkUI_1 = require(\"./WalletLinkUI\");\nclass WalletLinkSdkUI extends WalletLinkUI_1.WalletLinkUI {\n constructor(options) {\n super(options);\n this.attached = false;\n this.snackbar = new Snackbar_1.Snackbar({\n darkMode: options.darkMode\n });\n this.linkFlow = new LinkFlow_1.LinkFlow({\n darkMode: options.darkMode,\n version: options.version,\n sessionId: options.session.id,\n sessionSecret: options.session.secret,\n walletLinkUrl: options.walletLinkUrl,\n connected$: options.connected$,\n isParentConnection: false\n });\n }\n attach() {\n if (this.attached) {\n throw new Error(\"WalletLinkUI is already attached\");\n }\n const el = document.documentElement;\n const container = document.createElement(\"div\");\n container.className = \"-walletlink-css-reset\";\n el.appendChild(container);\n this.linkFlow.attach(container);\n this.snackbar.attach(container);\n this.attached = true;\n (0, cssReset_1.injectCssReset)();\n }\n setConnectDisabled(connectDisabled) {\n this.linkFlow.setConnectDisabled(connectDisabled);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n addEthereumChain(options) {\n // no-op\n }\n // @ts-ignore\n switchEthereumChain(options) {\n // no-op\n }\n requestEthereumAccounts(options) {\n this.linkFlow.open({ onCancel: options.onCancel });\n }\n hideRequestEthereumAccounts() {\n this.linkFlow.close();\n }\n signEthereumMessage(_) {\n // No-op\n }\n signEthereumTransaction(_) {\n // No-op\n }\n submitEthereumTransaction(_) {\n // No-op\n }\n ethereumAddressFromSignedMessage(_) {\n // No-op\n }\n showConnecting(options) {\n let snackbarProps;\n if (options.isUnlinkedErrorState) {\n snackbarProps = {\n autoExpand: true,\n message: \"Connection lost\",\n menuItems: [\n {\n isRed: false,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: options.onResetConnection\n }\n ]\n };\n }\n else {\n snackbarProps = {\n message: \"Confirm on phone\",\n menuItems: [\n {\n isRed: true,\n info: \"Cancel transaction\",\n svgWidth: \"11\",\n svgHeight: \"11\",\n path: \"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z\",\n defaultFillRule: \"inherit\",\n defaultClipRule: \"inherit\",\n onClick: options.onCancel\n },\n {\n isRed: false,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: options.onResetConnection\n }\n ]\n };\n }\n return this.snackbar.presentItem(snackbarProps);\n }\n reloadUI() {\n document.location.reload();\n }\n inlineAccountsResponse() {\n return false;\n }\n // @ts-ignore\n inlineAddEthereumChain(chainId) {\n return false;\n }\n inlineSwitchEthereumChain() {\n return false;\n }\n isStandalone() {\n return false;\n }\n}\nexports.WalletLinkSdkUI = WalletLinkSdkUI;\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\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","/**\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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\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}","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","const ethUtil = require('ethereumjs-util')\nconst ethAbi = require('ethereumjs-abi')\n\nmodule.exports = {\n\n concatSig: function (v, r, s) {\n const rSig = ethUtil.fromSigned(r)\n const sSig = ethUtil.fromSigned(s)\n const vSig = ethUtil.bufferToInt(v)\n const rStr = padWithZeroes(ethUtil.toUnsigned(rSig).toString('hex'), 64)\n const sStr = padWithZeroes(ethUtil.toUnsigned(sSig).toString('hex'), 64)\n const vStr = ethUtil.stripHexPrefix(ethUtil.intToHex(vSig))\n return ethUtil.addHexPrefix(rStr.concat(sStr, vStr)).toString('hex')\n },\n\n normalize: function (input) {\n if (!input) return\n\n if (typeof input === 'number') {\n const buffer = ethUtil.toBuffer(input)\n input = ethUtil.bufferToHex(buffer)\n }\n\n if (typeof input !== 'string') {\n var msg = 'eth-sig-util.normalize() requires hex string or integer input.'\n msg += ' received ' + (typeof input) + ': ' + input\n throw new Error(msg)\n }\n\n return ethUtil.addHexPrefix(input.toLowerCase())\n },\n\n personalSign: function (privateKey, msgParams) {\n var message = ethUtil.toBuffer(msgParams.data)\n var msgHash = ethUtil.hashPersonalMessage(message)\n var sig = ethUtil.ecsign(msgHash, privateKey)\n var serialized = ethUtil.bufferToHex(this.concatSig(sig.v, sig.r, sig.s))\n return serialized\n },\n\n recoverPersonalSignature: function (msgParams) {\n const publicKey = getPublicKeyFor(msgParams)\n const sender = ethUtil.publicToAddress(publicKey)\n const senderHex = ethUtil.bufferToHex(sender)\n return senderHex\n },\n\n extractPublicKey: function (msgParams) {\n const publicKey = getPublicKeyFor(msgParams)\n return '0x' + publicKey.toString('hex')\n },\n\n typedSignatureHash: function (typedData) {\n const hashBuffer = typedSignatureHash(typedData)\n return ethUtil.bufferToHex(hashBuffer)\n },\n\n signTypedData: function (privateKey, msgParams) {\n const msgHash = typedSignatureHash(msgParams.data)\n const sig = ethUtil.ecsign(msgHash, privateKey)\n return ethUtil.bufferToHex(this.concatSig(sig.v, sig.r, sig.s))\n },\n\n recoverTypedSignature: function (msgParams) {\n const msgHash = typedSignatureHash(msgParams.data)\n const publicKey = recoverPublicKey(msgHash, msgParams.sig)\n const sender = ethUtil.publicToAddress(publicKey)\n return ethUtil.bufferToHex(sender)\n }\n\n}\n\n/**\n * @param typedData - Array of data along with types, as per EIP712.\n * @returns Buffer\n */\nfunction typedSignatureHash(typedData) {\n const error = new Error('Expect argument to be non-empty array')\n if (typeof typedData !== 'object' || !typedData.length) throw error\n\n const data = typedData.map(function (e) {\n return e.type === 'bytes' ? ethUtil.toBuffer(e.value) : e.value\n })\n const types = typedData.map(function (e) { return e.type })\n const schema = typedData.map(function (e) {\n if (!e.name) throw error\n return e.type + ' ' + e.name\n })\n\n return ethAbi.soliditySHA3(\n ['bytes32', 'bytes32'],\n [\n ethAbi.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n ethAbi.soliditySHA3(types, data)\n ]\n )\n}\n\nfunction recoverPublicKey(hash, sig) {\n const signature = ethUtil.toBuffer(sig)\n const sigParams = ethUtil.fromRpcSig(signature)\n return ethUtil.ecrecover(hash, sigParams.v, sigParams.r, sigParams.s)\n}\n\nfunction getPublicKeyFor (msgParams) {\n const message = ethUtil.toBuffer(msgParams.data)\n const msgHash = ethUtil.hashPersonalMessage(message)\n return recoverPublicKey(msgHash, msgParams.sig)\n}\n\n\nfunction padWithZeroes (number, length) {\n var myString = '' + number\n while (myString.length < length) {\n myString = '0' + myString\n }\n return myString\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3RequestCanceledMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3RequestCanceledMessage(id) {\n return { type: RelayMessage_1.RelayMessageType.WEB3_REQUEST_CANCELED, id };\n}\nexports.Web3RequestCanceledMessage = Web3RequestCanceledMessage;\n","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n//# sourceMappingURL=base64.js.map","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\t /*\n\t * Local polyfil of Object.create\n\t */\n\t var create = Object.create || (function () {\n\t function F() {};\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }())\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var i = 0; i < thatSigBytes; i += 4) {\n\t thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t var r = (function (m_w) {\n\t var m_w = m_w;\n\t var m_z = 0x3ade68b1;\n\t var mask = 0xffffffff;\n\n\t return function () {\n\t m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;\n\t m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;\n\t var result = ((m_z << 0x10) + m_w) & mask;\n\t result /= 0x100000000;\n\t result += 0.5;\n\t return result * (Math.random() > .5 ? 1 : -1);\n\t }\n\t });\n\n\t for (var i = 0, rcache; i < nBytes; i += 4) {\n\t var _r = r((rcache || Math.random()) * 0x100000000);\n\n\t rcache = _r() * 0x3ade67b7;\n\t words.push((_r() * 0x100000000) | 0);\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t var processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));","\"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};\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar secp256k1_1 = require(\"secp256k1\");\nvar random_1 = require(\"./random\");\nvar SECP256K1_PRIVATE_KEY_SIZE = 32;\nfunction createPrivateKey() {\n return __awaiter(this, void 0, void 0, function () {\n var pk;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!true) return [3 /*break*/, 2];\n return [4 /*yield*/, random_1.getRandomBytes(SECP256K1_PRIVATE_KEY_SIZE)];\n case 1:\n pk = _a.sent();\n if (secp256k1_1.privateKeyVerify(pk)) {\n return [2 /*return*/, pk];\n }\n return [3 /*break*/, 0];\n case 2: return [2 /*return*/];\n }\n });\n });\n}\nexports.createPrivateKey = createPrivateKey;\nfunction createPrivateKeySync() {\n while (true) {\n var pk = random_1.getRandomBytesSync(SECP256K1_PRIVATE_KEY_SIZE);\n if (secp256k1_1.privateKeyVerify(pk)) {\n return pk;\n }\n }\n}\nexports.createPrivateKeySync = createPrivateKeySync;\n__export(require(\"secp256k1\"));\n//# sourceMappingURL=secp256k1.js.map","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = /*@__PURE__*/ (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map\n","module.exports = require('./lib')(require('./lib/elliptic'))\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar randombytes = require(\"randombytes\");\nfunction getRandomBytes(bytes) {\n return new Promise(function (resolve, reject) {\n randombytes(bytes, function (err, resp) {\n if (err) {\n reject(err);\n return;\n }\n resolve(resp);\n });\n });\n}\nexports.getRandomBytes = getRandomBytes;\nfunction getRandomBytesSync(bytes) {\n return randombytes(bytes);\n}\nexports.getRandomBytesSync = getRandomBytesSync;\n//# sourceMappingURL=random.js.map","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","const keccakState = require('./keccak-state-unroll')\n\nfunction Keccak () {\n // much faster than `new Array(50)`\n this.state = [\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0\n ]\n\n this.blockSize = null\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.initialize = function (rate, capacity) {\n for (let i = 0; i < 50; ++i) this.state[i] = 0\n this.blockSize = rate / 8\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.absorb = function (data) {\n for (let i = 0; i < data.length; ++i) {\n this.state[~~(this.count / 4)] ^= data[i] << (8 * (this.count % 4))\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n}\n\nKeccak.prototype.absorbLastFewBits = function (bits) {\n this.state[~~(this.count / 4)] ^= bits << (8 * (this.count % 4))\n if ((bits & 0x80) !== 0 && this.count === (this.blockSize - 1)) keccakState.p1600(this.state)\n this.state[~~((this.blockSize - 1) / 4)] ^= 0x80 << (8 * ((this.blockSize - 1) % 4))\n keccakState.p1600(this.state)\n this.count = 0\n this.squeezing = true\n}\n\nKeccak.prototype.squeeze = function (length) {\n if (!this.squeezing) this.absorbLastFewBits(0x01)\n\n const output = Buffer.alloc(length)\n for (let i = 0; i < length; ++i) {\n output[i] = (this.state[~~(this.count / 4)] >>> (8 * (this.count % 4))) & 0xff\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n\n return output\n}\n\nKeccak.prototype.copy = function (dest) {\n for (let i = 0; i < 50; ++i) dest.state[i] = this.state[i]\n dest.blockSize = this.blockSize\n dest.count = this.count\n dest.squeezing = this.squeezing\n}\n\nmodule.exports = Keccak\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\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: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\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","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nlet WS = null;\ntry {\n WS = WebSocket;\n if (WS == null) {\n throw new Error(\"inject please\");\n }\n}\ncatch (error) {\n const logger = new Logger(version);\n WS = function () {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n };\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n//# sourceMappingURL=ws.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\nlet NextId = 1;\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\nexport class WebSocketProvider extends JsonRpcProvider {\n constructor(url, network) {\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n super(url, network);\n this._pollingInterval = -1;\n this._wsReady = false;\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n defineReadOnly(this, \"_requests\", {});\n defineReadOnly(this, \"_subs\", {});\n defineReadOnly(this, \"_subIds\", {});\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n // Stall sending requests until the socket is open...\n this._websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this._websocket.send(this._requests[id].payload);\n });\n };\n this._websocket.onmessage = (messageEvent) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n if (result.result !== undefined) {\n request.callback(null, result.result);\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n }\n else {\n let error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n }\n else {\n error = new Error(\"unknown error\");\n }\n request.callback(error, undefined);\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n }\n }\n else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result);\n }\n }\n else {\n console.warn(\"this should not happen\");\n }\n };\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) {\n fauxPoll.unref();\n }\n }\n detectNetwork() {\n return this._detectNetwork;\n }\n get pollingInterval() {\n return 0;\n }\n resetEventsBlock(blockNumber) {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n set pollingInterval(value) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n return null;\n });\n }\n set polling(value) {\n if (!value) {\n return;\n }\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n send(method, params) {\n const rid = NextId++;\n return new Promise((resolve, reject) => {\n function callback(error, result) {\n if (error) {\n return reject(error);\n }\n return resolve(result);\n }\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n this._requests[String(rid)] = { callback, payload };\n if (this._wsReady) {\n this._websocket.send(payload);\n }\n });\n }\n static defaultUrl() {\n return \"ws:/\\/localhost:8546\";\n }\n _subscribe(tag, param, processFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = yield subIdPromise;\n this._subs[subId] = { tag, processFunc };\n });\n }\n _startEvent(event) {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [\"newHeads\"], (result) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n case \"pending\":\n this._subscribe(\"pending\", [\"newPendingTransactions\"], (result) => {\n this.emit(\"pending\", result);\n });\n break;\n case \"filter\":\n this._subscribe(event.tag, [\"logs\", this._getFilter(event.filter)], (result) => {\n if (result.removed == null) {\n result.removed = false;\n }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n case \"tx\": {\n const emitReceipt = (event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) {\n return;\n }\n this.emit(hash, receipt);\n });\n };\n // In case it is already mined\n emitReceipt(event);\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [\"newHeads\"], (result) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n _stopEvent(event) {\n let tag = event.tag;\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n }\n else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n const subId = this._subIds[tag];\n if (!subId) {\n return;\n }\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) {\n return;\n }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [subId]);\n });\n }\n destroy() {\n return __awaiter(this, void 0, void 0, function* () {\n // Wait until we have connected before trying to disconnect\n if (this._websocket.readyState === WebSocket.CONNECTING) {\n yield (new Promise((resolve) => {\n this._websocket.onopen = function () {\n resolve(true);\n };\n this._websocket.onerror = function () {\n resolve(false);\n };\n }));\n }\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this._websocket.close(1000);\n });\n }\n}\n//# sourceMappingURL=websocket-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n detectNetwork() {\n const _super = Object.create(null, {\n detectNetwork: { get: () => super.detectNetwork }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let network = this.network;\n if (network == null) {\n network = yield _super.detectNetwork.call(this);\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n this.emit(\"network\", network, null);\n }\n }\n return network;\n });\n }\n}\nexport class UrlJsonRpcProvider extends StaticJsonRpcProvider {\n constructor(network, apiKey) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n // Normalize the Network and API Key\n network = getStatic(new.target, \"getNetwork\")(network);\n apiKey = getStatic(new.target, \"getApiKey\")(apiKey);\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n super(connection, network);\n if (typeof (apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n }\n else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n _startPending() {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n isCommunityResource() {\n return false;\n }\n getSigner(address) {\n return logger.throwError(\"API provider does not support signing\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"getSigner\" });\n }\n listAccounts() {\n return Promise.resolve([]);\n }\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey) {\n return apiKey;\n }\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network, apiKey) {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n//# sourceMappingURL=url-json-rpc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nexport class AlchemyWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new AlchemyProvider(network, apiKey);\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.alchemyapi.io/v2/\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.alchemyapi.io/v2/\";\n break;\n case \"kovan\":\n host = \"eth-kovan.alchemyapi.io/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arb-rinkeby.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-kovan\":\n host = \"opt-kovan.g.alchemy.com/v2/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=alchemy-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return host;\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = yield _super.perform.call(this, \"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n return _super.perform.call(this, method, params);\n });\n }\n}\n//# sourceMappingURL=cloudflare-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction) {\n const result = {};\n for (let key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n let value = transaction[key];\n if (key === \"type\" && value === 0) {\n continue;\n }\n // Quantity-types require no leading zero, unless 0\n if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {\n value = hexValue(hexlify(value));\n }\n else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${set.address}\",storageKeys:[\"${set.storageKeys.join('\",\"')}\"]}`;\n }).join(\",\") + \"]\";\n }\n else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\nfunction getResult(result) {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n if (result.status != 1 || result.message != \"OK\") {\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n return result.result;\n}\nfunction getJsonResult(result) {\n // This response indicates we are being throttled\n if (result && result.status == 0 && result.message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n if (result.error) {\n // @TODO: not any\n const error = new Error(result.error.message || \"unknown error\");\n if (result.error.code) {\n error.code = result.error.code;\n }\n if (result.error.data) {\n error.data = result.error.data;\n }\n throw error;\n }\n return result.result;\n}\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag) {\n if (blockTag === \"pending\") {\n throw new Error(\"pending not supported\");\n }\n if (blockTag === \"latest\") {\n return blockTag;\n }\n return parseInt(blockTag.substring(2), 16);\n}\nconst defaultApiKey = \"9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB\";\nfunction checkError(method, error, transaction) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) {\n data = \"0x\" + data.replace(/^.*0x/i, \"\");\n }\n if (isHexString(data)) {\n return data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nexport class EtherscanProvider extends BaseProvider {\n constructor(network, apiKey) {\n logger.checkNew(new.target, EtherscanProvider);\n super(network);\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || defaultApiKey);\n }\n getBaseUrl() {\n switch (this.network ? this.network.name : \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"ropsten\":\n return \"https:/\\/api-ropsten.etherscan.io\";\n case \"rinkeby\":\n return \"https:/\\/api-rinkeby.etherscan.io\";\n case \"kovan\":\n return \"https:/\\/api-kovan.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n default:\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", name);\n }\n getUrl(module, params) {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${key}=${value}`;\n }\n return accum;\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : \"\");\n return `${this.baseUrl}/api?module=${module}${query}${apiKey}`;\n }\n getPostUrl() {\n return `${this.baseUrl}/api`;\n }\n getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n fetch(module, params, post) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = (post ? this.getPostUrl() : this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params) : null);\n const procFunc = (module === \"proxy\") ? getJsonResult : getResult;\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n const connection = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt, url) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n let payloadStr = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${key}=${payload[key]}`;\n }).join(\"&\");\n }\n const result = yield fetchJson(connection, payloadStr, procFunc || getJsonResult);\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n return result;\n });\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.network;\n });\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\" : \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n case \"getLogs\": {\n const args = { action: \"getLogs\" };\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof (topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n const logs = yield this.fetch(\"logs\", args);\n // Cache txHash => blockHash\n let blocks = {};\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) {\n continue;\n }\n if (blocks[log.blockNumber] == null) {\n const block = yield this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n return logs;\n }\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") {\n return 0.0;\n }\n return parseFloat((yield this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n default:\n break;\n }\n return _super.perform.call(this, method, params);\n });\n }\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n getHistory(addressOrName, startBlock, endBlock) {\n return __awaiter(this, void 0, void 0, function* () {\n const params = {\n action: \"txlist\",\n address: (yield this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0 : startBlock),\n endblock: ((endBlock == null) ? 99999999 : endBlock),\n sort: \"asc\"\n };\n const result = yield this.fetch(\"account\", params);\n return result.map((tx) => {\n [\"contractAddress\", \"to\"].forEach(function (key) {\n if (tx[key] == \"\") {\n delete tx[key];\n }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) {\n item.timestamp = parseInt(tx.timeStamp);\n }\n return item;\n });\n });\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=etherscan-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction now() { return (new Date()).getTime(); }\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks) {\n let result = null;\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n // Null! We do not know our network; bail.\n if (network == null) {\n return null;\n }\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n }\n else {\n result = network;\n }\n }\n return result;\n}\nfunction median(values, maxDelta) {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n return (a + b) / 2;\n}\nfunction serialize(value) {\n if (value === null) {\n return \"null\";\n }\n else if (typeof (value) === \"number\" || typeof (value) === \"boolean\") {\n return JSON.stringify(value);\n }\n else if (typeof (value) === \"string\") {\n return value;\n }\n else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n }\n else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n }\n else if (typeof (value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof (v) === \"function\") {\n v = \"[function]\";\n }\n else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n throw new Error(\"unknown value type: \" + typeof (value));\n}\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n;\nfunction stall(duration) {\n let cancel = null;\n let timer = null;\n let promise = (new Promise((resolve) => {\n cancel = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n };\n timer = setTimeout(cancel, duration);\n }));\n const wait = (func) => {\n promise = promise.then(func);\n return promise;\n };\n function getPromise() {\n return promise;\n }\n return { cancel, getPromise, wait };\n}\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n;\nfunction exposeDebugConfig(config, now) {\n const result = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) {\n result.start = config.start;\n }\n if (now) {\n result.duration = (now - config.start);\n }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n }\n else {\n result.result = config.result || null;\n }\n }\n return result;\n}\nfunction normalizedTally(normalize, quorum) {\n return function (configs) {\n // Count the votes for each result\n const tally = {};\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) {\n tally[value] = { count: 0, result: c.result };\n }\n tally[value].count++;\n });\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n // No quroum\n return undefined;\n };\n}\nfunction getProcessFunc(provider, method, params) {\n let normalize = serialize;\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function (configs) {\n const values = configs.map((c) => c.result);\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) {\n return undefined;\n }\n blockNumber = Math.ceil(blockNumber);\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) {\n blockNumber++;\n }\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n return provider._highestBlockNumber;\n };\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function (configs) {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n };\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function (configs) {\n return median(configs.map((c) => c.result));\n };\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function (tx) {\n if (tx == null) {\n return null;\n }\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n };\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n }\n else {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n return serialize(block);\n };\n }\n break;\n default:\n throw new Error(\"unknown method: \" + method);\n }\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n}\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nfunction waitForSync(config, blockNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = (config.provider);\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function () {\n // We are synced\n if (provider.blockNumber >= blockNumber) {\n return resolve(provider);\n }\n // We're done; just quit\n if (config.cancelled) {\n return resolve(null);\n }\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n });\n}\nfunction getRunner(config, currentBlockNumber, method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n let provider = config.provider;\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if (provider.getEtherPrice) {\n return provider.getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\" : \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getLogs(filter);\n }\n }\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n });\n}\nexport class FallbackProvider extends BaseProvider {\n constructor(providers, quorum) {\n logger.checkNew(new.target, FallbackProvider);\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n const providerConfigs = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n const config = shallowCopy(configOrProvider);\n if (config.priority == null) {\n config.priority = 1;\n }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n }\n if (config.weight == null) {\n config.weight = 1;\n }\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${index}].weight`, weight);\n }\n return Object.freeze(config);\n });\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n if (quorum == null) {\n quorum = total / 2;\n }\n else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n // Are all providers' networks are known\n let networkOrReady = checkNetworks(providerConfigs.map((c) => (c.provider).network));\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n super(networkOrReady);\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n this._highestBlockNumber = -1;\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const networks = yield Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n });\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results = yield Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof (result) === \"string\") {\n return result;\n }\n }\n // They were all an error; pick the first error\n throw results[0];\n }\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n yield this.getBlockNumber();\n }\n const processFunc = getProcessFunc(this, method, params);\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n const currentBlockNumber = this._highestBlockNumber;\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n const rid = nextRid++;\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n }, (error) => {\n config.done = true;\n config.error = error;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n inflightWeight += config.weight;\n }\n // Wait for anything meaningful to finish or stall out\n const waiting = [];\n configs.forEach((c) => {\n if (c.done || !c.runner) {\n return;\n }\n waiting.push(c.runner);\n if (c.staller) {\n waiting.push(c.staller.getPromise());\n }\n });\n if (waiting.length) {\n yield Promise.race(waiting);\n }\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) {\n yield stall(100).getPromise();\n }\n first = false;\n }\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) {\n return accum;\n }\n const code = (c.error).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) {\n accum[code] = { error: c.error, weight: 0 };\n }\n accum[code].weight += c.weight;\n }\n return accum;\n }, ({}));\n Object.keys(errors).forEach((errorCode) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) {\n return;\n }\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n const e = (tally.error);\n const props = {};\n ForwardProperties.forEach((name) => {\n if (e[name] == null) {\n return;\n }\n props[name] = e[name];\n });\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) {\n break;\n }\n }\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n });\n }\n}\n//# sourceMappingURL=fallback-provider.js.map","\"use strict\";\nconst IpcProvider = null;\nexport { IpcProvider };\n//# sourceMappingURL=ipc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultProjectId = \"84842078b09946638c03157f83405213\";\nexport class InfuraWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\nexport class InfuraProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n const apiKeyObj = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n if (apiKey == null) {\n return apiKeyObj;\n }\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n }\n else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof (apiKey.projectId) === \"string\"), \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof (apiKey.projectSecret) === \"string\"), \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n }\n else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n apiKeyObj.apiKey = apiKeyObj.projectId;\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"ropsten\":\n host = \"ropsten.infura.io\";\n break;\n case \"rinkeby\":\n host = \"rinkeby.infura.io\";\n break;\n case \"kovan\":\n host = \"kovan.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-kovan\":\n host = \"optimism-kovan.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arbitrum-rinkeby.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt, url) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\n//# sourceMappingURL=infura-provider.js.map","import { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// Experimental\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n const inflightRequest = { request, resolve: null, reject: null };\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n this._pendingBatch.push(inflightRequest);\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n }\n else {\n inflightRequest.resolve(payload.result);\n }\n });\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n }, 10);\n }\n return promise;\n }\n}\n//# sourceMappingURL=json-rpc-batch-provider.js.map","/* istanbul ignore file */\n\"use strict\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n static getUrl(network, apiKey) {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n//# sourceMappingURL=nodesmith-provider.js.map","\"use strict\";\nimport { getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// These are load-balancer-based application IDs\nconst defaultApplicationIds = {\n homestead: \"6004bcd10040261633ade990\",\n ropsten: \"6004bd4d0040261633ade991\",\n rinkeby: \"6004bda20040261633ade994\",\n goerli: \"6004bd860040261633ade992\",\n};\nexport class PocketProvider extends UrlJsonRpcProvider {\n constructor(network, apiKey) {\n // We need a bit of creativity in the constructor because\n // Pocket uses different default API keys based on the network\n if (apiKey == null) {\n const n = getStatic(new.target, \"getNetwork\")(network);\n if (n) {\n const applicationId = defaultApplicationIds[n.name];\n if (applicationId) {\n apiKey = {\n applicationId: applicationId,\n loadBalancer: true\n };\n }\n }\n // If there was any issue above, we don't know this network\n if (apiKey == null) {\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n }\n super(network, apiKey);\n }\n static getApiKey(apiKey) {\n // Most API Providers allow null to get the default configuration, but\n // Pocket requires the network to decide the default provider, so we\n // rely on hijacking the constructor to add a sensible default for us\n if (apiKey == null) {\n logger.throwArgumentError(\"PocketProvider.getApiKey does not support null apiKey\", \"apiKey\", apiKey);\n }\n const apiKeyObj = {\n applicationId: null,\n loadBalancer: false,\n applicationSecretKey: null\n };\n // Parse applicationId and applicationSecretKey\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n }\n else if (apiKey.applicationSecretKey != null) {\n logger.assertArgument((typeof (apiKey.applicationId) === \"string\"), \"applicationSecretKey requires an applicationId\", \"applicationId\", apiKey.applicationId);\n logger.assertArgument((typeof (apiKey.applicationSecretKey) === \"string\"), \"invalid applicationSecretKey\", \"applicationSecretKey\", \"[REDACTED]\");\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n apiKeyObj.loadBalancer = !!apiKey.loadBalancer;\n }\n else if (apiKey.applicationId) {\n logger.assertArgument((typeof (apiKey.applicationId) === \"string\"), \"apiKey.applicationId must be a string\", \"apiKey.applicationId\", apiKey.applicationId);\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.loadBalancer = !!apiKey.loadBalancer;\n }\n else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n let url = null;\n if (apiKey.loadBalancer) {\n url = `https:/\\/${host}/v1/lb/${apiKey.applicationId}`;\n }\n else {\n url = `https:/\\/${host}/v1/${apiKey.applicationId}`;\n }\n const connection = { url };\n // Initialize empty headers\n connection.headers = {};\n // Apply application secret key\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.applicationId === defaultApplicationIds[this.network.name]);\n }\n}\n//# sourceMappingURL=pocket-provider.js.map","\"use strict\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { BaseProvider, Resolver } from \"./base-provider\";\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n////////////////////////\n// Helper Functions\nfunction getDefaultProvider(network, options) {\n if (network == null) {\n network = \"homestead\";\n }\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof (network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1]) {\n case \"http\":\n return new JsonRpcProvider(network);\n case \"ws\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n return n._defaultProvider({\n FallbackProvider,\n AlchemyProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n IpcProvider,\n }, options);\n}\n////////////////////////\n// Exports\nexport { \n// Abstract Providers (or Abstract-ish)\nProvider, BaseProvider, Resolver, UrlJsonRpcProvider, \n///////////////////////\n// Concrete Providers\nFallbackProvider, AlchemyProvider, AlchemyWebSocketProvider, CloudflareProvider, EtherscanProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, JsonRpcBatchProvider, NodesmithProvider, PocketProvider, StaticJsonRpcProvider, Web3Provider, WebSocketProvider, IpcProvider, \n///////////////////////\n// Signer\nJsonRpcSigner, \n///////////////////////\n// Functions\ngetDefaultProvider, getNetwork, isCommunityResource, isCommunityResourcable, showThrottleMessage, \n///////////////////////\n// Objects\nFormatter };\n//# sourceMappingURL=index.js.map","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// treeify.js\n// Luke Plaster \n// https://github.com/notatestuser/treeify.js\n\n// do the universal module definition dance\n(function (root, factory) {\n\n if (typeof exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n define(factory);\n } else {\n root.treeify = factory();\n }\n\n}(this, function() {\n\n function makePrefix(key, last) {\n var str = (last ? '└' : '├');\n if (key) {\n str += '─ ';\n } else {\n str += '──┐';\n }\n return str;\n }\n\n function filterKeys(obj, hideFunctions) {\n var keys = [];\n for (var branch in obj) {\n // always exclude anything in the object's prototype\n if (!obj.hasOwnProperty(branch)) {\n continue;\n }\n // ... and hide any keys mapped to functions if we've been told to\n if (hideFunctions && ((typeof obj[branch])===\"function\")) {\n continue;\n }\n keys.push(branch);\n }\n return keys;\n }\n\n function growBranch(key, root, last, lastStates, showValues, hideFunctions, callback) {\n var line = '', index = 0, lastKey, circular, lastStatesCopy = lastStates.slice(0);\n\n if (lastStatesCopy.push([ root, last ]) && lastStates.length > 0) {\n // based on the \"was last element\" states of whatever we're nested within,\n // we need to append either blankness or a branch to our line\n lastStates.forEach(function(lastState, idx) {\n if (idx > 0) {\n line += (lastState[1] ? ' ' : '│') + ' ';\n }\n if ( ! circular && lastState[0] === root) {\n circular = true;\n }\n });\n\n // the prefix varies based on whether the key contains something to show and\n // whether we're dealing with the last element in this collection\n line += makePrefix(key, last) + key;\n\n // append values and the circular reference indicator\n showValues && (typeof root !== 'object' || root instanceof Date) && (line += ': ' + root);\n circular && (line += ' (circular ref.)');\n\n callback(line);\n }\n\n // can we descend into the next item?\n if ( ! circular && typeof root === 'object') {\n var keys = filterKeys(root, hideFunctions);\n keys.forEach(function(branch){\n // the last key is always printed with a different prefix, so we'll need to know if we have it\n lastKey = ++index === keys.length;\n\n // hold your breath for recursive action\n growBranch(branch, root[branch], lastKey, lastStatesCopy, showValues, hideFunctions, callback);\n });\n }\n };\n\n // --------------------\n\n var Treeify = {};\n\n // Treeify.asLines\n // --------------------\n // Outputs the tree line-by-line, calling the lineCallback when each one is available.\n\n Treeify.asLines = function(obj, showValues, hideFunctions, lineCallback) {\n /* hideFunctions and lineCallback are curried, which means we don't break apps using the older form */\n var hideFunctionsArg = typeof hideFunctions !== 'function' ? hideFunctions : false;\n growBranch('.', obj, false, [], showValues, hideFunctionsArg, lineCallback || hideFunctions);\n };\n\n // Treeify.asTree\n // --------------------\n // Outputs the entire tree, returning it as a string with line breaks.\n\n Treeify.asTree = function(obj, showValues, hideFunctions) {\n var tree = '';\n growBranch('.', obj, false, [], showValues, hideFunctions, function(line) {\n tree += line + '\\n';\n });\n return tree;\n };\n\n // --------------------\n\n return Treeify;\n\n}));\n","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){for(var t;t=i.shift();)if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=null},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{g(n)}catch(n){u=n}}),u&&n.__e(u,r.__v))};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\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","// 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}","export const version = \"wallet/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { arrayify, concat, hexDataSlice, isHexString, joinSignature } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction isAccount(value) {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\nfunction hasMnemonic(value) {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\nexport class Wallet extends Signer {\n constructor(privateKey, provider) {\n logger.checkNew(new.target, Wallet);\n super();\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => ({\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n }\n else {\n defineReadOnly(this, \"_mnemonic\", () => null);\n }\n }\n else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => privateKey);\n }\n else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof (privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n defineReadOnly(this, \"_mnemonic\", () => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n defineReadOnly(this, \"provider\", provider || null);\n }\n get mnemonic() { return this._mnemonic(); }\n get privateKey() { return this._signingKey().privateKey; }\n get publicKey() { return this._signingKey().publicKey; }\n getAddress() {\n return Promise.resolve(this.address);\n }\n connect(provider) {\n return new Wallet(this, provider);\n }\n signTransaction(transaction) {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n });\n }\n encrypt(password, options, progressCallback) {\n if (typeof (options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (progressCallback && typeof (progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n if (!options) {\n options = {};\n }\n return encryptKeystore(this, password, options, progressCallback);\n }\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options) {\n let entropy = randomBytes(16);\n if (!options) {\n options = {};\n }\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([entropy, options.extraEntropy])), 0, 16));\n }\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n static fromEncryptedJson(json, password, progressCallback) {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n static fromEncryptedJsonSync(json, password) {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n static fromMnemonic(mnemonic, path, wordlist) {\n if (!path) {\n path = defaultPath;\n }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\nexport function verifyMessage(message, signature) {\n return recoverAddress(hashMessage(message), signature);\n}\nexport function verifyTypedData(domain, types, value, signature) {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n//# sourceMappingURL=index.js.map","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, 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} else {\n // old school shim for old browsers\n module.exports = 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","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}","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}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar nextHandle = 1;\nvar RESOLVED = /*@__PURE__*/ (function () { return /*@__PURE__*/ Promise.resolve(); })();\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexport var TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map\n","/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map\n","/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */\nimport { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = /*@__PURE__*/ new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;\n//# sourceMappingURL=asap.js.map\n","const inherits = require('util').inherits\nconst Transaction = require('ethereumjs-tx')\nconst ethUtil = require('ethereumjs-util')\nconst Subprovider = require('./subprovider.js')\nconst blockTagForPayload = require('../util/rpc-cache-utils').blockTagForPayload\n\nmodule.exports = NonceTrackerSubprovider\n\n// handles the following RPC methods:\n// eth_getTransactionCount (pending only)\n//\n// observes the following RPC methods:\n// eth_sendRawTransaction\n// evm_revert (to clear the nonce cache)\n\ninherits(NonceTrackerSubprovider, Subprovider)\n\nfunction NonceTrackerSubprovider(opts){\n const self = this\n\n self.nonceCache = {}\n}\n\nNonceTrackerSubprovider.prototype.handleRequest = function(payload, next, end){\n const self = this\n\n switch(payload.method) {\n\n case 'eth_getTransactionCount':\n var blockTag = blockTagForPayload(payload)\n var address = payload.params[0].toLowerCase()\n var cachedResult = self.nonceCache[address]\n // only handle requests against the 'pending' blockTag\n if (blockTag === 'pending') {\n // has a result\n if (cachedResult) {\n end(null, cachedResult)\n // fallthrough then populate cache\n } else {\n next(function(err, result, cb){\n if (err) return cb()\n if (self.nonceCache[address] === undefined) {\n self.nonceCache[address] = result\n }\n cb()\n })\n }\n } else {\n next()\n }\n return\n\n case 'eth_sendRawTransaction':\n // allow the request to continue normally\n next(function(err, result, cb){\n // only update local nonce if tx was submitted correctly\n if (err) return cb()\n // parse raw tx\n var rawTx = payload.params[0]\n var stripped = ethUtil.stripHexPrefix(rawTx)\n var rawData = Buffer.from(ethUtil.stripHexPrefix(rawTx), 'hex')\n var tx = new Transaction(Buffer.from(ethUtil.stripHexPrefix(rawTx), 'hex'))\n // extract address\n var address = '0x'+tx.getSenderAddress().toString('hex').toLowerCase()\n // extract nonce and increment\n var nonce = ethUtil.bufferToInt(tx.nonce)\n nonce++\n // hexify and normalize\n var hexNonce = nonce.toString(16)\n if (hexNonce.length%2) hexNonce = '0'+hexNonce\n hexNonce = '0x'+hexNonce\n // dont update our record on the nonce until the submit was successful\n // update cache\n self.nonceCache[address] = hexNonce\n cb()\n })\n return\n\n // Clear cache on a testrpc revert\n case 'evm_revert':\n self.nonceCache = {}\n next()\n return\n\n default:\n next()\n return\n\n }\n}\n","// Extracted from https://github.com/ethereumjs/ethereumjs-util and stripped out irrelevant code\n// Original code licensed under the Mozilla Public License Version 2.0\n\nconst createKeccakHash = require('keccak/js')\nconst BN = require('bn.js')\n\n/**\n * Returns a buffer filled with 0s\n * @method zeros\n * @param {Number} bytes the number of bytes the buffer should be\n * @return {Buffer}\n */\nfunction zeros (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0)\n}\n\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @method setLength\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @param {Boolean} [right=false] whether to start padding form the left or right\n * @return {Buffer|Array}\n */\nfunction setLength (msg, length, right) {\n const buf = zeros(length)\n msg = toBuffer(msg)\n if (right) {\n if (msg.length < length) {\n msg.copy(buf)\n return buf\n }\n return msg.slice(0, length)\n } else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length)\n return buf\n }\n return msg.slice(-length)\n }\n}\n\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @return {Buffer|Array}\n */\nfunction setLengthRight (msg, length) {\n return setLength(msg, length, true)\n}\n\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.\n * @param {*} v the value\n */\nfunction toBuffer (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v)\n } else if (typeof v === 'string') {\n if (isHexString(v)) {\n v = Buffer.from(padToEven(stripHexPrefix(v)), 'hex')\n } else {\n v = Buffer.from(v)\n }\n } else if (typeof v === 'number') {\n v = intToBuffer(v)\n } else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0)\n } else if (BN.isBN(v)) {\n v = v.toArrayLike(Buffer)\n } else if (v.toArray) {\n // converts a BN to a Buffer\n v = Buffer.from(v.toArray())\n } else {\n throw new Error('invalid type')\n }\n }\n return v\n}\n\n/**\n * Converts a `Buffer` into a hex `String`\n * @param {Buffer} buf\n * @return {String}\n */\nfunction bufferToHex (buf) {\n buf = toBuffer(buf)\n return '0x' + buf.toString('hex')\n}\n\n/**\n * Creates Keccak hash of the input\n * @param {Buffer|Array|String|Number} a the input data\n * @param {Number} [bits=256] the Keccak width\n * @return {Buffer}\n */\nfunction keccak (a, bits) {\n a = toBuffer(a)\n if (!bits) bits = 256\n\n return createKeccakHash('keccak' + bits).update(a).digest()\n}\n\nfunction padToEven (str) {\n return str.length % 2 ? '0' + str : str\n}\n\nfunction isHexString (str) {\n return typeof str === 'string' && str.match(/^0x[0-9A-Fa-f]*$/)\n}\n\nfunction stripHexPrefix (str) {\n if (typeof str === 'string' && str.startsWith('0x')) {\n return str.slice(2)\n }\n return str\n}\n\nmodule.exports = {\n zeros,\n setLength,\n setLengthRight,\n isHexString,\n stripHexPrefix,\n toBuffer,\n bufferToHex,\n keccak\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = parallelLimit;\n\nvar _eachOf = require('./eachOf');\n\nvar _eachOf2 = _interopRequireDefault(_eachOf);\n\nvar _parallel = require('./internal/parallel');\n\nvar _parallel2 = _interopRequireDefault(_parallel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the\n * execution of other tasks when a task fails.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n *\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n */\nfunction parallelLimit(tasks, callback) {\n (0, _parallel2.default)(_eachOf2.default, tasks, callback);\n}\nmodule.exports = exports['default'];","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = /*@__PURE__*/ (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = /*@__PURE__*/ (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t i--;\n\t }\n\t data.sigBytes = i + 1;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));","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","export function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSON.stringify(value);\n}\n//# sourceMappingURL=index.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","const API_URL = \"https://registry.walletconnect.org\";\nexport function getWalletRegistryUrl() {\n return API_URL + \"/data/wallets.json\";\n}\nexport function getDappRegistryUrl() {\n return API_URL + \"/data/dapps.json\";\n}\nexport function getAppLogoUrl(id) {\n return API_URL + \"/logo/sm/\" + id + \".jpeg\";\n}\nexport function formatMobileRegistryEntry(entry, platform = \"mobile\") {\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: entry.id ? getAppLogoUrl(entry.id) : \"\",\n universalLink: entry[platform].universal || \"\",\n deepLink: entry[platform].native || \"\",\n };\n}\nexport function formatMobileRegistry(registry, platform = \"mobile\") {\n return Object.values(registry)\n .filter(entry => !!entry[platform].universal || !!entry[platform].native)\n .map((entry) => formatMobileRegistryEntry(entry, platform));\n}\n//# sourceMappingURL=registry.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nexports.default = {};\nmodule.exports = exports[\"default\"];","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t var block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(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.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\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 = /*@__PURE__*/ (function (_super) {\n tslib_1.__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 destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _doParallel = require('./internal/doParallel');\n\nvar _doParallel2 = _interopRequireDefault(_doParallel);\n\nvar _map = require('./internal/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines).\n *\n * @name map\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n */\nexports.default = (0, _doParallel2.default)(_map2.default);\nmodule.exports = exports['default'];","module.exports = require('./lib/_stream_writable.js');\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QRCode = void 0;\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst qrcode_svg_1 = __importDefault(require(\"../vendor-js/qrcode-svg\"));\nconst QRCode = props => {\n const [svg, setSvg] = (0, hooks_1.useState)(\"\");\n (0, hooks_1.useEffect)(() => {\n var _a, _b;\n const qrcode = new qrcode_svg_1.default({\n content: props.content,\n background: props.bgColor || \"#ffffff\",\n color: props.fgColor || \"#000000\",\n container: \"svg\",\n ecl: \"M\",\n width: (_a = props.width) !== null && _a !== void 0 ? _a : 256,\n height: (_b = props.height) !== null && _b !== void 0 ? _b : 256,\n padding: 0,\n image: props.image\n });\n const base64 = Buffer.from(qrcode.svg(), \"utf8\").toString(\"base64\");\n setSvg(`data:image/svg+xml;base64,${base64}`);\n });\n return svg ? (0, preact_1.h)(\"img\", { src: svg, alt: \"QR Code\" }) : null;\n};\nexports.QRCode = QRCode;\n","/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nexport class BaseX {\n constructor(alphabet) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n defineReadOnly(this, \"_alphabetMap\", {});\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n encode(value) {\n let source = arrayify(value);\n if (source.length === 0) {\n return \"\";\n }\n let digits = [0];\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n let string = \"\";\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n return string;\n }\n decode(value) {\n if (typeof (value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n let bytes = [];\n if (value.length === 0) {\n return new Uint8Array(bytes);\n }\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0);\n }\n return arrayify(new Uint8Array(bytes.reverse()));\n }\n}\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\nexport { Base32, Base58 };\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAsyncMiddleware = void 0;\n/**\n * JsonRpcEngine only accepts callback-based middleware directly.\n * createAsyncMiddleware exists to enable consumers to pass in async middleware\n * functions.\n *\n * Async middleware have no \"end\" function. Instead, they \"end\" if they return\n * without calling \"next\". Rather than passing in explicit return handlers,\n * async middleware can simply await \"next\", and perform operations on the\n * response object when execution resumes.\n *\n * To accomplish this, createAsyncMiddleware passes the async middleware a\n * wrapped \"next\" function. That function calls the internal JsonRpcEngine\n * \"next\" function with a return handler that resolves a promise when called.\n *\n * The return handler will always be called. Its resolution of the promise\n * enables the control flow described above.\n */\nfunction createAsyncMiddleware(asyncMiddleware) {\n return async (req, res, next, end) => {\n // nextPromise is the key to the implementation\n // it is resolved by the return handler passed to the\n // \"next\" function\n let resolveNextPromise;\n const nextPromise = new Promise((resolve) => {\n resolveNextPromise = resolve;\n });\n let returnHandlerCallback = null;\n let nextWasCalled = false;\n // This will be called by the consumer's async middleware.\n const asyncNext = async () => {\n nextWasCalled = true;\n // We pass a return handler to next(). When it is called by the engine,\n // the consumer's async middleware will resume executing.\n // eslint-disable-next-line node/callback-return\n next((runReturnHandlersCallback) => {\n // This callback comes from JsonRpcEngine._runReturnHandlers\n returnHandlerCallback = runReturnHandlersCallback;\n resolveNextPromise();\n });\n await nextPromise;\n };\n try {\n await asyncMiddleware(req, res, asyncNext);\n if (nextWasCalled) {\n await nextPromise; // we must wait until the return handler is called\n returnHandlerCallback(null);\n }\n else {\n end(null);\n }\n }\n catch (error) {\n if (returnHandlerCallback) {\n returnHandlerCallback(error);\n }\n else {\n end(error);\n }\n }\n };\n}\nexports.createAsyncMiddleware = createAsyncMiddleware;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXN5bmNNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZUFzeW5jTWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQkE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsZUFBNkM7SUFFN0MsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDbkMsK0NBQStDO1FBQy9DLHFEQUFxRDtRQUNyRCxrQkFBa0I7UUFDbEIsSUFBSSxrQkFBOEIsQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUkscUJBQXFCLEdBQVksSUFBSSxDQUFDO1FBQzFDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUxQiwwREFBMEQ7UUFDMUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDM0IsYUFBYSxHQUFHLElBQUksQ0FBQztZQUVyQix1RUFBdUU7WUFDdkUseURBQXlEO1lBQ3pELGdEQUFnRDtZQUNoRCxJQUFJLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxFQUFFO2dCQUNqQyw0REFBNEQ7Z0JBQzVELHFCQUFxQixHQUFHLHlCQUF5QixDQUFDO2dCQUNsRCxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxXQUFXLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBRUYsSUFBSTtZQUNGLE1BQU0sZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFM0MsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLE1BQU0sV0FBVyxDQUFDLENBQUMsa0RBQWtEO2dCQUNwRSxxQkFBK0MsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4RDtpQkFBTTtnQkFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDWDtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLHFCQUFxQixFQUFFO2dCQUN4QixxQkFBK0MsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6RDtpQkFBTTtnQkFDTCxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDWjtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQS9DRCxzREErQ0MifQ==","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasNextTick = exports.hasSetImmediate = undefined;\nexports.fallback = fallback;\nexports.wrap = wrap;\n\nvar _slice = require('./slice');\n\nvar _slice2 = _interopRequireDefault(_slice);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return function (fn /*, ...args*/) {\n var args = (0, _slice2.default)(arguments, 1);\n defer(function () {\n fn.apply(null, args);\n });\n };\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","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","const domain = \"walletconnect.org\";\nconst alphanumerical = \"abcdefghijklmnopqrstuvwxyz0123456789\";\nconst bridges = alphanumerical.split(\"\").map(char => `https://${char}.bridge.walletconnect.org`);\nexport function extractHostname(url) {\n let hostname = url.indexOf(\"//\") > -1 ? url.split(\"/\")[2] : url.split(\"/\")[0];\n hostname = hostname.split(\":\")[0];\n hostname = hostname.split(\"?\")[0];\n return hostname;\n}\nexport function extractRootDomain(url) {\n return extractHostname(url)\n .split(\".\")\n .slice(-2)\n .join(\".\");\n}\nexport function randomBridgeIndex() {\n return Math.floor(Math.random() * bridges.length);\n}\nexport function selectRandomBridgeUrl() {\n return bridges[randomBridgeIndex()];\n}\nexport function shouldSelectRandomly(url) {\n return extractRootDomain(url) === domain;\n}\nexport function getBridgeUrl(url) {\n if (shouldSelectRandomly(url)) {\n return selectRandomBridgeUrl();\n }\n return url;\n}\n//# sourceMappingURL=url.js.map","import { parsePersonalSign, parseTransactionData, convertArrayBufferToHex, convertHexToArrayBuffer, getClientMeta, payloadId, uuid, formatRpcError, parseWalletConnectUri, convertNumberToHex, isJsonRpcResponseSuccess, isJsonRpcResponseError, isSilentPayload, getLocal, signingMethods, mobileLinkChoiceKey, isMobile, removeLocal, } from \"@walletconnect/utils\";\nimport SocketTransport from \"@walletconnect/socket-transport\";\nimport { ERROR_SESSION_CONNECTED, ERROR_SESSION_DISCONNECTED, ERROR_SESSION_REJECTED, ERROR_MISSING_JSON_RPC, ERROR_MISSING_RESULT, ERROR_MISSING_ERROR, ERROR_MISSING_METHOD, ERROR_MISSING_ID, ERROR_INVALID_RESPONSE, ERROR_INVALID_URI, ERROR_MISSING_REQUIRED, ERROR_QRCODE_MODAL_NOT_PROVIDED, ERROR_QRCODE_MODAL_USER_CLOSED, } from \"./errors\";\nimport EventManager from \"./events\";\nimport SessionStorage from \"./storage\";\nimport { getBridgeUrl } from \"./url\";\nclass Connector {\n constructor(opts) {\n this.protocol = \"wc\";\n this.version = 1;\n this._bridge = \"\";\n this._key = null;\n this._clientId = \"\";\n this._clientMeta = null;\n this._peerId = \"\";\n this._peerMeta = null;\n this._handshakeId = 0;\n this._handshakeTopic = \"\";\n this._connected = false;\n this._accounts = [];\n this._chainId = 0;\n this._networkId = 0;\n this._rpcUrl = \"\";\n this._eventManager = new EventManager();\n this._clientMeta = getClientMeta() || opts.connectorOpts.clientMeta || null;\n this._cryptoLib = opts.cryptoLib;\n this._sessionStorage = opts.sessionStorage || new SessionStorage(opts.connectorOpts.storageId);\n this._qrcodeModal = opts.connectorOpts.qrcodeModal;\n this._qrcodeModalOptions = opts.connectorOpts.qrcodeModalOptions;\n this._signingMethods = [...signingMethods, ...(opts.connectorOpts.signingMethods || [])];\n if (!opts.connectorOpts.bridge && !opts.connectorOpts.uri && !opts.connectorOpts.session) {\n throw new Error(ERROR_MISSING_REQUIRED);\n }\n if (opts.connectorOpts.bridge) {\n this.bridge = getBridgeUrl(opts.connectorOpts.bridge);\n }\n if (opts.connectorOpts.uri) {\n this.uri = opts.connectorOpts.uri;\n }\n const session = opts.connectorOpts.session || this._getStorageSession();\n if (session) {\n this.session = session;\n }\n if (this.handshakeId) {\n this._subscribeToSessionResponse(this.handshakeId, \"Session request rejected\");\n }\n this._transport =\n opts.transport ||\n new SocketTransport({\n protocol: this.protocol,\n version: this.version,\n url: this.bridge,\n subscriptions: [this.clientId],\n });\n this._subscribeToInternalEvents();\n this._initTransport();\n if (opts.connectorOpts.uri) {\n this._subscribeToSessionRequest();\n }\n if (opts.pushServerOpts) {\n this._registerPushServer(opts.pushServerOpts);\n }\n }\n set bridge(value) {\n if (!value) {\n return;\n }\n this._bridge = value;\n }\n get bridge() {\n return this._bridge;\n }\n set key(value) {\n if (!value) {\n return;\n }\n const key = convertHexToArrayBuffer(value);\n this._key = key;\n }\n get key() {\n if (this._key) {\n const key = convertArrayBufferToHex(this._key, true);\n return key;\n }\n return \"\";\n }\n set clientId(value) {\n if (!value) {\n return;\n }\n this._clientId = value;\n }\n get clientId() {\n let clientId = this._clientId;\n if (!clientId) {\n clientId = this._clientId = uuid();\n }\n return this._clientId;\n }\n set peerId(value) {\n if (!value) {\n return;\n }\n this._peerId = value;\n }\n get peerId() {\n return this._peerId;\n }\n set clientMeta(value) {\n }\n get clientMeta() {\n let clientMeta = this._clientMeta;\n if (!clientMeta) {\n clientMeta = this._clientMeta = getClientMeta();\n }\n return clientMeta;\n }\n set peerMeta(value) {\n this._peerMeta = value;\n }\n get peerMeta() {\n const peerMeta = this._peerMeta;\n return peerMeta;\n }\n set handshakeTopic(value) {\n if (!value) {\n return;\n }\n this._handshakeTopic = value;\n }\n get handshakeTopic() {\n return this._handshakeTopic;\n }\n set handshakeId(value) {\n if (!value) {\n return;\n }\n this._handshakeId = value;\n }\n get handshakeId() {\n return this._handshakeId;\n }\n get uri() {\n const _uri = this._formatUri();\n return _uri;\n }\n set uri(value) {\n if (!value) {\n return;\n }\n const { handshakeTopic, bridge, key } = this._parseUri(value);\n this.handshakeTopic = handshakeTopic;\n this.bridge = bridge;\n this.key = key;\n }\n set chainId(value) {\n this._chainId = value;\n }\n get chainId() {\n const chainId = this._chainId;\n return chainId;\n }\n set networkId(value) {\n this._networkId = value;\n }\n get networkId() {\n const networkId = this._networkId;\n return networkId;\n }\n set accounts(value) {\n this._accounts = value;\n }\n get accounts() {\n const accounts = this._accounts;\n return accounts;\n }\n set rpcUrl(value) {\n this._rpcUrl = value;\n }\n get rpcUrl() {\n const rpcUrl = this._rpcUrl;\n return rpcUrl;\n }\n set connected(value) {\n }\n get connected() {\n return this._connected;\n }\n set pending(value) {\n }\n get pending() {\n return !!this._handshakeTopic;\n }\n get session() {\n return {\n connected: this.connected,\n accounts: this.accounts,\n chainId: this.chainId,\n bridge: this.bridge,\n key: this.key,\n clientId: this.clientId,\n clientMeta: this.clientMeta,\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n handshakeId: this.handshakeId,\n handshakeTopic: this.handshakeTopic,\n };\n }\n set session(value) {\n if (!value) {\n return;\n }\n this._connected = value.connected;\n this.accounts = value.accounts;\n this.chainId = value.chainId;\n this.bridge = value.bridge;\n this.key = value.key;\n this.clientId = value.clientId;\n this.clientMeta = value.clientMeta;\n this.peerId = value.peerId;\n this.peerMeta = value.peerMeta;\n this.handshakeId = value.handshakeId;\n this.handshakeTopic = value.handshakeTopic;\n }\n on(event, callback) {\n const eventEmitter = {\n event,\n callback,\n };\n this._eventManager.subscribe(eventEmitter);\n }\n off(event) {\n this._eventManager.unsubscribe(event);\n }\n async createInstantRequest(instantRequest) {\n this._key = await this._generateKey();\n const request = this._formatRequest({\n method: \"wc_instantRequest\",\n params: [\n {\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n request: this._formatRequest(instantRequest),\n },\n ],\n });\n this.handshakeId = request.id;\n this.handshakeTopic = uuid();\n this._eventManager.trigger({\n event: \"display_uri\",\n params: [this.uri],\n });\n this.on(\"modal_closed\", () => {\n throw new Error(ERROR_QRCODE_MODAL_USER_CLOSED);\n });\n const endInstantRequest = () => {\n this.killSession();\n };\n try {\n const result = await this._sendCallRequest(request);\n if (result) {\n endInstantRequest();\n }\n return result;\n }\n catch (error) {\n endInstantRequest();\n throw error;\n }\n }\n async connect(opts) {\n if (!this._qrcodeModal) {\n throw new Error(ERROR_QRCODE_MODAL_NOT_PROVIDED);\n }\n if (this.connected) {\n return {\n chainId: this.chainId,\n accounts: this.accounts,\n };\n }\n await this.createSession(opts);\n return new Promise(async (resolve, reject) => {\n this.on(\"modal_closed\", () => reject(new Error(ERROR_QRCODE_MODAL_USER_CLOSED)));\n this.on(\"connect\", (error, payload) => {\n if (error) {\n return reject(error);\n }\n resolve(payload.params[0]);\n });\n });\n }\n async createSession(opts) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n if (this.pending) {\n return;\n }\n this._key = await this._generateKey();\n const request = this._formatRequest({\n method: \"wc_sessionRequest\",\n params: [\n {\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n chainId: opts && opts.chainId ? opts.chainId : null,\n },\n ],\n });\n this.handshakeId = request.id;\n this.handshakeTopic = uuid();\n this._sendSessionRequest(request, \"Session update rejected\", {\n topic: this.handshakeTopic,\n });\n this._eventManager.trigger({\n event: \"display_uri\",\n params: [this.uri],\n });\n }\n approveSession(sessionStatus) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n this.chainId = sessionStatus.chainId;\n this.accounts = sessionStatus.accounts;\n this.networkId = sessionStatus.networkId || 0;\n this.rpcUrl = sessionStatus.rpcUrl || \"\";\n const sessionParams = {\n approved: true,\n chainId: this.chainId,\n networkId: this.networkId,\n accounts: this.accounts,\n rpcUrl: this.rpcUrl,\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n };\n const response = {\n id: this.handshakeId,\n jsonrpc: \"2.0\",\n result: sessionParams,\n };\n this._sendResponse(response);\n this._connected = true;\n this._setStorageSession();\n this._eventManager.trigger({\n event: \"connect\",\n params: [\n {\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n rejectSession(sessionError) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n const message = sessionError && sessionError.message ? sessionError.message : ERROR_SESSION_REJECTED;\n const response = this._formatResponse({\n id: this.handshakeId,\n error: { message },\n });\n this._sendResponse(response);\n this._connected = false;\n this._eventManager.trigger({\n event: \"disconnect\",\n params: [{ message }],\n });\n this._removeStorageSession();\n }\n updateSession(sessionStatus) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n this.chainId = sessionStatus.chainId;\n this.accounts = sessionStatus.accounts;\n this.networkId = sessionStatus.networkId || 0;\n this.rpcUrl = sessionStatus.rpcUrl || \"\";\n const sessionParams = {\n approved: true,\n chainId: this.chainId,\n networkId: this.networkId,\n accounts: this.accounts,\n rpcUrl: this.rpcUrl,\n };\n const request = this._formatRequest({\n method: \"wc_sessionUpdate\",\n params: [sessionParams],\n });\n this._sendSessionRequest(request, \"Session update rejected\");\n this._eventManager.trigger({\n event: \"session_update\",\n params: [\n {\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n this._manageStorageSession();\n }\n async killSession(sessionError) {\n const message = sessionError ? sessionError.message : \"Session Disconnected\";\n const sessionParams = {\n approved: false,\n chainId: null,\n networkId: null,\n accounts: null,\n };\n const request = this._formatRequest({\n method: \"wc_sessionUpdate\",\n params: [sessionParams],\n });\n await this._sendRequest(request);\n this._handleSessionDisconnect(message);\n }\n async sendTransaction(tx) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const parsedTx = parseTransactionData(tx);\n const request = this._formatRequest({\n method: \"eth_sendTransaction\",\n params: [parsedTx],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signTransaction(tx) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const parsedTx = parseTransactionData(tx);\n const request = this._formatRequest({\n method: \"eth_signTransaction\",\n params: [parsedTx],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signMessage(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const request = this._formatRequest({\n method: \"eth_sign\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signPersonalMessage(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n params = parsePersonalSign(params);\n const request = this._formatRequest({\n method: \"personal_sign\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signTypedData(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const request = this._formatRequest({\n method: \"eth_signTypedData\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async updateChain(chainParams) {\n if (!this._connected) {\n throw new Error(\"Session currently disconnected\");\n }\n const request = this._formatRequest({\n method: \"wallet_updateChain\",\n params: [chainParams],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n unsafeSend(request, options) {\n this._sendRequest(request, options);\n this._eventManager.trigger({\n event: \"call_request_sent\",\n params: [{ request, options }],\n });\n return new Promise((resolve, reject) => {\n this._subscribeToResponse(request.id, (error, payload) => {\n if (error) {\n reject(error);\n return;\n }\n if (!payload) {\n throw new Error(ERROR_MISSING_JSON_RPC);\n }\n resolve(payload);\n });\n });\n }\n async sendCustomRequest(request, options) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n switch (request.method) {\n case \"eth_accounts\":\n return this.accounts;\n case \"eth_chainId\":\n return convertNumberToHex(this.chainId);\n case \"eth_sendTransaction\":\n case \"eth_signTransaction\":\n if (request.params) {\n request.params[0] = parseTransactionData(request.params[0]);\n }\n break;\n case \"personal_sign\":\n if (request.params) {\n request.params = parsePersonalSign(request.params);\n }\n break;\n default:\n break;\n }\n const formattedRequest = this._formatRequest(request);\n const result = await this._sendCallRequest(formattedRequest, options);\n return result;\n }\n approveRequest(response) {\n if (isJsonRpcResponseSuccess(response)) {\n const formattedResponse = this._formatResponse(response);\n this._sendResponse(formattedResponse);\n }\n else {\n throw new Error(ERROR_MISSING_RESULT);\n }\n }\n rejectRequest(response) {\n if (isJsonRpcResponseError(response)) {\n const formattedResponse = this._formatResponse(response);\n this._sendResponse(formattedResponse);\n }\n else {\n throw new Error(ERROR_MISSING_ERROR);\n }\n }\n transportClose() {\n this._transport.close();\n }\n async _sendRequest(request, options) {\n const callRequest = this._formatRequest(request);\n const encryptionPayload = await this._encrypt(callRequest);\n const topic = typeof (options === null || options === void 0 ? void 0 : options.topic) !== \"undefined\" ? options.topic : this.peerId;\n const payload = JSON.stringify(encryptionPayload);\n const silent = typeof (options === null || options === void 0 ? void 0 : options.forcePushNotification) !== \"undefined\"\n ? !options.forcePushNotification\n : isSilentPayload(callRequest);\n this._transport.send(payload, topic, silent);\n }\n async _sendResponse(response) {\n const encryptionPayload = await this._encrypt(response);\n const topic = this.peerId;\n const payload = JSON.stringify(encryptionPayload);\n const silent = true;\n this._transport.send(payload, topic, silent);\n }\n async _sendSessionRequest(request, errorMsg, options) {\n this._sendRequest(request, options);\n this._subscribeToSessionResponse(request.id, errorMsg);\n }\n _sendCallRequest(request, options) {\n this._sendRequest(request, options);\n this._eventManager.trigger({\n event: \"call_request_sent\",\n params: [{ request, options }],\n });\n return this._subscribeToCallResponse(request.id);\n }\n _formatRequest(request) {\n if (typeof request.method === \"undefined\") {\n throw new Error(ERROR_MISSING_METHOD);\n }\n const formattedRequest = {\n id: typeof request.id === \"undefined\" ? payloadId() : request.id,\n jsonrpc: \"2.0\",\n method: request.method,\n params: typeof request.params === \"undefined\" ? [] : request.params,\n };\n return formattedRequest;\n }\n _formatResponse(response) {\n if (typeof response.id === \"undefined\") {\n throw new Error(ERROR_MISSING_ID);\n }\n const baseResponse = { id: response.id, jsonrpc: \"2.0\" };\n if (isJsonRpcResponseError(response)) {\n const error = formatRpcError(response.error);\n const errorResponse = Object.assign(Object.assign(Object.assign({}, baseResponse), response), { error });\n return errorResponse;\n }\n else if (isJsonRpcResponseSuccess(response)) {\n const successResponse = Object.assign(Object.assign({}, baseResponse), response);\n return successResponse;\n }\n throw new Error(ERROR_INVALID_RESPONSE);\n }\n _handleSessionDisconnect(errorMsg) {\n const message = errorMsg || \"Session Disconnected\";\n if (!this._connected) {\n if (this._qrcodeModal) {\n this._qrcodeModal.close();\n }\n removeLocal(mobileLinkChoiceKey);\n }\n if (this._connected) {\n this._connected = false;\n }\n if (this._handshakeId) {\n this._handshakeId = 0;\n }\n if (this._handshakeTopic) {\n this._handshakeTopic = \"\";\n }\n if (this._peerId) {\n this._peerId = \"\";\n }\n this._eventManager.trigger({\n event: \"disconnect\",\n params: [{ message }],\n });\n this._removeStorageSession();\n this.transportClose();\n }\n _handleSessionResponse(errorMsg, sessionParams) {\n if (sessionParams) {\n if (sessionParams.approved) {\n if (!this._connected) {\n this._connected = true;\n if (sessionParams.chainId) {\n this.chainId = sessionParams.chainId;\n }\n if (sessionParams.accounts) {\n this.accounts = sessionParams.accounts;\n }\n if (sessionParams.peerId && !this.peerId) {\n this.peerId = sessionParams.peerId;\n }\n if (sessionParams.peerMeta && !this.peerMeta) {\n this.peerMeta = sessionParams.peerMeta;\n }\n this._eventManager.trigger({\n event: \"connect\",\n params: [\n {\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n else {\n if (sessionParams.chainId) {\n this.chainId = sessionParams.chainId;\n }\n if (sessionParams.accounts) {\n this.accounts = sessionParams.accounts;\n }\n this._eventManager.trigger({\n event: \"session_update\",\n params: [\n {\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n this._manageStorageSession();\n }\n else {\n this._handleSessionDisconnect(errorMsg);\n }\n }\n else {\n this._handleSessionDisconnect(errorMsg);\n }\n }\n async _handleIncomingMessages(socketMessage) {\n const activeTopics = [this.clientId, this.handshakeTopic];\n if (!activeTopics.includes(socketMessage.topic)) {\n return;\n }\n let encryptionPayload;\n try {\n encryptionPayload = JSON.parse(socketMessage.payload);\n }\n catch (error) {\n return;\n }\n const payload = await this._decrypt(encryptionPayload);\n if (payload) {\n this._eventManager.trigger(payload);\n }\n }\n _subscribeToSessionRequest() {\n this._transport.subscribe(this.handshakeTopic);\n }\n _subscribeToResponse(id, callback) {\n this.on(`response:${id}`, callback);\n }\n _subscribeToSessionResponse(id, errorMsg) {\n this._subscribeToResponse(id, (error, payload) => {\n if (error) {\n this._handleSessionResponse(error.message);\n return;\n }\n if (payload.result) {\n this._handleSessionResponse(errorMsg, payload.result);\n }\n else if (payload.error && payload.error.message) {\n this._handleSessionResponse(payload.error.message);\n }\n else {\n this._handleSessionResponse(errorMsg);\n }\n });\n }\n _subscribeToCallResponse(id) {\n return new Promise((resolve, reject) => {\n this._subscribeToResponse(id, (error, payload) => {\n if (error) {\n reject(error);\n return;\n }\n if (payload.result) {\n resolve(payload.result);\n }\n else if (payload.error && payload.error.message) {\n reject(new Error(payload.error.message));\n }\n else {\n reject(new Error(ERROR_INVALID_RESPONSE));\n }\n });\n });\n }\n _subscribeToInternalEvents() {\n this.on(\"display_uri\", () => {\n if (this._qrcodeModal) {\n this._qrcodeModal.open(this.uri, () => {\n this._eventManager.trigger({\n event: \"modal_closed\",\n params: [],\n });\n }, this._qrcodeModalOptions);\n }\n });\n this.on(\"connect\", () => {\n if (this._qrcodeModal) {\n this._qrcodeModal.close();\n }\n });\n this.on(\"call_request_sent\", (error, payload) => {\n const { request } = payload.params[0];\n if (isMobile() && this._signingMethods.includes(request.method)) {\n const mobileLinkUrl = getLocal(mobileLinkChoiceKey);\n if (mobileLinkUrl) {\n window.location.href = mobileLinkUrl.href;\n }\n }\n });\n this.on(\"wc_sessionRequest\", (error, payload) => {\n if (error) {\n this._eventManager.trigger({\n event: \"error\",\n params: [\n {\n code: \"SESSION_REQUEST_ERROR\",\n message: error.toString(),\n },\n ],\n });\n }\n this.handshakeId = payload.id;\n this.peerId = payload.params[0].peerId;\n this.peerMeta = payload.params[0].peerMeta;\n const internalPayload = Object.assign(Object.assign({}, payload), { method: \"session_request\" });\n this._eventManager.trigger(internalPayload);\n });\n this.on(\"wc_sessionUpdate\", (error, payload) => {\n if (error) {\n this._handleSessionResponse(error.message);\n }\n this._handleSessionResponse(\"Session disconnected\", payload.params[0]);\n });\n }\n _initTransport() {\n this._transport.on(\"message\", (socketMessage) => this._handleIncomingMessages(socketMessage));\n this._transport.on(\"open\", () => this._eventManager.trigger({ event: \"transport_open\", params: [] }));\n this._transport.on(\"close\", () => this._eventManager.trigger({ event: \"transport_close\", params: [] }));\n this._transport.on(\"error\", () => this._eventManager.trigger({\n event: \"transport_error\",\n params: [\"Websocket connection failed\"],\n }));\n this._transport.open();\n }\n _formatUri() {\n const protocol = this.protocol;\n const handshakeTopic = this.handshakeTopic;\n const version = this.version;\n const bridge = encodeURIComponent(this.bridge);\n const key = this.key;\n const uri = `${protocol}:${handshakeTopic}@${version}?bridge=${bridge}&key=${key}`;\n return uri;\n }\n _parseUri(uri) {\n const result = parseWalletConnectUri(uri);\n if (result.protocol === this.protocol) {\n if (!result.handshakeTopic) {\n throw Error(\"Invalid or missing handshakeTopic parameter value\");\n }\n const handshakeTopic = result.handshakeTopic;\n if (!result.bridge) {\n throw Error(\"Invalid or missing bridge url parameter value\");\n }\n const bridge = decodeURIComponent(result.bridge);\n if (!result.key) {\n throw Error(\"Invalid or missing key parameter value\");\n }\n const key = result.key;\n return { handshakeTopic, bridge, key };\n }\n else {\n throw new Error(ERROR_INVALID_URI);\n }\n }\n async _generateKey() {\n if (this._cryptoLib) {\n const result = await this._cryptoLib.generateKey();\n return result;\n }\n return null;\n }\n async _encrypt(data) {\n const key = this._key;\n if (this._cryptoLib && key) {\n const result = await this._cryptoLib.encrypt(data, key);\n return result;\n }\n return null;\n }\n async _decrypt(payload) {\n const key = this._key;\n if (this._cryptoLib && key) {\n const result = await this._cryptoLib.decrypt(payload, key);\n return result;\n }\n return null;\n }\n _getStorageSession() {\n let result = null;\n if (this._sessionStorage) {\n result = this._sessionStorage.getSession();\n }\n return result;\n }\n _setStorageSession() {\n if (this._sessionStorage) {\n this._sessionStorage.setSession(this.session);\n }\n }\n _removeStorageSession() {\n if (this._sessionStorage) {\n this._sessionStorage.removeSession();\n }\n }\n _manageStorageSession() {\n if (this._connected) {\n this._setStorageSession();\n }\n else {\n this._removeStorageSession();\n }\n }\n _registerPushServer(pushServerOpts) {\n if (!pushServerOpts.url || typeof pushServerOpts.url !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.url parameter value\");\n }\n if (!pushServerOpts.type || typeof pushServerOpts.type !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.type parameter value\");\n }\n if (!pushServerOpts.token || typeof pushServerOpts.token !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.token parameter value\");\n }\n const pushSubscription = {\n bridge: this.bridge,\n topic: this.clientId,\n type: pushServerOpts.type,\n token: pushServerOpts.token,\n peerName: \"\",\n language: pushServerOpts.language || \"\",\n };\n this.on(\"connect\", async (error, payload) => {\n if (error) {\n throw error;\n }\n if (pushServerOpts.peerMeta) {\n const peerName = payload.params[0].peerMeta.name;\n pushSubscription.peerName = peerName;\n }\n try {\n const response = await fetch(`${pushServerOpts.url}/new`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(pushSubscription),\n });\n const json = await response.json();\n if (!json.success) {\n throw Error(\"Failed to register in Push Server\");\n }\n }\n catch (error) {\n throw Error(\"Failed to register in Push Server\");\n }\n });\n }\n}\nexport default Connector;\n//# sourceMappingURL=index.js.map","import * as crypto from \"@walletconnect/crypto\";\nimport * as encoding from \"@walletconnect/encoding\";\nimport { convertArrayBufferToBuffer, convertBufferToArrayBuffer } from \"@walletconnect/utils\";\nexport async function generateKey(length) {\n const _length = (length || 256) / 8;\n const bytes = crypto.randomBytes(_length);\n const result = convertBufferToArrayBuffer(encoding.arrayToBuffer(bytes));\n return result;\n}\nexport async function verifyHmac(payload, key) {\n const cipherText = encoding.hexToArray(payload.data);\n const iv = encoding.hexToArray(payload.iv);\n const hmac = encoding.hexToArray(payload.hmac);\n const hmacHex = encoding.arrayToHex(hmac, false);\n const unsigned = encoding.concatArrays(cipherText, iv);\n const chmac = await crypto.hmacSha256Sign(key, unsigned);\n const chmacHex = encoding.arrayToHex(chmac, false);\n if (encoding.removeHexPrefix(hmacHex) === encoding.removeHexPrefix(chmacHex)) {\n return true;\n }\n return false;\n}\nexport async function encrypt(data, key, providedIv) {\n const _key = encoding.bufferToArray(convertArrayBufferToBuffer(key));\n const ivArrayBuffer = providedIv || (await generateKey(128));\n const iv = encoding.bufferToArray(convertArrayBufferToBuffer(ivArrayBuffer));\n const ivHex = encoding.arrayToHex(iv, false);\n const contentString = JSON.stringify(data);\n const content = encoding.utf8ToArray(contentString);\n const cipherText = await crypto.aesCbcEncrypt(iv, _key, content);\n const cipherTextHex = encoding.arrayToHex(cipherText, false);\n const unsigned = encoding.concatArrays(cipherText, iv);\n const hmac = await crypto.hmacSha256Sign(_key, unsigned);\n const hmacHex = encoding.arrayToHex(hmac, false);\n return {\n data: cipherTextHex,\n hmac: hmacHex,\n iv: ivHex,\n };\n}\nexport async function decrypt(payload, key) {\n const _key = encoding.bufferToArray(convertArrayBufferToBuffer(key));\n if (!_key) {\n throw new Error(\"Missing key: required for decryption\");\n }\n const verified = await verifyHmac(payload, _key);\n if (!verified) {\n return null;\n }\n const cipherText = encoding.hexToArray(payload.data);\n const iv = encoding.hexToArray(payload.iv);\n const buffer = await crypto.aesCbcDecrypt(iv, _key, cipherText);\n const utf8 = encoding.arrayToUtf8(buffer);\n let data;\n try {\n data = JSON.parse(utf8);\n }\n catch (error) {\n return null;\n }\n return data;\n}\n//# sourceMappingURL=index.js.map","import Connector from \"@walletconnect/core\";\nimport * as cryptoLib from \"@walletconnect/iso-crypto\";\nclass WalletConnect extends Connector {\n constructor(connectorOpts, pushServerOpts) {\n super({\n cryptoLib,\n connectorOpts,\n pushServerOpts,\n });\n }\n}\nexport default WalletConnect;\n//# sourceMappingURL=index.js.map","import EventEmitter from \"eventemitter3\";\nimport { XMLHttpRequest } from \"xhr2-cookies\";\nimport { getFromWindow } from \"@walletconnect/utils\";\nconst XHR = getFromWindow(\"XMLHttpRequest\") || XMLHttpRequest;\nclass HTTPConnection extends EventEmitter {\n constructor(url) {\n super();\n this.url = url;\n }\n formatError(payload, message, code = -1) {\n return {\n error: { message, code },\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n };\n }\n send(payload, internal) {\n return new Promise(resolve => {\n if (payload.method === \"eth_subscribe\") {\n const error = this.formatError(payload, \"Subscriptions are not supported by this HTTP endpoint\");\n this.emit(\"error\", error);\n return resolve(error);\n }\n const xhr = new XHR();\n let responded = false;\n const res = (err, result) => {\n if (!responded) {\n xhr.abort();\n responded = true;\n if (internal) {\n internal(err, result);\n }\n else {\n const { id, jsonrpc } = payload;\n const response = err\n ? { id, jsonrpc, error: { message: err.message, code: err.code } }\n : { id, jsonrpc, result };\n this.emit(\"payload\", response);\n resolve(response);\n }\n }\n };\n xhr.open(\"POST\", this.url, true);\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.timeout = 60 * 1000;\n xhr.onerror = res;\n xhr.ontimeout = res;\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n try {\n const response = JSON.parse(xhr.responseText);\n res(response.error, response.result);\n }\n catch (e) {\n res(e);\n }\n }\n };\n xhr.send(JSON.stringify(payload));\n });\n }\n}\nexport default HTTPConnection;\n//# sourceMappingURL=index.js.map","import WalletConnect from \"@walletconnect/client\";\nimport QRCodeModal from \"@walletconnect/qrcode-modal\";\nimport HttpConnection from \"@walletconnect/http-connection\";\nimport { payloadId, signingMethods, parsePersonalSign, getRpcUrl } from \"@walletconnect/utils\";\nconst ProviderEngine = require(\"web3-provider-engine\");\nconst CacheSubprovider = require(\"web3-provider-engine/subproviders/cache\");\nconst FixtureSubprovider = require(\"web3-provider-engine/subproviders/fixture\");\nconst FilterSubprovider = require(\"web3-provider-engine/subproviders/filters\");\nconst HookedWalletSubprovider = require(\"web3-provider-engine/subproviders/hooked-wallet\");\nconst NonceSubprovider = require(\"web3-provider-engine/subproviders/nonce-tracker\");\nconst SubscriptionsSubprovider = require(\"web3-provider-engine/subproviders/subscriptions\");\nclass WalletConnectProvider extends ProviderEngine {\n constructor(opts) {\n super({ pollingInterval: opts.pollingInterval || 8000 });\n this.bridge = \"https://bridge.walletconnect.org\";\n this.qrcode = true;\n this.qrcodeModal = QRCodeModal;\n this.qrcodeModalOptions = undefined;\n this.rpc = null;\n this.infuraId = \"\";\n this.http = null;\n this.isConnecting = false;\n this.connected = false;\n this.connectCallbacks = [];\n this.accounts = [];\n this.chainId = 1;\n this.rpcUrl = \"\";\n this.enable = async () => {\n const wc = await this.getWalletConnector();\n if (wc) {\n this.start();\n this.subscribeWalletConnector();\n return wc.accounts;\n }\n else {\n throw new Error(\"Failed to connect to WalleConnect\");\n }\n };\n this.request = async (payload) => {\n return this.send(payload);\n };\n this.send = async (payload, callback) => {\n if (typeof payload === \"string\") {\n const method = payload;\n let params = callback;\n if (method === \"personal_sign\") {\n params = parsePersonalSign(params);\n }\n return this.sendAsyncPromise(method, params);\n }\n payload = Object.assign({ id: payloadId(), jsonrpc: \"2.0\" }, payload);\n if (payload.method === \"personal_sign\") {\n payload.params = parsePersonalSign(payload.params);\n }\n if (callback) {\n this.sendAsync(payload, callback);\n return;\n }\n return this.sendAsyncPromise(payload.method, payload.params);\n };\n this.onConnect = (callback) => {\n this.connectCallbacks.push(callback);\n };\n this.triggerConnect = (result) => {\n if (this.connectCallbacks && this.connectCallbacks.length) {\n this.connectCallbacks.forEach(callback => callback(result));\n }\n };\n this.bridge = opts.connector\n ? opts.connector.bridge\n : opts.bridge || \"https://bridge.walletconnect.org\";\n this.qrcode = typeof opts.qrcode === \"undefined\" || opts.qrcode !== false;\n this.qrcodeModal = opts.qrcodeModal || this.qrcodeModal;\n this.qrcodeModalOptions = opts.qrcodeModalOptions;\n this.wc =\n opts.connector ||\n new WalletConnect({\n bridge: this.bridge,\n qrcodeModal: this.qrcode ? this.qrcodeModal : undefined,\n qrcodeModalOptions: this.qrcodeModalOptions,\n storageId: opts === null || opts === void 0 ? void 0 : opts.storageId,\n signingMethods: opts === null || opts === void 0 ? void 0 : opts.signingMethods,\n clientMeta: opts === null || opts === void 0 ? void 0 : opts.clientMeta,\n });\n this.rpc = opts.rpc || null;\n if (!this.rpc &&\n (!opts.infuraId || typeof opts.infuraId !== \"string\" || !opts.infuraId.trim())) {\n throw new Error(\"Missing one of the required parameters: rpc or infuraId\");\n }\n this.infuraId = opts.infuraId || \"\";\n this.chainId = (opts === null || opts === void 0 ? void 0 : opts.chainId) || this.chainId;\n this.initialize();\n }\n get isWalletConnect() {\n return true;\n }\n get connector() {\n return this.wc;\n }\n get walletMeta() {\n return this.wc.peerMeta;\n }\n async disconnect() {\n this.close();\n }\n async close() {\n const wc = await this.getWalletConnector({ disableSessionCreation: true });\n await wc.killSession();\n await this.onDisconnect();\n }\n async handleRequest(payload) {\n try {\n let response;\n let result = null;\n const wc = await this.getWalletConnector();\n switch (payload.method) {\n case \"wc_killSession\":\n await this.close();\n result = null;\n break;\n case \"eth_accounts\":\n result = wc.accounts;\n break;\n case \"eth_coinbase\":\n result = wc.accounts[0];\n break;\n case \"eth_chainId\":\n result = wc.chainId;\n break;\n case \"net_version\":\n result = wc.chainId;\n break;\n case \"eth_uninstallFilter\":\n this.sendAsync(payload, (_) => _);\n result = true;\n break;\n default:\n response = await this.handleOtherRequests(payload);\n }\n if (response) {\n return response;\n }\n return this.formatResponse(payload, result);\n }\n catch (error) {\n this.emit(\"error\", error);\n throw error;\n }\n }\n async handleOtherRequests(payload) {\n if (!signingMethods.includes(payload.method) && payload.method.startsWith(\"eth_\")) {\n return this.handleReadRequests(payload);\n }\n const wc = await this.getWalletConnector();\n const result = await wc.sendCustomRequest(payload);\n return this.formatResponse(payload, result);\n }\n async handleReadRequests(payload) {\n if (!this.http) {\n const error = new Error(\"HTTP Connection not available\");\n this.emit(\"error\", error);\n throw error;\n }\n return this.http.send(payload);\n }\n formatResponse(payload, result) {\n return {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n result: result,\n };\n }\n getWalletConnector(opts = {}) {\n const { disableSessionCreation = false } = opts;\n return new Promise((resolve, reject) => {\n const wc = this.wc;\n if (this.isConnecting) {\n this.onConnect((x) => resolve(x));\n }\n else if (!wc.connected && !disableSessionCreation) {\n this.isConnecting = true;\n wc.on(\"modal_closed\", () => {\n reject(new Error(\"User closed modal\"));\n });\n wc.createSession({ chainId: this.chainId })\n .then(() => {\n wc.on(\"connect\", (error, payload) => {\n if (error) {\n this.isConnecting = false;\n return reject(error);\n }\n this.isConnecting = false;\n this.connected = true;\n if (payload) {\n this.updateState(payload.params[0]);\n }\n this.emit(\"connect\");\n this.triggerConnect(wc);\n resolve(wc);\n });\n })\n .catch(error => {\n this.isConnecting = false;\n reject(error);\n });\n }\n else {\n if (!this.connected) {\n this.connected = true;\n this.updateState(wc.session);\n }\n resolve(wc);\n }\n });\n }\n async subscribeWalletConnector() {\n const wc = await this.getWalletConnector();\n wc.on(\"disconnect\", error => {\n if (error) {\n this.emit(\"error\", error);\n return;\n }\n this.onDisconnect();\n });\n wc.on(\"session_update\", (error, payload) => {\n if (error) {\n this.emit(\"error\", error);\n return;\n }\n this.updateState(payload.params[0]);\n });\n }\n async onDisconnect() {\n await this.stop();\n this.emit(\"close\", 1000, \"Connection closed\");\n this.emit(\"disconnect\", 1000, \"Connection disconnected\");\n this.connected = false;\n }\n async updateState(sessionParams) {\n const { accounts, chainId, networkId, rpcUrl } = sessionParams;\n if (!this.accounts || (accounts && this.accounts !== accounts)) {\n this.accounts = accounts;\n this.emit(\"accountsChanged\", accounts);\n }\n if (!this.chainId || (chainId && this.chainId !== chainId)) {\n this.chainId = chainId;\n this.emit(\"chainChanged\", chainId);\n }\n if (!this.networkId || (networkId && this.networkId !== networkId)) {\n this.networkId = networkId;\n this.emit(\"networkChanged\", networkId);\n }\n this.updateRpcUrl(this.chainId, rpcUrl || \"\");\n }\n updateRpcUrl(chainId, rpcUrl = \"\") {\n const rpc = { infuraId: this.infuraId, custom: this.rpc || undefined };\n rpcUrl = rpcUrl || getRpcUrl(chainId, rpc);\n if (rpcUrl) {\n this.rpcUrl = rpcUrl;\n this.updateHttpConnection();\n }\n else {\n this.emit(\"error\", new Error(`No RPC Url available for chainId: ${chainId}`));\n }\n }\n updateHttpConnection() {\n if (this.rpcUrl) {\n this.http = new HttpConnection(this.rpcUrl);\n this.http.on(\"payload\", payload => this.emit(\"payload\", payload));\n this.http.on(\"error\", error => this.emit(\"error\", error));\n }\n }\n sendAsyncPromise(method, params) {\n return new Promise((resolve, reject) => {\n this.sendAsync({\n id: payloadId(),\n jsonrpc: \"2.0\",\n method,\n params: params || [],\n }, (error, response) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(response.result);\n });\n });\n }\n initialize() {\n this.updateRpcUrl(this.chainId);\n this.addProvider(new FixtureSubprovider({\n eth_hashrate: \"0x00\",\n eth_mining: false,\n eth_syncing: true,\n net_listening: true,\n web3_clientVersion: `WalletConnect/v1.x.x/javascript`,\n }));\n this.addProvider(new CacheSubprovider());\n this.addProvider(new SubscriptionsSubprovider());\n this.addProvider(new FilterSubprovider());\n this.addProvider(new NonceSubprovider());\n this.addProvider(new HookedWalletSubprovider(this.configWallet()));\n this.addProvider({\n handleRequest: async (payload, next, end) => {\n try {\n const { error, result } = await this.handleRequest(payload);\n end(error, result);\n }\n catch (error) {\n end(error);\n }\n },\n setEngine: (_) => _,\n });\n }\n configWallet() {\n return {\n getAccounts: async (cb) => {\n try {\n const wc = await this.getWalletConnector();\n const accounts = wc.accounts;\n if (accounts && accounts.length) {\n cb(null, accounts);\n }\n else {\n cb(new Error(\"Failed to get accounts\"));\n }\n }\n catch (error) {\n cb(error);\n }\n },\n processMessage: async (msgParams, cb) => {\n try {\n const wc = await this.getWalletConnector();\n const result = await wc.signMessage([msgParams.from, msgParams.data]);\n cb(null, result);\n }\n catch (error) {\n cb(error);\n }\n },\n processPersonalMessage: async (msgParams, cb) => {\n try {\n const wc = await this.getWalletConnector();\n const result = await wc.signPersonalMessage([msgParams.data, msgParams.from]);\n cb(null, result);\n }\n catch (error) {\n cb(error);\n }\n },\n processSignTransaction: async (txParams, cb) => {\n try {\n const wc = await this.getWalletConnector();\n const result = await wc.signTransaction(txParams);\n cb(null, result);\n }\n catch (error) {\n cb(error);\n }\n },\n processTransaction: async (txParams, cb) => {\n try {\n const wc = await this.getWalletConnector();\n const result = await wc.sendTransaction(txParams);\n cb(null, result);\n }\n catch (error) {\n cb(error);\n }\n },\n processTypedMessage: async (msgParams, cb) => {\n try {\n const wc = await this.getWalletConnector();\n const result = await wc.signTypedData([msgParams.from, msgParams.data]);\n cb(null, result);\n }\n catch (error) {\n cb(error);\n }\n },\n };\n }\n}\nexport default WalletConnectProvider;\n//# sourceMappingURL=index.js.map","var Mode = require('./mode')\nvar Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\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()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\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 isObject(re) && 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 isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (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('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map\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","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","module.exports = function createScaffoldMiddleware (handlers) {\n return (req, res, next, end) => {\n const handler = handlers[req.method]\n // if no handler, return\n if (handler === undefined) {\n return next()\n }\n // if handler is fn, call as middleware\n if (typeof handler === 'function') {\n return handler(req, res, next, end)\n }\n // if handler is some other value, use as result\n res.result = handler\n return end()\n }\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\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.removeHexLeadingZeros = exports.sanitizeHex = exports.addHexPrefix = exports.removeHexPrefix = exports.padRight = exports.padLeft = exports.sanitizeBytes = exports.swapHex = exports.swapBytes = exports.splitBytes = exports.calcByteLength = exports.trimRight = exports.trimLeft = exports.concatArrays = exports.concatBuffers = exports.getEncoding = exports.getType = exports.isArrayBuffer = exports.isTypedArray = exports.isBuffer = exports.isHexString = exports.isBinaryString = exports.binaryToNumber = exports.binaryToUtf8 = exports.binaryToHex = exports.binaryToArray = exports.binaryToBuffer = exports.numberToBinary = exports.numberToUtf8 = exports.numberToHex = exports.numberToArray = exports.numberToBuffer = exports.utf8ToBinary = exports.utf8ToNumber = exports.utf8ToHex = exports.utf8ToArray = exports.utf8ToBuffer = exports.hexToBinary = exports.hexToNumber = exports.hexToUtf8 = exports.hexToArray = exports.hexToBuffer = exports.arrayToBinary = exports.arrayToNumber = exports.arrayToUtf8 = exports.arrayToHex = exports.arrayToBuffer = exports.bufferToBinary = exports.bufferToNumber = exports.bufferToUtf8 = exports.bufferToHex = exports.bufferToArray = void 0;\nconst is_typedarray_1 = __importDefault(require(\"is-typedarray\"));\nconst typedarray_to_buffer_1 = __importDefault(require(\"typedarray-to-buffer\"));\nconst ENC_HEX = \"hex\";\nconst ENC_UTF8 = \"utf8\";\nconst ENC_BIN = \"binary\";\nconst TYPE_BUFFER = \"buffer\";\nconst TYPE_ARRAY = \"array\";\nconst TYPE_TYPED_ARRAY = \"typed-array\";\nconst TYPE_ARRAY_BUFFER = \"array-buffer\";\nconst STRING_ZERO = \"0\";\nfunction bufferToArray(buf) {\n return new Uint8Array(buf);\n}\nexports.bufferToArray = bufferToArray;\nfunction bufferToHex(buf, prefixed = false) {\n const hex = buf.toString(ENC_HEX);\n return prefixed ? addHexPrefix(hex) : hex;\n}\nexports.bufferToHex = bufferToHex;\nfunction bufferToUtf8(buf) {\n return buf.toString(ENC_UTF8);\n}\nexports.bufferToUtf8 = bufferToUtf8;\nfunction bufferToNumber(buf) {\n return buf.readUIntBE(0, buf.length);\n}\nexports.bufferToNumber = bufferToNumber;\nfunction bufferToBinary(buf) {\n return arrayToBinary(bufferToArray(buf));\n}\nexports.bufferToBinary = bufferToBinary;\nfunction arrayToBuffer(arr) {\n return typedarray_to_buffer_1.default(arr);\n}\nexports.arrayToBuffer = arrayToBuffer;\nfunction arrayToHex(arr, prefixed = false) {\n return bufferToHex(arrayToBuffer(arr), prefixed);\n}\nexports.arrayToHex = arrayToHex;\nfunction arrayToUtf8(arr) {\n return bufferToUtf8(arrayToBuffer(arr));\n}\nexports.arrayToUtf8 = arrayToUtf8;\nfunction arrayToNumber(arr) {\n return bufferToNumber(arrayToBuffer(arr));\n}\nexports.arrayToNumber = arrayToNumber;\nfunction arrayToBinary(arr) {\n return Array.from(arr)\n .map(numberToBinary)\n .join(\"\");\n}\nexports.arrayToBinary = arrayToBinary;\nfunction hexToBuffer(hex) {\n return Buffer.from(removeHexPrefix(hex), ENC_HEX);\n}\nexports.hexToBuffer = hexToBuffer;\nfunction hexToArray(hex) {\n return bufferToArray(hexToBuffer(hex));\n}\nexports.hexToArray = hexToArray;\nfunction hexToUtf8(hex) {\n return bufferToUtf8(hexToBuffer(hex));\n}\nexports.hexToUtf8 = hexToUtf8;\nfunction hexToNumber(hex) {\n return arrayToNumber(hexToArray(hex));\n}\nexports.hexToNumber = hexToNumber;\nfunction hexToBinary(hex) {\n return arrayToBinary(hexToArray(hex));\n}\nexports.hexToBinary = hexToBinary;\nfunction utf8ToBuffer(utf8) {\n return Buffer.from(utf8, ENC_UTF8);\n}\nexports.utf8ToBuffer = utf8ToBuffer;\nfunction utf8ToArray(utf8) {\n return bufferToArray(utf8ToBuffer(utf8));\n}\nexports.utf8ToArray = utf8ToArray;\nfunction utf8ToHex(utf8, prefixed = false) {\n return bufferToHex(utf8ToBuffer(utf8), prefixed);\n}\nexports.utf8ToHex = utf8ToHex;\nfunction utf8ToNumber(utf8) {\n const num = parseInt(utf8, 10);\n assert(isDefined(num), \"Number can only safely store up to 53 bits\");\n return num;\n}\nexports.utf8ToNumber = utf8ToNumber;\nfunction utf8ToBinary(utf8) {\n return arrayToBinary(utf8ToArray(utf8));\n}\nexports.utf8ToBinary = utf8ToBinary;\nfunction numberToBuffer(num) {\n return binaryToBuffer(numberToBinary(num));\n}\nexports.numberToBuffer = numberToBuffer;\nfunction numberToArray(num) {\n return binaryToArray(numberToBinary(num));\n}\nexports.numberToArray = numberToArray;\nfunction numberToHex(num, prefixed) {\n return binaryToHex(numberToBinary(num), prefixed);\n}\nexports.numberToHex = numberToHex;\nfunction numberToUtf8(num) {\n return `${num}`;\n}\nexports.numberToUtf8 = numberToUtf8;\nfunction numberToBinary(num) {\n const bin = (num >>> 0).toString(2);\n return sanitizeBytes(bin);\n}\nexports.numberToBinary = numberToBinary;\nfunction binaryToBuffer(bin) {\n return arrayToBuffer(binaryToArray(bin));\n}\nexports.binaryToBuffer = binaryToBuffer;\nfunction binaryToArray(bin) {\n return new Uint8Array(splitBytes(bin).map(x => parseInt(x, 2)));\n}\nexports.binaryToArray = binaryToArray;\nfunction binaryToHex(bin, prefixed) {\n return arrayToHex(binaryToArray(bin), prefixed);\n}\nexports.binaryToHex = binaryToHex;\nfunction binaryToUtf8(bin) {\n return arrayToUtf8(binaryToArray(bin));\n}\nexports.binaryToUtf8 = binaryToUtf8;\nfunction binaryToNumber(bin) {\n return arrayToNumber(binaryToArray(bin));\n}\nexports.binaryToNumber = binaryToNumber;\nfunction isBinaryString(str) {\n if (typeof str !== \"string\" || !new RegExp(/^[01]+$/).test(str)) {\n return false;\n }\n if (str.length % 8 !== 0) {\n return false;\n }\n return true;\n}\nexports.isBinaryString = isBinaryString;\nfunction isHexString(str, length) {\n if (typeof str !== \"string\" || !str.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && str.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nexports.isHexString = isHexString;\nfunction isBuffer(val) {\n return Buffer.isBuffer(val);\n}\nexports.isBuffer = isBuffer;\nfunction isTypedArray(val) {\n return is_typedarray_1.default.strict(val) && !isBuffer(val);\n}\nexports.isTypedArray = isTypedArray;\nfunction isArrayBuffer(val) {\n return (!isTypedArray(val) &&\n !isBuffer(val) &&\n typeof val.byteLength !== \"undefined\");\n}\nexports.isArrayBuffer = isArrayBuffer;\nfunction getType(val) {\n if (isBuffer(val)) {\n return TYPE_BUFFER;\n }\n else if (isTypedArray(val)) {\n return TYPE_TYPED_ARRAY;\n }\n else if (isArrayBuffer(val)) {\n return TYPE_ARRAY_BUFFER;\n }\n else if (Array.isArray(val)) {\n return TYPE_ARRAY;\n }\n else {\n return typeof val;\n }\n}\nexports.getType = getType;\nfunction getEncoding(str) {\n if (isBinaryString(str)) {\n return ENC_BIN;\n }\n if (isHexString(str)) {\n return ENC_HEX;\n }\n return ENC_UTF8;\n}\nexports.getEncoding = getEncoding;\nfunction concatBuffers(...args) {\n const result = Buffer.concat(args);\n return result;\n}\nexports.concatBuffers = concatBuffers;\nfunction concatArrays(...args) {\n let result = [];\n args.forEach(arg => (result = result.concat(Array.from(arg))));\n return new Uint8Array([...result]);\n}\nexports.concatArrays = concatArrays;\nfunction trimLeft(data, length) {\n const diff = data.length - length;\n if (diff > 0) {\n data = data.slice(diff);\n }\n return data;\n}\nexports.trimLeft = trimLeft;\nfunction trimRight(data, length) {\n return data.slice(0, length);\n}\nexports.trimRight = trimRight;\nfunction calcByteLength(length, byteSize = 8) {\n const remainder = length % byteSize;\n return remainder\n ? ((length - remainder) / byteSize) * byteSize + byteSize\n : length;\n}\nexports.calcByteLength = calcByteLength;\nfunction splitBytes(str, byteSize = 8) {\n const bytes = sanitizeBytes(str).match(new RegExp(`.{${byteSize}}`, \"gi\"));\n return Array.from(bytes || []);\n}\nexports.splitBytes = splitBytes;\nfunction swapBytes(str) {\n return splitBytes(str)\n .map(reverseString)\n .join(\"\");\n}\nexports.swapBytes = swapBytes;\nfunction swapHex(str) {\n return binaryToHex(swapBytes(hexToBinary(str)));\n}\nexports.swapHex = swapHex;\nfunction sanitizeBytes(str, byteSize = 8, padding = STRING_ZERO) {\n return padLeft(str, calcByteLength(str.length, byteSize), padding);\n}\nexports.sanitizeBytes = sanitizeBytes;\nfunction padLeft(str, length, padding = STRING_ZERO) {\n return padString(str, length, true, padding);\n}\nexports.padLeft = padLeft;\nfunction padRight(str, length, padding = STRING_ZERO) {\n return padString(str, length, false, padding);\n}\nexports.padRight = padRight;\nfunction removeHexPrefix(hex) {\n return hex.replace(/^0x/, \"\");\n}\nexports.removeHexPrefix = removeHexPrefix;\nfunction addHexPrefix(hex) {\n return hex.startsWith(\"0x\") ? hex : `0x${hex}`;\n}\nexports.addHexPrefix = addHexPrefix;\nfunction sanitizeHex(hex) {\n hex = removeHexPrefix(hex);\n hex = sanitizeBytes(hex, 2);\n if (hex) {\n hex = addHexPrefix(hex);\n }\n return hex;\n}\nexports.sanitizeHex = sanitizeHex;\nfunction removeHexLeadingZeros(hex) {\n const prefixed = hex.startsWith(\"0x\");\n hex = removeHexPrefix(hex);\n hex = hex.startsWith(STRING_ZERO) ? hex.substring(1) : hex;\n return prefixed ? addHexPrefix(hex) : hex;\n}\nexports.removeHexLeadingZeros = removeHexLeadingZeros;\nfunction isUndefined(value) {\n return typeof value === \"undefined\";\n}\nfunction isDefined(value) {\n return !isUndefined(value);\n}\nfunction assert(assertion, errorMessage) {\n if (!assertion) {\n throw new Error(errorMessage);\n }\n}\nfunction reverseString(str) {\n return str\n .split(\"\")\n .reverse()\n .join(\"\");\n}\nfunction padString(str, length, left, padding = STRING_ZERO) {\n const diff = length - str.length;\n let result = str;\n if (diff > 0) {\n const pad = padding.repeat(diff);\n result = left ? pad + str : str + pad;\n }\n return result;\n}\n//# sourceMappingURL=index.js.map","/*\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","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkConnection = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst init_1 = require(\"../init\");\nconst Session_1 = require(\"../relay/Session\");\nconst types_1 = require(\"../types\");\nconst ClientMessage_1 = require(\"./ClientMessage\");\nconst RxWebSocket_1 = require(\"./RxWebSocket\");\nconst ServerMessage_1 = require(\"./ServerMessage\");\nconst HEARTBEAT_INTERVAL = 10000;\nconst REQUEST_TIMEOUT = 60000;\n/**\n * WalletLink Connection\n */\nclass WalletLinkConnection {\n /**\n * Constructor\n * @param sessionId Session ID\n * @param sessionKey Session Key\n * @param serverUrl Walletlinkd RPC URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(sessionId, sessionKey, serverUrl, walletLinkAnalytics, WebSocketClass = WebSocket) {\n this.sessionId = sessionId;\n this.sessionKey = sessionKey;\n this.subscriptions = new rxjs_1.Subscription();\n this.destroyed = false;\n this.lastHeartbeatResponse = 0;\n this.nextReqId = (0, types_1.IntNumber)(1);\n this.connectedSubject = new rxjs_1.BehaviorSubject(false);\n this.linkedSubject = new rxjs_1.BehaviorSubject(false);\n this.sessionConfigSubject = new rxjs_1.ReplaySubject(1);\n const ws = new RxWebSocket_1.RxWebSocket(serverUrl + \"/rpc\", WebSocketClass);\n this.ws = ws;\n this.walletLinkAnalytics = walletLinkAnalytics;\n // attempt to reconnect every 5 seconds when disconnected\n this.subscriptions.add(ws.connectionState$\n .pipe((0, operators_1.tap)(state => this.walletLinkAnalytics.sendEvent(init_1.EVENTS.CONNECTED_STATE_CHANGE, {\n state,\n sessionIdHash: Session_1.Session.hash(sessionId)\n })), \n // ignore initial DISCONNECTED state\n (0, operators_1.skip)(1), \n // if DISCONNECTED and not destroyed\n (0, operators_1.filter)(cs => cs === RxWebSocket_1.ConnectionState.DISCONNECTED && !this.destroyed), \n // wait 5 seconds\n (0, operators_1.delay)(5000), \n // check whether it's destroyed again\n (0, operators_1.filter)(_ => !this.destroyed), \n // reconnect\n (0, operators_1.flatMap)(_ => ws.connect()), (0, operators_1.retry)())\n .subscribe());\n // perform authentication upon connection\n this.subscriptions.add(ws.connectionState$\n .pipe(\n // ignore initial DISCONNECTED and CONNECTING states\n (0, operators_1.skip)(2), (0, operators_1.switchMap)(cs => (0, rxjs_1.iif)(() => cs === RxWebSocket_1.ConnectionState.CONNECTED, \n // if CONNECTED, authenticate, and then check link status\n this.authenticate().pipe((0, operators_1.tap)(_ => this.sendIsLinked()), (0, operators_1.tap)(_ => this.sendGetSessionConfig()), (0, operators_1.map)(_ => true)), \n // if not CONNECTED, emit false immediately\n (0, rxjs_1.of)(false))), (0, operators_1.distinctUntilChanged)(), (0, operators_1.catchError)(_ => (0, rxjs_1.of)(false)))\n .subscribe(connected => this.connectedSubject.next(connected)));\n // send heartbeat every n seconds while connected\n this.subscriptions.add(ws.connectionState$\n .pipe(\n // ignore initial DISCONNECTED state\n (0, operators_1.skip)(1), (0, operators_1.switchMap)(cs => (0, rxjs_1.iif)(() => cs === RxWebSocket_1.ConnectionState.CONNECTED, \n // if CONNECTED, start the heartbeat timer\n (0, rxjs_1.timer)(0, HEARTBEAT_INTERVAL))))\n .subscribe(i => \n // first timer event updates lastHeartbeat timestamp\n // subsequent calls send heartbeat message\n i === 0 ? this.updateLastHeartbeat() : this.heartbeat()));\n // handle server's heartbeat responses\n this.subscriptions.add(ws.incomingData$\n .pipe((0, operators_1.filter)(m => m === \"h\"))\n .subscribe(_ => this.updateLastHeartbeat()));\n // handle link status updates\n this.subscriptions.add(ws.incomingJSONData$\n .pipe((0, operators_1.filter)(m => [\"IsLinkedOK\", \"Linked\"].includes(m.type)))\n .subscribe(m => {\n const msg = m;\n this.walletLinkAnalytics.sendEvent(init_1.EVENTS.LINKED, {\n sessionIdHash: Session_1.Session.hash(sessionId),\n linked: msg.linked,\n type: m.type,\n onlineGuests: msg.onlineGuests\n });\n this.linkedSubject.next(msg.linked || msg.onlineGuests > 0);\n }));\n // handle session config updates\n this.subscriptions.add(ws.incomingJSONData$\n .pipe((0, operators_1.filter)(m => [\"GetSessionConfigOK\", \"SessionConfigUpdated\"].includes(m.type)))\n .subscribe(m => {\n const msg = m;\n this.walletLinkAnalytics.sendEvent(init_1.EVENTS.SESSION_CONFIG_RECEIVED, {\n sessionIdHash: Session_1.Session.hash(sessionId),\n metadata_keys: msg && msg.metadata ? Object.keys(msg.metadata) : undefined\n });\n this.sessionConfigSubject.next({\n webhookId: msg.webhookId,\n webhookUrl: msg.webhookUrl,\n metadata: msg.metadata\n });\n }));\n }\n /**\n * Make a connection to the server\n */\n connect() {\n if (this.destroyed) {\n throw new Error(\"instance is destroyed\");\n }\n this.walletLinkAnalytics.sendEvent(init_1.EVENTS.STARTED_CONNECTING, {\n sessionIdHash: Session_1.Session.hash(this.sessionId)\n });\n this.ws.connect().subscribe();\n }\n /**\n * Terminate connection, and mark as destroyed. To reconnect, create a new\n * instance of WalletLinkConnection\n */\n destroy() {\n this.subscriptions.unsubscribe();\n this.ws.disconnect();\n this.walletLinkAnalytics.sendEvent(init_1.EVENTS.DISCONNECTED, {\n sessionIdHash: Session_1.Session.hash(this.sessionId)\n });\n this.destroyed = true;\n }\n get isDestroyed() {\n return this.destroyed;\n }\n /**\n * Emit true if connected and authenticated, else false\n * @returns an Observable\n */\n get connected$() {\n return this.connectedSubject.asObservable();\n }\n /**\n * Emit once connected\n * @returns an Observable\n */\n get onceConnected$() {\n return this.connected$.pipe((0, operators_1.filter)(v => v), (0, operators_1.take)(1), (0, operators_1.map)(() => void 0));\n }\n /**\n * Emit true if linked (a guest has joined before)\n * @returns an Observable\n */\n get linked$() {\n return this.linkedSubject.asObservable();\n }\n /**\n * Emit once when linked\n * @returns an Observable\n */\n get onceLinked$() {\n return this.linked$.pipe((0, operators_1.filter)(v => v), (0, operators_1.take)(1), (0, operators_1.map)(() => void 0));\n }\n /**\n * Emit current session config if available, and subsequent updates\n * @returns an Observable for the session config\n */\n get sessionConfig$() {\n return this.sessionConfigSubject.asObservable();\n }\n /**\n * Emit incoming Event messages\n * @returns an Observable for the messages\n */\n get incomingEvent$() {\n return this.ws.incomingJSONData$.pipe((0, operators_1.filter)(m => {\n if (m.type !== \"Event\") {\n return false;\n }\n const sme = m;\n return (typeof sme.sessionId === \"string\" &&\n typeof sme.eventId === \"string\" &&\n typeof sme.event === \"string\" &&\n typeof sme.data === \"string\");\n }), (0, operators_1.map)(m => m));\n }\n /**\n * Set session metadata in SessionConfig object\n * @param key\n * @param value\n * @returns an Observable that completes when successful\n */\n setSessionMetadata(key, value) {\n const message = (0, ClientMessage_1.ClientMessageSetSessionConfig)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n metadata: { [key]: value }\n });\n return this.onceConnected$.pipe((0, operators_1.flatMap)(_ => this.makeRequest(message)), (0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to set session metadata\");\n }\n }));\n }\n /**\n * Publish an event and emit event ID when successful\n * @param event event name\n * @param data event data\n * @param callWebhook whether the webhook should be invoked\n * @returns an Observable that emits event ID when successful\n */\n publishEvent(event, data, callWebhook = false) {\n const message = (0, ClientMessage_1.ClientMessagePublishEvent)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n event,\n data,\n callWebhook\n });\n return this.onceLinked$.pipe((0, operators_1.flatMap)(_ => this.makeRequest(message)), (0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to publish event\");\n }\n return res.eventId;\n }));\n }\n sendData(message) {\n this.ws.sendData(JSON.stringify(message));\n }\n updateLastHeartbeat() {\n this.lastHeartbeatResponse = Date.now();\n }\n heartbeat() {\n if (Date.now() - this.lastHeartbeatResponse > HEARTBEAT_INTERVAL * 2) {\n this.ws.disconnect();\n return;\n }\n try {\n this.ws.sendData(\"h\");\n }\n catch (_a) { }\n }\n makeRequest(message, timeout = REQUEST_TIMEOUT) {\n const reqId = message.id;\n try {\n this.sendData(message);\n }\n catch (err) {\n return (0, rxjs_1.throwError)(err);\n }\n // await server message with corresponding id\n return this.ws.incomingJSONData$.pipe((0, operators_1.timeoutWith)(timeout, (0, rxjs_1.throwError)(new Error(`request ${reqId} timed out`))), (0, operators_1.filter)(m => m.id === reqId), (0, operators_1.take)(1));\n }\n authenticate() {\n const msg = (0, ClientMessage_1.ClientMessageHostSession)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n sessionKey: this.sessionKey\n });\n return this.makeRequest(msg).pipe((0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to authentcate\");\n }\n }));\n }\n sendIsLinked() {\n const msg = (0, ClientMessage_1.ClientMessageIsLinked)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId\n });\n this.sendData(msg);\n }\n sendGetSessionConfig() {\n const msg = (0, ClientMessage_1.ClientMessageGetSessionConfig)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId\n });\n this.sendData(msg);\n }\n}\nexports.WalletLinkConnection = WalletLinkConnection;\n","export class IEvents {\n}\n//# sourceMappingURL=misc.js.map",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar 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","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","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _eachOfLimit;\n\nvar _noop = require('lodash/noop');\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _once = require('./once');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _breakLoop = require('./breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _eachOfLimit(limit) {\n return function (obj, iteratee, callback) {\n callback = (0, _once2.default)(callback || _noop2.default);\n if (limit <= 0 || !obj) {\n return callback(null);\n }\n var nextElem = (0, _iterator2.default)(obj);\n var done = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n } else if (value === _breakLoop2.default || done && running <= 0) {\n done = true;\n return callback(null);\n } else if (!looping) {\n replenish();\n }\n }\n\n function replenish() {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n}\nmodule.exports = exports['default'];",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));","var ECLevel = require('./error-correction-level')\r\n\r\nvar 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\nvar 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","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n//# sourceMappingURL=id.js.map","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","'use strict';\n\nconst processFn = (fn, opts) => function () {\n\tconst P = opts.promiseModule;\n\tconst args = new Array(arguments.length);\n\n\tfor (let i = 0; i < arguments.length; i++) {\n\t\targs[i] = arguments[i];\n\t}\n\n\treturn new P((resolve, reject) => {\n\t\tif (opts.errorFirst) {\n\t\t\targs.push(function (err, result) {\n\t\t\t\tif (opts.multiArgs) {\n\t\t\t\t\tconst results = new Array(arguments.length - 1);\n\n\t\t\t\t\tfor (let i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tresults[i - 1] = arguments[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tresults.unshift(err);\n\t\t\t\t\t\treject(results);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(results);\n\t\t\t\t\t}\n\t\t\t\t} else if (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\targs.push(function (result) {\n\t\t\t\tif (opts.multiArgs) {\n\t\t\t\t\tconst results = new Array(arguments.length - 1);\n\n\t\t\t\t\tfor (let i = 0; i < arguments.length; i++) {\n\t\t\t\t\t\tresults[i] = arguments[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(results);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfn.apply(this, args);\n\t});\n};\n\nmodule.exports = (obj, opts) => {\n\topts = Object.assign({\n\t\texclude: [/.+(Sync|Stream)$/],\n\t\terrorFirst: true,\n\t\tpromiseModule: Promise\n\t}, opts);\n\n\tconst filter = key => {\n\t\tconst match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);\n\t\treturn opts.include ? opts.include.some(match) : !opts.exclude.some(match);\n\t};\n\n\tlet ret;\n\tif (typeof obj === 'function') {\n\t\tret = function () {\n\t\t\tif (opts.excludeMain) {\n\t\t\t\treturn obj.apply(this, arguments);\n\t\t\t}\n\n\t\t\treturn processFn(obj, opts).apply(this, arguments);\n\t\t};\n\t} else {\n\t\tret = Object.create(Object.getPrototypeOf(obj));\n\t}\n\n\tfor (const key in obj) { // eslint-disable-line guard-for-in\n\t\tconst x = obj[key];\n\t\tret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x;\n\t}\n\n\treturn ret;\n};\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","export const version = \"sha2/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n//# sourceMappingURL=sha2.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\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) || 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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar os = require(\"os\");\nvar url = require(\"url\");\nvar progress_event_1 = require(\"./progress-event\");\nvar errors_1 = require(\"./errors\");\nvar xml_http_request_event_target_1 = require(\"./xml-http-request-event-target\");\nvar xml_http_request_upload_1 = require(\"./xml-http-request-upload\");\nvar Cookie = require(\"cookiejar\");\nvar XMLHttpRequest = /** @class */ (function (_super) {\n __extends(XMLHttpRequest, _super);\n function XMLHttpRequest(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this) || this;\n _this.UNSENT = XMLHttpRequest.UNSENT;\n _this.OPENED = XMLHttpRequest.OPENED;\n _this.HEADERS_RECEIVED = XMLHttpRequest.HEADERS_RECEIVED;\n _this.LOADING = XMLHttpRequest.LOADING;\n _this.DONE = XMLHttpRequest.DONE;\n _this.onreadystatechange = null;\n _this.readyState = XMLHttpRequest.UNSENT;\n _this.response = null;\n _this.responseText = '';\n _this.responseType = '';\n _this.status = 0; // TODO: UNSENT?\n _this.statusText = '';\n _this.timeout = 0;\n _this.upload = new xml_http_request_upload_1.XMLHttpRequestUpload();\n _this.responseUrl = '';\n _this.withCredentials = false;\n _this._method = null;\n _this._url = null;\n _this._sync = false;\n _this._headers = {};\n _this._loweredHeaders = {};\n _this._mimeOverride = null; // TODO: is type right?\n _this._request = null;\n _this._response = null;\n _this._responseParts = null;\n _this._responseHeaders = null;\n _this._aborting = null; // TODO: type?\n _this._error = null; // TODO: type?\n _this._loadedBytes = 0;\n _this._totalBytes = 0;\n _this._lengthComputable = false;\n _this._restrictedMethods = { CONNECT: true, TRACE: true, TRACK: true };\n _this._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n via: true\n };\n _this._privateHeaders = { 'set-cookie': true, 'set-cookie2': true };\n _this._userAgent = \"Mozilla/5.0 (\" + os.type() + \" \" + os.arch() + \") node.js/\" + process.versions.node + \" v8/\" + process.versions.v8;\n _this._anonymous = options.anon || false;\n return _this;\n }\n XMLHttpRequest.prototype.open = function (method, url, async, user, password) {\n if (async === void 0) { async = true; }\n method = method.toUpperCase();\n if (this._restrictedMethods[method]) {\n throw new XMLHttpRequest.SecurityError(\"HTTP method \" + method + \" is not allowed in XHR\");\n }\n ;\n var xhrUrl = this._parseUrl(url, user, password);\n if (this.readyState === XMLHttpRequest.HEADERS_RECEIVED || this.readyState === XMLHttpRequest.LOADING) {\n // TODO(pwnall): terminate abort(), terminate send()\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n };\n XMLHttpRequest.prototype.setRequestHeader = function (name, value) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new XMLHttpRequest.InvalidStateError('XHR readyState must be OPENED');\n }\n var loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(\"Refused to set unsafe header \\\"\" + name + \"\\\"\");\n return;\n }\n value = value.toString();\n if (this._loweredHeaders[loweredName] != null) {\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + \", \" + value;\n }\n else {\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n };\n XMLHttpRequest.prototype.send = function (data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new XMLHttpRequest.InvalidStateError('XHR readyState must be OPENED');\n }\n if (this._request) {\n throw new XMLHttpRequest.InvalidStateError('send() already called');\n }\n switch (this._url.protocol) {\n case 'file:':\n return this._sendFile(data);\n case 'http:':\n case 'https:':\n return this._sendHttp(data);\n default:\n throw new XMLHttpRequest.NetworkError(\"Unsupported protocol \" + this._url.protocol);\n }\n };\n XMLHttpRequest.prototype.abort = function () {\n if (this._request == null) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype.getResponseHeader = function (name) {\n if (this._responseHeaders == null || name == null) {\n return null;\n }\n var loweredName = name.toLowerCase();\n return this._responseHeaders.hasOwnProperty(loweredName)\n ? this._responseHeaders[name.toLowerCase()]\n : null;\n };\n XMLHttpRequest.prototype.getAllResponseHeaders = function () {\n var _this = this;\n if (this._responseHeaders == null) {\n return '';\n }\n return Object.keys(this._responseHeaders).map(function (key) { return key + \": \" + _this._responseHeaders[key]; }).join('\\r\\n');\n };\n XMLHttpRequest.prototype.overrideMimeType = function (mimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new XMLHttpRequest.InvalidStateError('overrideMimeType() not allowed in LOADING or DONE');\n }\n this._mimeOverride = mimeType.toLowerCase();\n };\n XMLHttpRequest.prototype.nodejsSet = function (options) {\n this.nodejsHttpAgent = options.httpAgent || this.nodejsHttpAgent;\n this.nodejsHttpsAgent = options.httpsAgent || this.nodejsHttpsAgent;\n if (options.hasOwnProperty('baseUrl')) {\n if (options.baseUrl != null) {\n var parsedUrl = url.parse(options.baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new XMLHttpRequest.SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = options.baseUrl;\n }\n };\n XMLHttpRequest.nodejsSet = function (options) {\n XMLHttpRequest.prototype.nodejsSet(options);\n };\n XMLHttpRequest.prototype._setReadyState = function (readyState) {\n this.readyState = readyState;\n this.dispatchEvent(new progress_event_1.ProgressEvent('readystatechange'));\n };\n XMLHttpRequest.prototype._sendFile = function (data) {\n // TODO\n throw new Error('Protocol file: not implemented');\n };\n XMLHttpRequest.prototype._sendHttp = function (data) {\n if (this._sync) {\n throw new Error('Synchronous XHR processing not implemented');\n }\n if (data && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(\"Discarding entity body for \" + this._method + \" requests\");\n data = null;\n }\n else {\n data = data || '';\n }\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n };\n XMLHttpRequest.prototype._sendHxxpRequest = function () {\n var _this = this;\n if (this.withCredentials) {\n var cookie = XMLHttpRequest.cookieJar\n .getCookies(Cookie.CookieAccessInfo(this._url.hostname, this._url.pathname, this._url.protocol === 'https:')).toValueString();\n this._headers.cookie = this._headers.cookie2 = cookie;\n }\n var _a = this._url.protocol === 'http:' ? [http, this.nodejsHttpAgent] : [https, this.nodejsHttpsAgent], hxxp = _a[0], agent = _a[1];\n var requestMethod = hxxp.request.bind(hxxp);\n var request = requestMethod({\n hostname: this._url.hostname,\n port: +this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, function () { return _this._onHttpTimeout(request); });\n }\n request.on('response', function (response) { return _this._onHttpResponse(request, response); });\n request.on('error', function (error) { return _this._onHttpRequestError(request, error); });\n this.upload._startUpload(request);\n if (this._request === request) {\n this._dispatchProgress('loadstart');\n }\n };\n XMLHttpRequest.prototype._finalizeHeaders = function () {\n this._headers = __assign({}, this._headers, { Connection: 'keep-alive', Host: this._url.host, 'User-Agent': this._userAgent }, this._anonymous ? { Referer: 'about:blank' } : {});\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n };\n XMLHttpRequest.prototype._onHttpResponse = function (request, response) {\n var _this = this;\n if (this._request !== request) {\n return;\n }\n if (this.withCredentials && (response.headers['set-cookie'] || response.headers['set-cookie2'])) {\n XMLHttpRequest.cookieJar\n .setCookies(response.headers['set-cookie'] || response.headers['set-cookie2']);\n }\n if ([301, 302, 303, 307, 308].indexOf(response.statusCode) >= 0) {\n this._url = this._parseUrl(response.headers.location);\n this._method = 'GET';\n if (this._loweredHeaders['content-type']) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n if (this._headers['Content-Type'] != null) {\n delete this._headers['Content-Type'];\n }\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', function (data) { return _this._onHttpResponseData(response, data); });\n this._response.on('end', function () { return _this._onHttpResponseEnd(response); });\n this._response.on('close', function () { return _this._onHttpResponseClose(response); });\n this.responseUrl = this._url.href.split('#')[0];\n this.status = response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n var lengthString = this._responseHeaders['content-length'] || '';\n this._totalBytes = +lengthString;\n this._lengthComputable = !!lengthString;\n this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n };\n XMLHttpRequest.prototype._onHttpResponseData = function (response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(new Buffer(data));\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n this._dispatchProgress('progress');\n };\n XMLHttpRequest.prototype._onHttpResponseEnd = function (response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._onHttpResponseClose = function (response) {\n if (this._response !== response) {\n return;\n }\n var request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._onHttpTimeout = function (request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._onHttpRequestError = function (request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._dispatchProgress = function (eventType) {\n var event = new XMLHttpRequest.ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n };\n XMLHttpRequest.prototype._setError = function () {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n };\n XMLHttpRequest.prototype._parseUrl = function (urlString, user, password) {\n var absoluteUrl = this.nodejsBaseUrl == null ? urlString : url.resolve(this.nodejsBaseUrl, urlString);\n var xhrUrl = url.parse(absoluteUrl, false, true);\n xhrUrl.hash = null;\n var _a = (xhrUrl.auth || '').split(':'), xhrUser = _a[0], xhrPassword = _a[1];\n if (xhrUser || xhrPassword || user || password) {\n xhrUrl.auth = (user || xhrUser || '') + \":\" + (password || xhrPassword || '');\n }\n return xhrUrl;\n };\n XMLHttpRequest.prototype._parseResponseHeaders = function (response) {\n this._responseHeaders = {};\n for (var name_1 in response.headers) {\n var loweredName = name_1.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n this._responseHeaders[loweredName] = response.headers[name_1];\n }\n if (this._mimeOverride != null) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n };\n XMLHttpRequest.prototype._parseResponse = function () {\n var buffer = Buffer.concat(this._responseParts);\n this._responseParts = null;\n switch (this.responseType) {\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n }\n catch (_a) {\n this.response = null;\n }\n return;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n return;\n case 'arraybuffer':\n this.responseText = null;\n var arrayBuffer = new ArrayBuffer(buffer.length);\n var view = new Uint8Array(arrayBuffer);\n for (var i = 0; i < buffer.length; i++) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n return;\n case 'text':\n default:\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n }\n catch (_b) {\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n }\n };\n XMLHttpRequest.prototype._parseResponseEncoding = function () {\n return /;\\s*charset=(.*)$/.exec(this._responseHeaders['content-type'] || '')[1] || 'utf-8';\n };\n XMLHttpRequest.ProgressEvent = progress_event_1.ProgressEvent;\n XMLHttpRequest.InvalidStateError = errors_1.InvalidStateError;\n XMLHttpRequest.NetworkError = errors_1.NetworkError;\n XMLHttpRequest.SecurityError = errors_1.SecurityError;\n XMLHttpRequest.SyntaxError = errors_1.SyntaxError;\n XMLHttpRequest.XMLHttpRequestUpload = xml_http_request_upload_1.XMLHttpRequestUpload;\n XMLHttpRequest.UNSENT = 0;\n XMLHttpRequest.OPENED = 1;\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n XMLHttpRequest.LOADING = 3;\n XMLHttpRequest.DONE = 4;\n XMLHttpRequest.cookieJar = Cookie.CookieJar();\n return XMLHttpRequest;\n}(xml_http_request_event_target_1.XMLHttpRequestEventTarget));\nexports.XMLHttpRequest = XMLHttpRequest;\nXMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\nXMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\nXMLHttpRequest.prototype.nodejsBaseUrl = null;\n//# sourceMappingURL=xml-http-request.js.map","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","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}","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}","'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",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t var block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t var modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t var modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t var wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t var salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n 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.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","// 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// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWeb3ResponseMessage = exports.Web3ResponseMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3ResponseMessage(params) {\n return Object.assign({ type: RelayMessage_1.RelayMessageType.WEB3_RESPONSE }, params);\n}\nexports.Web3ResponseMessage = Web3ResponseMessage;\nfunction isWeb3ResponseMessage(msg) {\n return msg && msg.type === RelayMessage_1.RelayMessageType.WEB3_RESPONSE;\n}\nexports.isWeb3ResponseMessage = isWeb3ResponseMessage;\n","const errors = {\n IMPOSSIBLE_CASE: 'Impossible case. Please create issue.',\n TWEAK_ADD:\n 'The tweak was out of range or the resulted private key is invalid',\n TWEAK_MUL: 'The tweak was out of range or equal to zero',\n CONTEXT_RANDOMIZE_UNKNOW: 'Unknow error on context randomization',\n SECKEY_INVALID: 'Private Key is invalid',\n PUBKEY_PARSE: 'Public Key could not be parsed',\n PUBKEY_SERIALIZE: 'Public Key serialization error',\n PUBKEY_COMBINE: 'The sum of the public keys is not valid',\n SIG_PARSE: 'Signature could not be parsed',\n SIGN: 'The nonce generation function failed, or the private key was invalid',\n RECOVER: 'Public key could not be recover',\n ECDH: 'Scalar was invalid (zero or overflow)'\n}\n\nfunction assert (cond, msg) {\n if (!cond) throw new Error(msg)\n}\n\nfunction isUint8Array (name, value, length) {\n assert(value instanceof Uint8Array, `Expected ${name} to be an Uint8Array`)\n\n if (length !== undefined) {\n if (Array.isArray(length)) {\n const numbers = length.join(', ')\n const msg = `Expected ${name} to be an Uint8Array with length [${numbers}]`\n assert(length.includes(value.length), msg)\n } else {\n const msg = `Expected ${name} to be an Uint8Array with length ${length}`\n assert(value.length === length, msg)\n }\n }\n}\n\nfunction isCompressed (value) {\n assert(toTypeString(value) === 'Boolean', 'Expected compressed to be a Boolean')\n}\n\nfunction getAssertedOutput (output = (len) => new Uint8Array(len), length) {\n if (typeof output === 'function') output = output(length)\n isUint8Array('output', output, length)\n return output\n}\n\nfunction toTypeString (value) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nmodule.exports = (secp256k1) => {\n return {\n contextRandomize (seed) {\n assert(\n seed === null || seed instanceof Uint8Array,\n 'Expected seed to be an Uint8Array or null'\n )\n if (seed !== null) isUint8Array('seed', seed, 32)\n\n switch (secp256k1.contextRandomize(seed)) {\n case 1:\n throw new Error(errors.CONTEXT_RANDOMIZE_UNKNOW)\n }\n },\n\n privateKeyVerify (seckey) {\n isUint8Array('private key', seckey, 32)\n\n return secp256k1.privateKeyVerify(seckey) === 0\n },\n\n privateKeyNegate (seckey) {\n isUint8Array('private key', seckey, 32)\n\n switch (secp256k1.privateKeyNegate(seckey)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakAdd(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n privateKeyTweakMul (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakMul(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n publicKeyVerify (pubkey) {\n isUint8Array('public key', pubkey, [33, 65])\n\n return secp256k1.publicKeyVerify(pubkey) === 0\n },\n\n publicKeyCreate (seckey, compressed = true, output) {\n isUint8Array('private key', seckey, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCreate(output, seckey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SECKEY_INVALID)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyConvert (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyConvert(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyNegate (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyNegate(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyCombine (pubkeys, compressed = true, output) {\n assert(Array.isArray(pubkeys), 'Expected public keys to be an Array')\n assert(pubkeys.length > 0, 'Expected public keys array will have more than zero items')\n for (const pubkey of pubkeys) {\n isUint8Array('public key', pubkey, [33, 65])\n }\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCombine(output, pubkeys)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_COMBINE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyTweakAdd (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakAdd(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n publicKeyTweakMul (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakMul(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n signatureNormalize (sig) {\n isUint8Array('signature', sig, 64)\n\n switch (secp256k1.signatureNormalize(sig)) {\n case 0:\n return sig\n case 1:\n throw new Error(errors.SIG_PARSE)\n }\n },\n\n signatureExport (sig, output) {\n isUint8Array('signature', sig, 64)\n output = getAssertedOutput(output, 72)\n\n const obj = { output, outputlen: 72 }\n switch (secp256k1.signatureExport(obj, sig)) {\n case 0:\n return output.slice(0, obj.outputlen)\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n signatureImport (sig, output) {\n isUint8Array('signature', sig)\n output = getAssertedOutput(output, 64)\n\n switch (secp256k1.signatureImport(output, sig)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaSign (msg32, seckey, options = {}, output) {\n isUint8Array('message', msg32, 32)\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.noncefn !== undefined) assert(toTypeString(options.noncefn) === 'Function', 'Expected options.noncefn to be a Function')\n output = getAssertedOutput(output, 64)\n\n const obj = { signature: output, recid: null }\n switch (secp256k1.ecdsaSign(obj, msg32, seckey, options.data, options.noncefn)) {\n case 0:\n return obj\n case 1:\n throw new Error(errors.SIGN)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n isUint8Array('signature', sig, 64)\n isUint8Array('message', msg32, 32)\n isUint8Array('public key', pubkey, [33, 65])\n\n switch (secp256k1.ecdsaVerify(sig, msg32, pubkey)) {\n case 0:\n return true\n case 3:\n return false\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_PARSE)\n }\n },\n\n ecdsaRecover (sig, recid, msg32, compressed = true, output) {\n isUint8Array('signature', sig, 64)\n assert(\n toTypeString(recid) === 'Number' &&\n recid >= 0 &&\n recid <= 3,\n 'Expected recovery id to be a Number within interval [0, 3]'\n )\n isUint8Array('message', msg32, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.ecdsaRecover(output, sig, recid, msg32)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.RECOVER)\n case 3:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdh (pubkey, seckey, options = {}, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.hashfn !== undefined) {\n assert(toTypeString(options.hashfn) === 'Function', 'Expected options.hashfn to be a Function')\n if (options.xbuf !== undefined) isUint8Array('options.xbuf', options.xbuf, 32)\n if (options.ybuf !== undefined) isUint8Array('options.ybuf', options.ybuf, 32)\n isUint8Array('output', output)\n } else {\n output = getAssertedOutput(output, 32)\n }\n\n switch (secp256k1.ecdh(output, pubkey, seckey, options.data, options.hashfn, options.xbuf, options.ybuf)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.ECDH)\n }\n }\n }\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","export const version = \"address/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=index.js.map","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","exports.endianness = function () { return 'LE' };\n\nexports.hostname = function () {\n if (typeof location !== 'undefined') {\n return location.hostname\n }\n else return '';\n};\n\nexports.loadavg = function () { return [] };\n\nexports.uptime = function () { return 0 };\n\nexports.freemem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.totalmem = function () {\n return Number.MAX_VALUE;\n};\n\nexports.cpus = function () { return [] };\n\nexports.type = function () { return 'Browser' };\n\nexports.release = function () {\n if (typeof navigator !== 'undefined') {\n return navigator.appVersion;\n }\n return '';\n};\n\nexports.networkInterfaces\n= exports.getNetworkInterfaces\n= function () { return {} };\n\nexports.arch = function () { return 'javascript' };\n\nexports.platform = function () { return 'browser' };\n\nexports.tmpdir = exports.tmpDir = function () {\n return '/tmp';\n};\n\nexports.EOL = '\\n';\n\nexports.homedir = function () {\n\treturn '/'\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","/*!\n* sweetalert2 v11.4.24\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\n */\n\n const uniqueArray = arr => {\n const result = [];\n\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * Standardize console warnings\n * @param {string | array} message\n */\n\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardize console errors\n * @param {string} message\n */\n\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\n const previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n * @param {string} message\n */\n\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n */\n\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {string} paramName\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {string} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {string} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n const showWarningsForParams = params => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n for (const param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n const swalPrefix = 'swal2-';\n /**\n * @param {string[]} items\n * @returns {object}\n */\n\n const prefix = items => {\n const result = {};\n\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n /**\n * @returns {HTMLElement | null}\n */\n\n\n const getPopup = () => elementByClass(swalClasses.popup);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getIcon = () => elementByClass(swalClasses.icon);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTitle = () => elementByClass(swalClasses.title);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getImage = () => elementByClass(swalClasses.image);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getConfirmButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getDenyButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCancelButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getActions = () => elementByClass(swalClasses.actions);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getFooter = () => elementByClass(swalClasses.footer);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\n const focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n\n const getFocusableElements = () => {\n const focusableElementsWithTabindex = Array.from(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n\n return 0;\n });\n const otherFocusableElements = Array.from(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));\n };\n /**\n * @returns {boolean}\n */\n\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n /**\n * @returns {boolean}\n */\n\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n /**\n * @returns {boolean}\n */\n\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n const states = {\n previousBodyPadding: null\n };\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n Array.from(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n Array.from(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n\n const classList = className.split(/\\s+/);\n\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n\n\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\n\n const getInput = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n\n const focusInput = input => {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\n\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\n\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n /**\n * @param {HTMLElement} elem\n */\n\n const hide = elem => {\n elem.style.display = 'none';\n };\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n /**\n * @returns {boolean}\n */\n\n const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n /**\n * @returns {boolean}\n */\n\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const sweetHTML = \"\\n
\\n \\n
    \\n
    \\n \\n

    \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\").replace(/(^|\\n)\\s*/g, '');\n /**\n * @returns {boolean}\n */\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n\n range.onchange = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n };\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n /**\n * @param {HTMLElement} targetElement\n */\n\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n } // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n } // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n } // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n /**\n * @param {HTMLElement} target\n * @param {HTMLElement} elem\n */\n\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n // Chrome, Safari and Opera\n animation: 'animationend' // Standard syntax\n\n };\n\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n })();\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render all the buttons\n\n renderButtons(actions, loader, params); // Loader\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// \n /** @type {InputClass[]} */\n\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes\n\n setAttributes(inputClass, params.inputAttributes); // set class\n\n inputContainer.className = swalClasses[inputClass];\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n /**\n * @param {HTMLInputElement} input\n */\n\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n\n\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput(getPopup(), inputClass);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n\n\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n\n\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof inputValue, \"\\\"\"));\n }\n };\n /** @type Record Input> */\n\n\n const renderInputType = {};\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n\n\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291\n\n\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n } // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n } // No content\n else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgroundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const successIconHtml = \"\\n
    \\n \\n
    \\n
    \\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const setContent = (icon, params) => {\n let oldContent = icon.innerHTML;\n let newContent;\n\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n /**\n * @param {string} content\n * @returns {string}\n */\n\n\n const iconContent = content => \"
    \").concat(content, \"
    \");\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n\n return lineEl;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Color\n\n if (params.color) {\n popup.style.color = params.color;\n } // Background\n\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n const getSwalParams = templateContent => {\n const result = {};\n /** @type {HTMLElement[]} */\n\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n /** @type {HTMLElement[]} */\n\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalInput = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n\n\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n */\n\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement} */\n\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
    in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
    ');\n }\n\n init(params);\n }\n\n class Timer {\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n\n stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\n\n const addBottomPaddingForTallPopups = () => {\n const ua = navigator.userAgent;\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\n const webkit = !!ua.match(/WebKit/i);\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i);\n\n if (iOSSafari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n\n\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n\n\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n /**\n * @param {GlobalState} globalState\n */\n\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {number} index\n * @param {number} increment\n */\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {function} dismissWith\n */\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n } // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n\n\n if (e.isComposing || e.keyCode === 229) {\n return;\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams);\n } // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams);\n } // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key);\n } // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleEnter = (instance, e, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n } // Cycle to the next button\n\n\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1);\n } // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n /**\n * @param {string} key\n */\n\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n\n for (let i = 0; i < getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n\n if (!buttonToFocus) {\n return;\n }\n\n if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) {\n break;\n }\n }\n\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n\n if (this.isAwaitingPromise()) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this);\n }\n\n const triggerClosePopup = instance => {\n const popup = getPopup();\n\n if (!popup) {\n return false;\n }\n\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n const filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n /**\n * @param {SweetAlert2} instance\n */\n\n const disposeSwal = instance => {\n disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset currentInstance\n\n delete globalState.currentInstance;\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n\n const disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n // @ts-ignore\n if (instance.isAwaitingPromise()) {\n unsetWeakMaps(privateProps, instance);\n privateProps.awaitingPromise.set(instance, true);\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n }\n };\n /**\n * @param {object} obj\n * @param {SweetAlert2} instance\n */\n\n\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n isAwaitingPromise: isAwaitingPromise,\n rejectPromise: rejectPromise,\n handleAwaitingPromise: handleAwaitingPromise,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n update: update,\n _destroy: _destroy\n });\n\n /**\n * @param {SweetAlert2} instance\n */\n\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {Function} dismissWith\n */\n\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n /**\n * @param {SweetAlert2} instance\n * @param {'confirm' | 'deny'} type\n */\n\n const handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n return;\n }\n\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {string} inputValue\n * @param {'confirm' | 'deny'} type\n */\n\n\n const handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n /**\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n instance.close({\n isDenied: true,\n value\n });\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const succeedWith = (instance, value) => {\n instance.close({\n isConfirmed: true,\n value\n });\n };\n /**\n *\n * @param {SweetAlert2} instance\n * @param {string} error\n */\n\n\n const rejectWith = (instance, error$$1) => {\n // @ts-ignore\n instance.rejectPromise(error$$1);\n };\n /**\n *\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n succeedWith(instance, value);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n /**\n * @param {*} innerParams\n * @returns {boolean}\n */\n\n\n const isAnyButtonShown = innerParams => {\n return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n const argsToParams = args => {\n const params = {};\n\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(typeof arg));\n }\n });\n }\n\n return params;\n };\n\n function fire() {\n const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Swal(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n\n }\n\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const increaseTimer = n => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n let currentInstance;\n\n class SweetAlert {\n constructor() {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this; // @ts-ignore\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n }); // @ts-ignore\n\n const promise = currentInstance._main(currentInstance.params);\n\n privateProps.promise.set(this, promise);\n }\n\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n // @ts-ignore\n globalState.currentInstance._destroy();\n\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n then(onFulfilled) {\n const promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this);\n return promise.finally(onFinally);\n }\n\n }\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n /**\n * @param {SweetAlert2} instance\n * @returns {DomCache}\n */\n\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n }; // This anti-war message will only be shown to Russian users visiting Russian sites\n\n\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n if (Math.random() < 0.1) {\n const noWar = document.createElement('div');\n noWar.className = 'leave-russia-now-and-apply-your-skills-to-the-world';\n const video = getRandomElement([{\n text: \"\\u0412 \\u043D\\u0438\\u0436\\u0435\\u043F\\u0440\\u0438\\u0432\\u0435\\u0434\\u0451\\u043D\\u043D\\u043E\\u043C \\u0432\\u0438\\u0434\\u0435\\u043E \\u043E\\u0431\\u044A\\u044F\\u0441\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043A\\u0430\\u043A \\u043A\\u0430\\u0436\\u0434\\u044B\\u0439 \\u0438\\u0437 \\u043D\\u0430\\u0441 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u043F\\u043E\\u043C\\u043E\\u0447\\u044C \\u0432 \\u0442\\u043E\\u043C,\\n \\u0447\\u0442\\u043E\\u0431\\u044B \\u044D\\u0442\\u0430 \\u0431\\u0435\\u0441\\u0441\\u043C\\u044B\\u0441\\u043B\\u0435\\u043D\\u043D\\u0430\\u044F \\u0438 \\u0431\\u0435\\u0441\\u0447\\u0435\\u043B\\u043E\\u0432\\u0435\\u0447\\u043D\\u0430\\u044F \\u0432\\u043E\\u0439\\u043D\\u0430 \\u043E\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u043B\\u0430\\u0441\\u044C:\",\n id: '4CfDhaRkw7I'\n }, {\n text: 'Эмпатия - главное человеческое чувство. Способность сопереживать. Способность поставить себя на место другого.',\n id: 's-GLAIY4DXA'\n }]);\n setInnerHtml(noWar, \"\\n
    \\n \\u0415\\u0441\\u043B\\u0438 \\u043C\\u044B \\u043D\\u0435 \\u043E\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u043C \\u0432\\u043E\\u0439\\u043D\\u0443, \\u043E\\u043D\\u0430 \\u043F\\u0440\\u0438\\u0434\\u0435\\u0442 \\u0432 \\u0434\\u043E\\u043C \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0438\\u0437 \\u043D\\u0430\\u0441 \\u0438 \\u0435\\u0451 \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u0441\\u0442\\u0432\\u0438\\u044F \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0443\\u0436\\u0430\\u0441\\u0430\\u044E\\u0449\\u0438\\u043C\\u0438.\\n
    \\n
    \\n \\u041F\\u0443\\u0442\\u0438\\u043D\\u0441\\u043A\\u0438\\u0439 \\u0440\\u0435\\u0436\\u0438\\u043C \\u0437\\u0430 20 \\u0441 \\u043B\\u0438\\u0448\\u043D\\u0438\\u043C \\u043B\\u0435\\u0442 \\u0441\\u0432\\u043E\\u0435\\u0433\\u043E \\u0441\\u0443\\u0449\\u0435\\u0441\\u0442\\u0432\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0432\\u0434\\u043E\\u043B\\u0431\\u0438\\u043B \\u043D\\u0430\\u043C, \\u0447\\u0442\\u043E \\u043C\\u044B \\u0431\\u0435\\u0441\\u0441\\u0438\\u043B\\u044C\\u043D\\u044B \\u0438 \\u043E\\u0434\\u0438\\u043D \\u0447\\u0435\\u043B\\u043E\\u0432\\u0435\\u043A \\u043D\\u0435 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u043D\\u0438\\u0447\\u0435\\u0433\\u043E \\u0441\\u0434\\u0435\\u043B\\u0430\\u0442\\u044C. \\u042D\\u0442\\u043E \\u043D\\u0435 \\u0442\\u0430\\u043A!\\n
    \\n
    \\n \".concat(video.text, \"\\n
    \\n \\n
    \\n \\u041D\\u0435\\u0442 \\u0432\\u043E\\u0439\\u043D\\u0435!\\n
    \\n \"));\n const closeButton = document.createElement('button');\n closeButton.innerHTML = '×';\n\n closeButton.onclick = () => noWar.remove();\n\n noWar.appendChild(closeButton);\n window.addEventListener('load', () => {\n setTimeout(() => {\n document.body.appendChild(noWar);\n }, 1000);\n });\n }\n } // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.24';\n\n const Swal = SweetAlert; // @ts-ignore\n\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.leave-russia-now-and-apply-your-skills-to-the-world{display:flex;position:fixed;z-index:1939;top:0;right:0;bottom:0;left:0;flex-direction:column;align-items:center;justify-content:center;padding:25px 0 20px;background:#20232a;color:#fff;text-align:center}.leave-russia-now-and-apply-your-skills-to-the-world div{max-width:560px;margin:10px;line-height:146%}.leave-russia-now-and-apply-your-skills-to-the-world iframe{max-width:100%;max-height:55.5555555556vmin;margin:16px auto}.leave-russia-now-and-apply-your-skills-to-the-world strong{border-bottom:2px dashed #fff}.leave-russia-now-and-apply-your-skills-to-the-world button{display:flex;position:fixed;z-index:1940;top:0;right:0;align-items:center;justify-content:center;width:48px;height:48px;margin-right:10px;margin-bottom:-10px;border:none;background:0 0;color:#aaa;font-size:48px;font-weight:700;cursor:pointer}.leave-russia-now-and-apply-your-skills-to-the-world button:hover{color:#fff}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\n/* eslint-disable es-x/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","\"use strict\";\n// Copyright (c) 2018-2021 WalletLink.org \n// Copyright (c) 2018-2021 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `@namespace svg \"http://www.w3.org/2000/svg\";.-walletlink-css-reset,.-walletlink-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:transparent;background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;bottom:auto;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:block;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\201C\" \"\\\\201D\" \"\\\\2018\" \"\\\\2019\";right:auto;tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;top:auto;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;width:auto;word-spacing:normal;z-index:auto}.-walletlink-css-reset *{box-sizing:border-box;display:initial;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-walletlink-css-reset [class*=container]{margin:0;padding:0}.-walletlink-css-reset style{display:none}`;\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashPersonalMessage = exports.isValidSignature = exports.fromRpcSig = exports.toRpcSig = exports.ecrecover = exports.ecsign = void 0;\nvar secp256k1 = require('./secp256k1v3-adapter');\nvar BN = require(\"bn.js\");\nvar bytes_1 = require(\"./bytes\");\nvar hash_1 = require(\"./hash\");\n/**\n * Returns the ECDSA signature of a message hash.\n */\nexports.ecsign = function (msgHash, privateKey, chainId) {\n var sig = secp256k1.sign(msgHash, privateKey);\n var recovery = sig.recovery;\n var ret = {\n r: sig.signature.slice(0, 32),\n s: sig.signature.slice(32, 64),\n v: chainId ? recovery + (chainId * 2 + 35) : recovery + 27,\n };\n return ret;\n};\n/**\n * ECDSA public key recovery from signature.\n * @returns Recovered public key\n */\nexports.ecrecover = function (msgHash, v, r, s, chainId) {\n var signature = Buffer.concat([bytes_1.setLength(r, 32), bytes_1.setLength(s, 32)], 64);\n var recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n var senderPubKey = secp256k1.recover(msgHash, signature, recovery);\n return secp256k1.publicKeyConvert(senderPubKey, false).slice(1);\n};\n/**\n * Convert signature parameters into the format of `eth_sign` RPC method.\n * @returns Signature\n */\nexports.toRpcSig = function (v, r, s, chainId) {\n var recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n // geth (and the RPC eth_sign method) uses the 65 byte format used by Bitcoin\n return bytes_1.bufferToHex(Buffer.concat([bytes_1.setLengthLeft(r, 32), bytes_1.setLengthLeft(s, 32), bytes_1.toBuffer(v)]));\n};\n/**\n * Convert signature format of the `eth_sign` RPC method to signature parameters\n * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/2053\n */\nexports.fromRpcSig = function (sig) {\n var buf = bytes_1.toBuffer(sig);\n // NOTE: with potential introduction of chainId this might need to be updated\n if (buf.length !== 65) {\n throw new Error('Invalid signature length');\n }\n var v = buf[64];\n // support both versions of `eth_sign` responses\n if (v < 27) {\n v += 27;\n }\n return {\n v: v,\n r: buf.slice(0, 32),\n s: buf.slice(32, 64),\n };\n};\n/**\n * Validate a ECDSA signature.\n * @param homesteadOrLater Indicates whether this is being used on either the homestead hardfork or a later one\n */\nexports.isValidSignature = function (v, r, s, homesteadOrLater, chainId) {\n if (homesteadOrLater === void 0) { homesteadOrLater = true; }\n var SECP256K1_N_DIV_2 = new BN('7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0', 16);\n var SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 16);\n if (r.length !== 32 || s.length !== 32) {\n return false;\n }\n if (!isValidSigRecovery(calculateSigRecovery(v, chainId))) {\n return false;\n }\n var rBN = new BN(r);\n var sBN = new BN(s);\n if (rBN.isZero() || rBN.gt(SECP256K1_N) || sBN.isZero() || sBN.gt(SECP256K1_N)) {\n return false;\n }\n if (homesteadOrLater && sBN.cmp(SECP256K1_N_DIV_2) === 1) {\n return false;\n }\n return true;\n};\n/**\n * Returns the keccak-256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.\n * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`\n * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key\n * used to produce the signature.\n */\nexports.hashPersonalMessage = function (message) {\n var prefix = Buffer.from(\"\\u0019Ethereum Signed Message:\\n\" + message.length.toString(), 'utf-8');\n return hash_1.keccak(Buffer.concat([prefix, message]));\n};\nfunction calculateSigRecovery(v, chainId) {\n return chainId ? v - (2 * chainId + 35) : v - 27;\n}\nfunction isValidSigRecovery(recovery) {\n return recovery === 0 || recovery === 1;\n}\n//# sourceMappingURL=signature.js.map","'use strict';\n\n// This file is imported from secp256k1 v3\n// https://github.com/cryptocoinjs/secp256k1-node/blob/master/LICENSE\n\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\n\nvar ec = new EC('secp256k1');\nvar ecparams = ec.curve;\n\nexports.privateKeyExport = function (privateKey, compressed) {\n var d = new BN(privateKey);\n if (d.ucmp(ecparams.n) >= 0) {\n throw new Error('couldn\\'t export to DER format');\n }\n\n var point = ec.g.mul(d);\n return toPublicKey(point.getX(), point.getY(), compressed);\n};\n\nexports.privateKeyModInverse = function (privateKey) {\n var bn = new BN(privateKey);\n if (bn.ucmp(ecparams.n) >= 0 || bn.isZero()) {\n throw new Error('private key range is invalid');\n }\n\n return bn.invm(ecparams.n).toArrayLike(Buffer, 'be', 32);\n};\n\nexports.signatureImport = function (sigObj) {\n var r = new BN(sigObj.r);\n if (r.ucmp(ecparams.n) >= 0) {\n r = new BN(0);\n }\n\n var s = new BN(sigObj.s);\n if (s.ucmp(ecparams.n) >= 0) {\n s = new BN(0);\n }\n\n return Buffer.concat([r.toArrayLike(Buffer, 'be', 32), s.toArrayLike(Buffer, 'be', 32)]);\n};\n\nexports.ecdhUnsafe = function (publicKey, privateKey, compressed) {\n var point = ec.keyFromPublic(publicKey);\n\n var scalar = new BN(privateKey);\n if (scalar.ucmp(ecparams.n) >= 0 || scalar.isZero()) {\n throw new Error('scalar was invalid (zero or overflow)');\n }\n\n var shared = point.pub.mul(scalar);\n return toPublicKey(shared.getX(), shared.getY(), compressed);\n};\n\nvar toPublicKey = function toPublicKey(x, y, compressed) {\n var publicKey = void 0;\n\n if (compressed) {\n publicKey = Buffer.alloc(33);\n publicKey[0] = y.isOdd() ? 0x03 : 0x02;\n x.toArrayLike(Buffer, 'be', 32).copy(publicKey, 1);\n } else {\n publicKey = Buffer.alloc(65);\n publicKey[0] = 0x04;\n x.toArrayLike(Buffer, 'be', 32).copy(publicKey, 1);\n y.toArrayLike(Buffer, 'be', 32).copy(publicKey, 33);\n }\n\n return publicKey;\n};","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nconst errorGas = [\"call\", \"estimateGas\"];\nfunction checkError(method, error, params) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n if (e && e.message.match(\"reverted\") && isHexString(e.data)) {\n return e.data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n const transaction = params.transaction || params.signedTransaction;\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"nonce too low\"\n if (message.match(/nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nconst _constructorGuard = {};\nexport class JsonRpcSigner extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n logger.checkNew(new.target, JsonRpcSigner);\n super();\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof (addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n }\n else if (typeof (addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n }\n else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n }\n else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash) => {\n return hash;\n }, (error) => {\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n // This cannot be mined any earlier than any recent block\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n // Send the transaction\n const hash = yield this.sendUncheckedTransaction(transaction);\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return yield poll(() => __awaiter(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash);\n if (tx === null) {\n return undefined;\n }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }), { oncePoll: this.provider });\n }\n catch (error) {\n error.transactionHash = hash;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n });\n }\n _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names (in-place)\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n });\n }\n unlock(password) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n}\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n};\nexport class JsonRpcProvider extends BaseProvider {\n constructor(url, network) {\n logger.checkNew(new.target, JsonRpcProvider);\n let networkOrReady = network;\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n // Default URL\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url: url\n }));\n }\n else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n }\n catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n }\n catch (error) { }\n }\n if (chainId != null) {\n const getNetwork = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n }\n catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n return result;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n throw error;\n });\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), params.position, params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n }\n else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-a559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n }\n catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function (filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [filterId]).then(function (hashes) {\n if (self._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function (hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function () {\n return self.getTransaction(hash).then(function (tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function () {\n return timer(1000);\n });\n }).then(function () {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function () { poll(); }, 0);\n return null;\n }).catch((error) => { });\n }\n poll();\n return filterId;\n }).catch((error) => { });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n // Some nodes (INFURA ropsten; INFURA mainnet is fine) do not like leading zeros.\n [\"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n const value = hexValue(transaction[key]);\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n result[key] = hexlify(transaction[key]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n}\n//# sourceMappingURL=json-rpc-provider.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = doLimit;\nfunction doLimit(fn, limit) {\n return function (iterable, iteratee, callback) {\n return fn(iterable, limit, iteratee, callback);\n };\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectCssReset = void 0;\nconst cssReset_css_1 = __importDefault(require(\"./cssReset-css\"));\nfunction injectCssReset() {\n const styleEl = document.createElement(\"style\");\n styleEl.type = \"text/css\";\n styleEl.appendChild(document.createTextNode(cssReset_css_1.default));\n document.documentElement.appendChild(styleEl);\n}\nexports.injectCssReset = injectCssReset;\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLink = exports.WalletLinkProvider = void 0;\nconst WalletLinkProvider_1 = require(\"./provider/WalletLinkProvider\");\nconst WalletLink_1 = require(\"./WalletLink\");\nvar WalletLinkProvider_2 = require(\"./provider/WalletLinkProvider\");\nObject.defineProperty(exports, \"WalletLinkProvider\", { enumerable: true, get: function () { return WalletLinkProvider_2.WalletLinkProvider; } });\nvar WalletLink_2 = require(\"./WalletLink\");\nObject.defineProperty(exports, \"WalletLink\", { enumerable: true, get: function () { return WalletLink_2.WalletLink; } });\nexports.default = WalletLink_1.WalletLink;\nif (typeof window !== \"undefined\") {\n window.WalletLink = WalletLink_1.WalletLink;\n window.WalletLinkProvider = WalletLinkProvider_1.WalletLinkProvider;\n}\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env';\nimport { HOOK_SETUP } from './const';\nimport { ApiProxy } from './proxy';\nexport * from './api';\nexport * from './plugin';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && pluginDescriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(pluginDescriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","module.exports = {};\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","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : ''\n\n var path =\n ''\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac } from \"@ethersproject/sha2\";\nexport function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen);\n const block1 = new Uint8Array(salt.length + 4);\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n let r;\n let T;\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n if (!hLen) {\n hLen = U.length;\n T = new Uint8Array(hLen);\n l = Math.ceil(keylen / hLen);\n r = keylen - (l - 1) * hLen;\n }\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++)\n T[k] ^= U[k];\n }\n const destPos = (i - 1) * hLen;\n const len = (i === l ? r : hLen);\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n return hexlify(DK);\n}\n//# sourceMappingURL=pbkdf2.js.map","(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 curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const extend = require('xtend')\nconst createRandomId = require('json-rpc-random-id')()\n\nmodule.exports = EthQuery\n\n\nfunction EthQuery(provider){\n const self = this\n self.currentProvider = provider\n}\n\n//\n// base queries\n//\n\n// default block\nEthQuery.prototype.getBalance = generateFnWithDefaultBlockFor(2, 'eth_getBalance')\nEthQuery.prototype.getCode = generateFnWithDefaultBlockFor(2, 'eth_getCode')\nEthQuery.prototype.getTransactionCount = generateFnWithDefaultBlockFor(2, 'eth_getTransactionCount')\nEthQuery.prototype.getStorageAt = generateFnWithDefaultBlockFor(3, 'eth_getStorageAt')\nEthQuery.prototype.call = generateFnWithDefaultBlockFor(2, 'eth_call')\n// standard\nEthQuery.prototype.protocolVersion = generateFnFor('eth_protocolVersion')\nEthQuery.prototype.syncing = generateFnFor('eth_syncing')\nEthQuery.prototype.coinbase = generateFnFor('eth_coinbase')\nEthQuery.prototype.mining = generateFnFor('eth_mining')\nEthQuery.prototype.hashrate = generateFnFor('eth_hashrate')\nEthQuery.prototype.gasPrice = generateFnFor('eth_gasPrice')\nEthQuery.prototype.accounts = generateFnFor('eth_accounts')\nEthQuery.prototype.blockNumber = generateFnFor('eth_blockNumber')\nEthQuery.prototype.getBlockTransactionCountByHash = generateFnFor('eth_getBlockTransactionCountByHash')\nEthQuery.prototype.getBlockTransactionCountByNumber = generateFnFor('eth_getBlockTransactionCountByNumber')\nEthQuery.prototype.getUncleCountByBlockHash = generateFnFor('eth_getUncleCountByBlockHash')\nEthQuery.prototype.getUncleCountByBlockNumber = generateFnFor('eth_getUncleCountByBlockNumber')\nEthQuery.prototype.sign = generateFnFor('eth_sign')\nEthQuery.prototype.sendTransaction = generateFnFor('eth_sendTransaction')\nEthQuery.prototype.sendRawTransaction = generateFnFor('eth_sendRawTransaction')\nEthQuery.prototype.estimateGas = generateFnFor('eth_estimateGas')\nEthQuery.prototype.getBlockByHash = generateFnFor('eth_getBlockByHash')\nEthQuery.prototype.getBlockByNumber = generateFnFor('eth_getBlockByNumber')\nEthQuery.prototype.getTransactionByHash = generateFnFor('eth_getTransactionByHash')\nEthQuery.prototype.getTransactionByBlockHashAndIndex = generateFnFor('eth_getTransactionByBlockHashAndIndex')\nEthQuery.prototype.getTransactionByBlockNumberAndIndex = generateFnFor('eth_getTransactionByBlockNumberAndIndex')\nEthQuery.prototype.getTransactionReceipt = generateFnFor('eth_getTransactionReceipt')\nEthQuery.prototype.getUncleByBlockHashAndIndex = generateFnFor('eth_getUncleByBlockHashAndIndex')\nEthQuery.prototype.getUncleByBlockNumberAndIndex = generateFnFor('eth_getUncleByBlockNumberAndIndex')\nEthQuery.prototype.getCompilers = generateFnFor('eth_getCompilers')\nEthQuery.prototype.compileLLL = generateFnFor('eth_compileLLL')\nEthQuery.prototype.compileSolidity = generateFnFor('eth_compileSolidity')\nEthQuery.prototype.compileSerpent = generateFnFor('eth_compileSerpent')\nEthQuery.prototype.newFilter = generateFnFor('eth_newFilter')\nEthQuery.prototype.newBlockFilter = generateFnFor('eth_newBlockFilter')\nEthQuery.prototype.newPendingTransactionFilter = generateFnFor('eth_newPendingTransactionFilter')\nEthQuery.prototype.uninstallFilter = generateFnFor('eth_uninstallFilter')\nEthQuery.prototype.getFilterChanges = generateFnFor('eth_getFilterChanges')\nEthQuery.prototype.getFilterLogs = generateFnFor('eth_getFilterLogs')\nEthQuery.prototype.getLogs = generateFnFor('eth_getLogs')\nEthQuery.prototype.getWork = generateFnFor('eth_getWork')\nEthQuery.prototype.submitWork = generateFnFor('eth_submitWork')\nEthQuery.prototype.submitHashrate = generateFnFor('eth_submitHashrate')\n\n// network level\n\nEthQuery.prototype.sendAsync = function(opts, cb){\n const self = this\n self.currentProvider.sendAsync(createPayload(opts), function(err, response){\n if (!err && response.error) err = new Error('EthQuery - RPC Error - '+response.error.message)\n if (err) return cb(err)\n cb(null, response.result)\n })\n}\n\n// util\n\nfunction generateFnFor(methodName){\n return function(){\n const self = this\n var args = [].slice.call(arguments)\n var cb = args.pop()\n self.sendAsync({\n method: methodName,\n params: args,\n }, cb)\n }\n}\n\nfunction generateFnWithDefaultBlockFor(argCount, methodName){\n return function(){\n const self = this\n var args = [].slice.call(arguments)\n var cb = args.pop()\n // set optional default block param\n if (args.length < argCount) args.push('latest')\n self.sendAsync({\n method: methodName,\n params: args,\n }, cb)\n }\n}\n\nfunction createPayload(data){\n return extend({\n // defaults\n id: createRandomId(),\n jsonrpc: '2.0',\n params: [],\n // user-specified\n }, data)\n}\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;","// 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}","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = require('events').EventEmitter;\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n },\n text,\n\n error = function (m) {\n // Call error when something is wrong.\n throw {\n name: 'SyntaxError',\n message: m,\n at: at,\n text: text\n };\n },\n \n next = function (c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n }\n \n // Get the next character. When there are no more characters,\n // return the empty string.\n \n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n \n number = function () {\n // Parse a number value.\n var number,\n string = '';\n \n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error(\"Bad number\");\n } else {\n return number;\n }\n },\n \n string = function () {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n \n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n } else if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error(\"Bad string\");\n },\n\n white = function () {\n\n// Skip whitespace.\n\n while (ch && ch <= ' ') {\n next();\n }\n },\n\n word = function () {\n\n// true, false, or null.\n\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error(\"Unexpected '\" + ch + \"'\");\n },\n\n value, // Place holder for the value function.\n\n array = function () {\n\n// Parse an array value.\n\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error(\"Bad array\");\n },\n\n object = function () {\n\n// Parse an object value.\n\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error(\"Bad object\");\n };\n\nvalue = function () {\n\n// Parse a JSON value. It could be an object, an array, a string, a number,\n// or a word.\n\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n};\n\n// Return the json_parse function. It will have access to all of the above\n// functions and variables.\n\nmodule.exports = function (source, reviver) {\n var result;\n \n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error(\"Syntax error\");\n }\n\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n\n return typeof reviver === 'function' ? (function walk(holder, key) {\n var k, v, value = holder[key];\n if (value && typeof value === 'object') {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n }\n }\n }\n return reviver.call(holder, key, value);\n }({'': result}, '')) : result;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","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","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\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 var 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 var 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 var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var 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 var scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n var size = qr.modules.size\n var data = qr.modules.data\n var scale = exports.getScale(size, opts)\n var symbolSize = Math.floor((size + opts.margin * 2) * scale)\n var scaledMargin = opts.margin * scale\n var palette = [opts.color.light, opts.color.dark]\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4\n var pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale)\n var 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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUniqueId = void 0;\n// uint32 (two's complement) max\n// more conservative than Number.MAX_SAFE_INTEGER\nconst MAX = 4294967295;\nlet idCounter = Math.floor(Math.random() * MAX);\nfunction getUniqueId() {\n idCounter = (idCounter + 1) % MAX;\n return idCounter;\n}\nexports.getUniqueId = getUniqueId;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VW5pcXVlSWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2V0VW5pcXVlSWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0NBQWdDO0FBQ2hDLGlEQUFpRDtBQUNqRCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUM7QUFDdkIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFFaEQsU0FBZ0IsV0FBVztJQUN6QixTQUFTLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2xDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFIRCxrQ0FHQyJ9","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\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 });\nvar xml_http_request_event_target_1 = require(\"./xml-http-request-event-target\");\nvar XMLHttpRequestUpload = /** @class */ (function (_super) {\n __extends(XMLHttpRequestUpload, _super);\n function XMLHttpRequestUpload() {\n var _this = _super.call(this) || this;\n _this._contentType = null;\n _this._body = null;\n _this._reset();\n return _this;\n }\n XMLHttpRequestUpload.prototype._reset = function () {\n this._contentType = null;\n this._body = null;\n };\n XMLHttpRequestUpload.prototype._setData = function (data) {\n if (data == null) {\n return;\n }\n if (typeof data === 'string') {\n if (data.length !== 0) {\n this._contentType = 'text/plain;charset=UTF-8';\n }\n this._body = new Buffer(data, 'utf-8');\n }\n else if (Buffer.isBuffer(data)) {\n this._body = data;\n }\n else if (data instanceof ArrayBuffer) {\n var body = new Buffer(data.byteLength);\n var view = new Uint8Array(data);\n for (var i = 0; i < data.byteLength; i++) {\n body[i] = view[i];\n }\n this._body = body;\n }\n else if (data.buffer && data.buffer instanceof ArrayBuffer) {\n var body = new Buffer(data.byteLength);\n var offset = data.byteOffset;\n var view = new Uint8Array(data.buffer);\n for (var i = 0; i < data.byteLength; i++) {\n body[i] = view[i + offset];\n }\n this._body = body;\n }\n else {\n throw new Error(\"Unsupported send() data \" + data);\n }\n };\n XMLHttpRequestUpload.prototype._finalizeHeaders = function (headers, loweredHeaders) {\n if (this._contentType && !loweredHeaders['content-type']) {\n headers['Content-Type'] = this._contentType;\n }\n if (this._body) {\n headers['Content-Length'] = this._body.length.toString();\n }\n };\n XMLHttpRequestUpload.prototype._startUpload = function (request) {\n if (this._body) {\n request.write(this._body);\n }\n request.end();\n };\n return XMLHttpRequestUpload;\n}(xml_http_request_event_target_1.XMLHttpRequestEventTarget));\nexports.XMLHttpRequestUpload = XMLHttpRequestUpload;\n//# sourceMappingURL=xml-http-request-upload.js.map","/*\n * Emulate 'eth_accounts' / 'eth_sendTransaction' using 'eth_sendRawTransaction'\n *\n * The two callbacks a user needs to implement are:\n * - getAccounts() -- array of addresses supported\n * - signTransaction(tx) -- sign a raw transaction object\n */\n\nconst waterfall = require('async/waterfall')\nconst parallel = require('async/parallel')\nconst inherits = require('util').inherits\nconst ethUtil = require('ethereumjs-util')\nconst sigUtil = require('eth-sig-util')\nconst extend = require('xtend')\nconst Semaphore = require('semaphore')\nconst Subprovider = require('./subprovider.js')\nconst estimateGas = require('../util/estimate-gas.js')\nconst hexRegex = /^[0-9A-Fa-f]+$/g\n\nmodule.exports = HookedWalletSubprovider\n\n// handles the following RPC methods:\n// eth_coinbase\n// eth_accounts\n// eth_sendTransaction\n// eth_sign\n// eth_signTypedData\n// eth_signTypedData_v3\n// eth_signTypedData_v4\n// personal_sign\n// eth_decryptMessage\n// encryption_public_key\n// personal_ecRecover\n// parity_postTransaction\n// parity_checkRequest\n// parity_defaultAccount\n\n//\n// Tx Signature Flow\n//\n// handleRequest: eth_sendTransaction\n// validateTransaction (basic validity check)\n// validateSender (checks that sender is in accounts)\n// processTransaction (sign tx and submit to network)\n// approveTransaction (UI approval hook)\n// checkApproval\n// finalizeAndSubmitTx (tx signing)\n// nonceLock.take (bottle neck to ensure atomic nonce)\n// fillInTxExtras (set fallback gasPrice, nonce, etc)\n// signTransaction (perform the signature)\n// publishTransaction (publish signed tx to network)\n//\n\n\ninherits(HookedWalletSubprovider, Subprovider)\n\nfunction HookedWalletSubprovider(opts){\n const self = this\n // control flow\n self.nonceLock = Semaphore(1)\n\n // data lookup\n if (opts.getAccounts) self.getAccounts = opts.getAccounts\n // high level override\n if (opts.processTransaction) self.processTransaction = opts.processTransaction\n if (opts.processMessage) self.processMessage = opts.processMessage\n if (opts.processPersonalMessage) self.processPersonalMessage = opts.processPersonalMessage\n if (opts.processTypedMessage) self.processTypedMessage = opts.processTypedMessage\n // approval hooks\n self.approveTransaction = opts.approveTransaction || self.autoApprove\n self.approveMessage = opts.approveMessage || self.autoApprove\n self.approvePersonalMessage = opts.approvePersonalMessage || self.autoApprove\n self.approveDecryptMessage = opts.approveDecryptMessage || self.autoApprove\n self.approveEncryptionPublicKey = opts.approveEncryptionPublicKey || self.autoApprove\n self.approveTypedMessage = opts.approveTypedMessage || self.autoApprove\n // actually perform the signature\n if (opts.signTransaction) self.signTransaction = opts.signTransaction || mustProvideInConstructor('signTransaction')\n if (opts.signMessage) self.signMessage = opts.signMessage || mustProvideInConstructor('signMessage')\n if (opts.signPersonalMessage) self.signPersonalMessage = opts.signPersonalMessage || mustProvideInConstructor('signPersonalMessage')\n if (opts.decryptMessage) self.decryptMessage = opts.decryptMessage || mustProvideInConstructor('decryptMessage')\n if (opts.encryptionPublicKey) self.encryptionPublicKey = opts.encryptionPublicKey || mustProvideInConstructor('encryptionPublicKey')\n if (opts.signTypedMessage) self.signTypedMessage = opts.signTypedMessage || mustProvideInConstructor('signTypedMessage')\n if (opts.recoverPersonalSignature) self.recoverPersonalSignature = opts.recoverPersonalSignature\n // publish to network\n if (opts.publishTransaction) self.publishTransaction = opts.publishTransaction\n // gas options\n self.estimateGas = opts.estimateGas || self.estimateGas\n self.getGasPrice = opts.getGasPrice || self.getGasPrice\n}\n\nHookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){\n const self = this\n self._parityRequests = {}\n self._parityRequestCount = 0\n\n // switch statement is not block scoped\n // sp we cant repeat var declarations\n let txParams, msgParams, extraParams\n let message, address\n\n switch(payload.method) {\n\n case 'eth_coinbase':\n // process normally\n self.getAccounts(function(err, accounts){\n if (err) return end(err)\n let result = accounts[0] || null\n end(null, result)\n })\n return\n\n case 'eth_accounts':\n // process normally\n self.getAccounts(function(err, accounts){\n if (err) return end(err)\n end(null, accounts)\n })\n return\n\n case 'eth_sendTransaction':\n txParams = payload.params[0]\n waterfall([\n (cb) => self.validateTransaction(txParams, cb),\n (cb) => self.processTransaction(txParams, cb),\n ], end)\n return\n\n case 'eth_signTransaction':\n txParams = payload.params[0]\n waterfall([\n (cb) => self.validateTransaction(txParams, cb),\n (cb) => self.processSignTransaction(txParams, cb),\n ], end)\n return\n\n case 'eth_sign':\n // process normally\n address = payload.params[0]\n message = payload.params[1]\n // non-standard \"extraParams\" to be appended to our \"msgParams\" obj\n // good place for metadata\n extraParams = payload.params[2] || {}\n msgParams = extend(extraParams, {\n from: address,\n data: message,\n })\n waterfall([\n (cb) => self.validateMessage(msgParams, cb),\n (cb) => self.processMessage(msgParams, cb),\n ], end)\n return\n\n case 'personal_sign':\n return (function(){\n // process normally\n const first = payload.params[0]\n const second = payload.params[1]\n\n // We initially incorrectly ordered these parameters.\n // To gracefully respect users who adopted this API early,\n // we are currently gracefully recovering from the wrong param order\n // when it is clearly identifiable.\n //\n // That means when the first param is definitely an address,\n // and the second param is definitely not, but is hex.\n if (resemblesData(second) && resemblesAddress(first)) {\n let warning = `The eth_personalSign method requires params ordered `\n warning += `[message, address]. This was previously handled incorrectly, `\n warning += `and has been corrected automatically. `\n warning += `Please switch this param order for smooth behavior in the future.`\n console.warn(warning)\n\n address = payload.params[0]\n message = payload.params[1]\n } else {\n message = payload.params[0]\n address = payload.params[1]\n }\n\n // non-standard \"extraParams\" to be appended to our \"msgParams\" obj\n // good place for metadata\n extraParams = payload.params[2] || {}\n msgParams = extend(extraParams, {\n from: address,\n data: message,\n })\n waterfall([\n (cb) => self.validatePersonalMessage(msgParams, cb),\n (cb) => self.processPersonalMessage(msgParams, cb),\n ], end)\n })()\n\n case 'eth_decryptMessage':\n return (function(){\n // process normally\n const first = payload.params[0]\n const second = payload.params[1]\n\n // We initially incorrectly ordered these parameters.\n // To gracefully respect users who adopted this API early,\n // we are currently gracefully recovering from the wrong param order\n // when it is clearly identifiable.\n //\n // That means when the first param is definitely an address,\n // and the second param is definitely not, but is hex.\n if (resemblesData(second) && resemblesAddress(first)) {\n let warning = `The eth_decryptMessage method requires params ordered `\n warning += `[message, address]. This was previously handled incorrectly, `\n warning += `and has been corrected automatically. `\n warning += `Please switch this param order for smooth behavior in the future.`\n console.warn(warning)\n\n address = payload.params[0]\n message = payload.params[1]\n } else {\n message = payload.params[0]\n address = payload.params[1]\n }\n\n // non-standard \"extraParams\" to be appended to our \"msgParams\" obj\n // good place for metadata\n extraParams = payload.params[2] || {}\n msgParams = extend(extraParams, {\n from: address,\n data: message,\n })\n waterfall([\n (cb) => self.validateDecryptMessage(msgParams, cb),\n (cb) => self.processDecryptMessage(msgParams, cb),\n ], end)\n })()\n \n case 'encryption_public_key':\n return (function(){\n const address = payload.params[0]\n \n waterfall([\n (cb) => self.validateEncryptionPublicKey(address, cb),\n (cb) => self.processEncryptionPublicKey(address, cb),\n ], end)\n })()\n \n case 'personal_ecRecover':\n return (function(){ \n message = payload.params[0]\n let signature = payload.params[1]\n // non-standard \"extraParams\" to be appended to our \"msgParams\" obj\n // good place for metadata\n extraParams = payload.params[2] || {}\n msgParams = extend(extraParams, {\n sig: signature,\n data: message,\n })\n self.recoverPersonalSignature(msgParams, end)\n })()\n\n case 'eth_signTypedData':\n case 'eth_signTypedData_v3':\n case 'eth_signTypedData_v4':\n return (function(){ \n // process normally\n \n const first = payload.params[0]\n const second = payload.params[1]\n\n if (resemblesAddress(first)) {\n address = first\n message = second\n } else {\n message = first\n address = second\n }\n\n extraParams = payload.params[2] || {}\n msgParams = extend(extraParams, {\n from: address,\n data: message,\n })\n waterfall([\n (cb) => self.validateTypedMessage(msgParams, cb),\n (cb) => self.processTypedMessage(msgParams, cb),\n ], end)\n })()\n\n case 'parity_postTransaction':\n txParams = payload.params[0]\n self.parityPostTransaction(txParams, end)\n return\n\n case 'parity_postSign':\n address = payload.params[0]\n message = payload.params[1]\n self.parityPostSign(address, message, end)\n return\n\n case 'parity_checkRequest':\n return (function(){\n const requestId = payload.params[0]\n self.parityCheckRequest(requestId, end)\n })()\n\n case 'parity_defaultAccount':\n self.getAccounts(function(err, accounts){\n if (err) return end(err)\n const account = accounts[0] || null\n end(null, account)\n })\n return\n\n default:\n next()\n return\n\n }\n}\n\n//\n// data lookup\n//\n\nHookedWalletSubprovider.prototype.getAccounts = function(cb) {\n cb(null, [])\n}\n\n\n//\n// \"process\" high level flow\n//\n\nHookedWalletSubprovider.prototype.processTransaction = function(txParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approveTransaction(txParams, cb),\n (didApprove, cb) => self.checkApproval('transaction', didApprove, cb),\n (cb) => self.finalizeAndSubmitTx(txParams, cb),\n ], cb)\n}\n\n\nHookedWalletSubprovider.prototype.processSignTransaction = function(txParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approveTransaction(txParams, cb),\n (didApprove, cb) => self.checkApproval('transaction', didApprove, cb),\n (cb) => self.finalizeTx(txParams, cb),\n ], cb)\n}\n\nHookedWalletSubprovider.prototype.processMessage = function(msgParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approveMessage(msgParams, cb),\n (didApprove, cb) => self.checkApproval('message', didApprove, cb),\n (cb) => self.signMessage(msgParams, cb),\n ], cb)\n}\n\nHookedWalletSubprovider.prototype.processPersonalMessage = function(msgParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approvePersonalMessage(msgParams, cb),\n (didApprove, cb) => self.checkApproval('message', didApprove, cb),\n (cb) => self.signPersonalMessage(msgParams, cb),\n ], cb)\n}\n\nHookedWalletSubprovider.prototype.processDecryptMessage = function(msgParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approveDecryptMessage(msgParams, cb),\n (didApprove, cb) => self.checkApproval('decryptMessage', didApprove, cb),\n (cb) => self.decryptMessage(msgParams, cb),\n ], cb)\n}\n\nHookedWalletSubprovider.prototype.processEncryptionPublicKey = function(msgParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approveEncryptionPublicKey(msgParams, cb),\n (didApprove, cb) => self.checkApproval('encryptionPublicKey', didApprove, cb),\n (cb) => self.encryptionPublicKey(msgParams, cb),\n ], cb)\n}\n\nHookedWalletSubprovider.prototype.processTypedMessage = function(msgParams, cb) {\n const self = this\n waterfall([\n (cb) => self.approveTypedMessage(msgParams, cb),\n (didApprove, cb) => self.checkApproval('message', didApprove, cb),\n (cb) => self.signTypedMessage(msgParams, cb),\n ], cb)\n}\n\n//\n// approval\n//\n\nHookedWalletSubprovider.prototype.autoApprove = function(txParams, cb) {\n cb(null, true)\n}\n\nHookedWalletSubprovider.prototype.checkApproval = function(type, didApprove, cb) {\n cb( didApprove ? null : new Error('User denied '+type+' signature.') )\n}\n\n//\n// parity\n//\n\nHookedWalletSubprovider.prototype.parityPostTransaction = function(txParams, cb) {\n const self = this\n\n // get next id\n const count = self._parityRequestCount\n const reqId = `0x${count.toString(16)}`\n self._parityRequestCount++\n\n self.emitPayload({\n method: 'eth_sendTransaction',\n params: [txParams],\n }, function(error, res){\n if (error) {\n self._parityRequests[reqId] = { error }\n return\n }\n const txHash = res.result\n self._parityRequests[reqId] = txHash\n })\n\n cb(null, reqId)\n}\n\n\nHookedWalletSubprovider.prototype.parityPostSign = function(address, message, cb) {\n const self = this\n\n // get next id\n const count = self._parityRequestCount\n const reqId = `0x${count.toString(16)}`\n self._parityRequestCount++\n\n self.emitPayload({\n method: 'eth_sign',\n params: [address, message],\n }, function(error, res){\n if (error) {\n self._parityRequests[reqId] = { error }\n return\n }\n const result = res.result\n self._parityRequests[reqId] = result\n })\n\n cb(null, reqId)\n}\n\nHookedWalletSubprovider.prototype.parityCheckRequest = function(reqId, cb) {\n const self = this\n const result = self._parityRequests[reqId] || null\n // tx not handled yet\n if (!result) return cb(null, null)\n // tx was rejected (or other error)\n if (result.error) return cb(result.error)\n // tx sent\n cb(null, result)\n}\n\n//\n// signature and recovery\n//\n\nHookedWalletSubprovider.prototype.recoverPersonalSignature = function(msgParams, cb) {\n let senderHex\n try {\n senderHex = sigUtil.recoverPersonalSignature(msgParams)\n } catch (err) {\n return cb(err)\n }\n cb(null, senderHex)\n}\n\n//\n// validation\n//\n\nHookedWalletSubprovider.prototype.validateTransaction = function(txParams, cb){\n const self = this\n // shortcut: undefined sender is invalid\n if (txParams.from === undefined) return cb(new Error(`Undefined address - from address required to sign transaction.`))\n self.validateSender(txParams.from, function(err, senderIsValid){\n if (err) return cb(err)\n if (!senderIsValid) return cb(new Error(`Unknown address - unable to sign transaction for this address: \"${txParams.from}\"`))\n cb()\n })\n}\n\nHookedWalletSubprovider.prototype.validateMessage = function(msgParams, cb){\n const self = this\n if (msgParams.from === undefined) return cb(new Error(`Undefined address - from address required to sign message.`))\n self.validateSender(msgParams.from, function(err, senderIsValid){\n if (err) return cb(err)\n if (!senderIsValid) return cb(new Error(`Unknown address - unable to sign message for this address: \"${msgParams.from}\"`))\n cb()\n })\n}\n\nHookedWalletSubprovider.prototype.validatePersonalMessage = function(msgParams, cb){\n const self = this\n if (msgParams.from === undefined) return cb(new Error(`Undefined address - from address required to sign personal message.`))\n if (msgParams.data === undefined) return cb(new Error(`Undefined message - message required to sign personal message.`))\n if (!isValidHex(msgParams.data)) return cb(new Error(`HookedWalletSubprovider - validateMessage - message was not encoded as hex.`))\n self.validateSender(msgParams.from, function(err, senderIsValid){\n if (err) return cb(err)\n if (!senderIsValid) return cb(new Error(`Unknown address - unable to sign message for this address: \"${msgParams.from}\"`))\n cb()\n })\n}\n\nHookedWalletSubprovider.prototype.validateDecryptMessage = function(msgParams, cb){\n const self = this\n if (msgParams.from === undefined) return cb(new Error(`Undefined address - from address required to decrypt message.`))\n if (msgParams.data === undefined) return cb(new Error(`Undefined message - message required to decrypt message.`))\n if (!isValidHex(msgParams.data)) return cb(new Error(`HookedWalletSubprovider - validateDecryptMessage - message was not encoded as hex.`))\n self.validateSender(msgParams.from, function(err, senderIsValid){\n if (err) return cb(err)\n if (!senderIsValid) return cb(new Error(`Unknown address - unable to decrypt message for this address: \"${msgParams.from}\"`))\n cb()\n })\n}\n\nHookedWalletSubprovider.prototype.validateEncryptionPublicKey = function(address, cb){\n const self = this\n\n self.validateSender(address, function(err, senderIsValid){\n if (err) return cb(err)\n if (!senderIsValid) return cb(new Error(`Unknown address - unable to obtain encryption public key for this address: \"${address}\"`))\n cb()\n })\n}\n\nHookedWalletSubprovider.prototype.validateTypedMessage = function(msgParams, cb){\n if (msgParams.from === undefined) return cb(new Error(`Undefined address - from address required to sign typed data.`))\n if (msgParams.data === undefined) return cb(new Error(`Undefined data - message required to sign typed data.`))\n this.validateSender(msgParams.from, function(err, senderIsValid){\n if (err) return cb(err)\n if (!senderIsValid) return cb(new Error(`Unknown address - unable to sign message for this address: \"${msgParams.from}\"`))\n cb()\n })\n}\n\nHookedWalletSubprovider.prototype.validateSender = function(senderAddress, cb){\n const self = this\n // shortcut: undefined sender is invalid\n if (!senderAddress) return cb(null, false)\n self.getAccounts(function(err, accounts){\n if (err) return cb(err)\n const senderIsValid = (accounts.map(toLowerCase).indexOf(senderAddress.toLowerCase()) !== -1)\n cb(null, senderIsValid)\n })\n}\n\n//\n// tx helpers\n//\n\nHookedWalletSubprovider.prototype.finalizeAndSubmitTx = function(txParams, cb) {\n const self = this\n // can only allow one tx to pass through this flow at a time\n // so we can atomically consume a nonce\n self.nonceLock.take(function(){\n waterfall([\n self.fillInTxExtras.bind(self, txParams),\n self.signTransaction.bind(self),\n self.publishTransaction.bind(self),\n ], function(err, txHash){\n self.nonceLock.leave()\n if (err) return cb(err)\n cb(null, txHash)\n })\n })\n}\n\nHookedWalletSubprovider.prototype.finalizeTx = function(txParams, cb) {\n const self = this\n // can only allow one tx to pass through this flow at a time\n // so we can atomically consume a nonce\n self.nonceLock.take(function(){\n waterfall([\n self.fillInTxExtras.bind(self, txParams),\n self.signTransaction.bind(self),\n ], function(err, signedTx){\n self.nonceLock.leave()\n if (err) return cb(err)\n cb(null, {raw: signedTx, tx: txParams})\n })\n })\n}\n\nHookedWalletSubprovider.prototype.publishTransaction = function(rawTx, cb) {\n const self = this\n self.emitPayload({\n method: 'eth_sendRawTransaction',\n params: [rawTx],\n }, function(err, res){\n if (err) return cb(err)\n cb(null, res.result)\n })\n}\n\nHookedWalletSubprovider.prototype.estimateGas = function(txParams, cb) {\n const self = this\n estimateGas(self.engine, txParams, cb)\n}\n\nHookedWalletSubprovider.prototype.getGasPrice = function(cb) {\n const self = this\n self.emitPayload({ method: 'eth_gasPrice', params: [] }, function (err, res) {\n if (err) return cb(err)\n cb(null, res.result)\n })\n}\n\nHookedWalletSubprovider.prototype.fillInTxExtras = function(txParams, cb){\n const self = this\n const address = txParams.from\n // console.log('fillInTxExtras - address:', address)\n\n const tasks = {}\n\n if (txParams.gasPrice === undefined) {\n // console.log(\"need to get gasprice\")\n tasks.gasPrice = self.getGasPrice.bind(self)\n }\n\n if (txParams.nonce === undefined) {\n // console.log(\"need to get nonce\")\n tasks.nonce = self.emitPayload.bind(self, { method: 'eth_getTransactionCount', params: [address, 'pending'] })\n }\n\n if (txParams.gas === undefined) {\n // console.log(\"need to get gas\")\n tasks.gas = self.estimateGas.bind(self, cloneTxParams(txParams))\n }\n\n parallel(tasks, function(err, taskResults) {\n if (err) return cb(err)\n\n const result = {}\n if (taskResults.gasPrice) result.gasPrice = taskResults.gasPrice\n if (taskResults.nonce) result.nonce = taskResults.nonce.result\n if (taskResults.gas) result.gas = taskResults.gas\n\n cb(null, extend(txParams, result))\n })\n}\n\n// util\n\n// we use this to clean any custom params from the txParams\nfunction cloneTxParams(txParams){\n return {\n from: txParams.from,\n to: txParams.to,\n value: txParams.value,\n data: txParams.data,\n gas: txParams.gas,\n gasPrice: txParams.gasPrice,\n nonce: txParams.nonce,\n }\n}\n\nfunction toLowerCase(string){\n return string.toLowerCase()\n}\n\nfunction resemblesAddress (string) {\n const fixed = ethUtil.addHexPrefix(string)\n const isValid = ethUtil.isValidAddress(fixed)\n return isValid\n}\n\n// Returns true if resembles hex data\n// but definitely not a valid address.\nfunction resemblesData (string) {\n const fixed = ethUtil.addHexPrefix(string)\n const isValidAddress = ethUtil.isValidAddress(fixed)\n return !isValidAddress && isValidHex(string)\n}\n\nfunction isValidHex(data) {\n const isString = typeof data === 'string'\n if (!isString) return false\n const isHexPrefixed = data.slice(0,2) === '0x'\n if (!isHexPrefixed) return false\n const nonPrefixed = data.slice(2)\n const isValid = nonPrefixed.match(hexRegex)\n return isValid\n}\n\nfunction mustProvideInConstructor(methodName) {\n return function(params, cb) {\n cb(new Error('ProviderEngine - HookedWalletSubprovider - Must provide \"' + methodName + '\" fn in constructor options'))\n }\n}\n","'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","const EC = require('elliptic').ec\n\nconst ec = new EC('secp256k1')\nconst ecparams = ec.curve\n\n// Hack, we can not use bn.js@5, while elliptic uses bn.js@4\n// See https://github.com/indutny/elliptic/issues/191#issuecomment-569888758\nconst BN = ecparams.n.constructor\n\nfunction loadCompressedPublicKey (first, xbuf) {\n let x = new BN(xbuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0) return null\n x = x.toRed(ecparams.red)\n\n // compute corresponding Y\n let y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()\n if ((first === 0x03) !== y.isOdd()) y = y.redNeg()\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadUncompressedPublicKey (first, xbuf, ybuf) {\n let x = new BN(xbuf)\n let y = new BN(ybuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0 || y.cmp(ecparams.p) >= 0) return null\n\n x = x.toRed(ecparams.red)\n y = y.toRed(ecparams.red)\n\n // is odd flag\n if ((first === 0x06 || first === 0x07) && y.isOdd() !== (first === 0x07)) return null\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadPublicKey (pubkey) {\n // length should be validated in interface\n const first = pubkey[0]\n switch (first) {\n case 0x02:\n case 0x03:\n if (pubkey.length !== 33) return null\n return loadCompressedPublicKey(first, pubkey.subarray(1, 33))\n case 0x04:\n case 0x06:\n case 0x07:\n if (pubkey.length !== 65) return null\n return loadUncompressedPublicKey(first, pubkey.subarray(1, 33), pubkey.subarray(33, 65))\n default:\n return null\n }\n}\n\nfunction savePublicKey (output, point) {\n const pubkey = point.encode(null, output.length === 33)\n // Loop should be faster because we do not need create extra Uint8Array\n // output.set(new Uint8Array(pubkey))\n for (let i = 0; i < output.length; ++i) output[i] = pubkey[i]\n}\n\nmodule.exports = {\n contextRandomize () {\n return 0\n },\n\n privateKeyVerify (seckey) {\n const bn = new BN(seckey)\n return bn.cmp(ecparams.n) < 0 && !bn.isZero() ? 0 : 1\n },\n\n privateKeyNegate (seckey) {\n const bn = new BN(seckey)\n const negate = ecparams.n.sub(bn).umod(ecparams.n).toArrayLike(Uint8Array, 'be', 32)\n seckey.set(negate)\n return 0\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n const bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0) return 1\n\n bn.iadd(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn.isub(ecparams.n)\n if (bn.isZero()) return 1\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n privateKeyTweakMul (seckey, tweak) {\n let bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n bn.imul(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn = bn.umod(ecparams.n)\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n publicKeyVerify (pubkey) {\n const pair = loadPublicKey(pubkey)\n return pair === null ? 1 : 0\n },\n\n publicKeyCreate (output, seckey) {\n const bn = new BN(seckey)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n const point = ec.keyFromPrivate(seckey).getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyConvert (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyNegate (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n point.y = point.y.redNeg()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyCombine (output, pubkeys) {\n const pairs = new Array(pubkeys.length)\n for (let i = 0; i < pubkeys.length; ++i) {\n pairs[i] = loadPublicKey(pubkeys[i])\n if (pairs[i] === null) return 1\n }\n\n let point = pairs[0].getPublic()\n for (let i = 1; i < pairs.length; ++i) point = point.add(pairs[i].pub)\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakAdd (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0) return 2\n\n const point = pair.getPublic().add(ecparams.g.mul(tweak))\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakMul (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0 || tweak.isZero()) return 2\n\n const point = pair.getPublic().mul(tweak)\n savePublicKey(output, point)\n\n return 0\n },\n\n signatureNormalize (sig) {\n const r = new BN(sig.subarray(0, 32))\n const s = new BN(sig.subarray(32, 64))\n if (r.cmp(ecparams.n) >= 0 || s.cmp(ecparams.n) >= 0) return 1\n\n if (s.cmp(ec.nh) === 1) {\n sig.set(ecparams.n.sub(s).toArrayLike(Uint8Array, 'be', 32), 32)\n }\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureExport (obj, sig) {\n const sigR = sig.subarray(0, 32)\n const sigS = sig.subarray(32, 64)\n if (new BN(sigR).cmp(ecparams.n) >= 0) return 1\n if (new BN(sigS).cmp(ecparams.n) >= 0) return 1\n\n const { output } = obj\n\n // Prepare R\n let r = output.subarray(4, 4 + 33)\n r[0] = 0x00\n r.set(sigR, 1)\n\n let lenR = 33\n let posR = 0\n for (; lenR > 1 && r[posR] === 0x00 && !(r[posR + 1] & 0x80); --lenR, ++posR);\n\n r = r.subarray(posR)\n if (r[0] & 0x80) return 1\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) return 1\n\n // Prepare S\n let s = output.subarray(6 + 33, 6 + 33 + 33)\n s[0] = 0x00\n s.set(sigS, 1)\n\n let lenS = 33\n let posS = 0\n for (; lenS > 1 && s[posS] === 0x00 && !(s[posS + 1] & 0x80); --lenS, ++posS);\n\n s = s.subarray(posS)\n if (s[0] & 0x80) return 1\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) return 1\n\n // Set output length for return\n obj.outputlen = 6 + lenR + lenS\n\n // Output in specified format\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n output[0] = 0x30\n output[1] = obj.outputlen - 2\n output[2] = 0x02\n output[3] = r.length\n output.set(r, 4)\n output[4 + lenR] = 0x02\n output[5 + lenR] = s.length\n output.set(s, 6 + lenR)\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureImport (output, sig) {\n if (sig.length < 8) return 1\n if (sig.length > 72) return 1\n if (sig[0] !== 0x30) return 1\n if (sig[1] !== sig.length - 2) return 1\n if (sig[2] !== 0x02) return 1\n\n const lenR = sig[3]\n if (lenR === 0) return 1\n if (5 + lenR >= sig.length) return 1\n if (sig[4 + lenR] !== 0x02) return 1\n\n const lenS = sig[5 + lenR]\n if (lenS === 0) return 1\n if ((6 + lenR + lenS) !== sig.length) return 1\n\n if (sig[4] & 0x80) return 1\n if (lenR > 1 && (sig[4] === 0x00) && !(sig[5] & 0x80)) return 1\n\n if (sig[lenR + 6] & 0x80) return 1\n if (lenS > 1 && (sig[lenR + 6] === 0x00) && !(sig[lenR + 7] & 0x80)) return 1\n\n let sigR = sig.subarray(4, 4 + lenR)\n if (sigR.length === 33 && sigR[0] === 0x00) sigR = sigR.subarray(1)\n if (sigR.length > 32) return 1\n\n let sigS = sig.subarray(6 + lenR)\n if (sigS.length === 33 && sigS[0] === 0x00) sigS = sigS.slice(1)\n if (sigS.length > 32) throw new Error('S length is too long')\n\n let r = new BN(sigR)\n if (r.cmp(ecparams.n) >= 0) r = new BN(0)\n\n let s = new BN(sig.subarray(6 + lenR))\n if (s.cmp(ecparams.n) >= 0) s = new BN(0)\n\n output.set(r.toArrayLike(Uint8Array, 'be', 32), 0)\n output.set(s.toArrayLike(Uint8Array, 'be', 32), 32)\n\n return 0\n },\n\n ecdsaSign (obj, message, seckey, data, noncefn) {\n if (noncefn) {\n const _noncefn = noncefn\n noncefn = (counter) => {\n const nonce = _noncefn(message, seckey, null, data, counter)\n\n const isValid = nonce instanceof Uint8Array && nonce.length === 32\n if (!isValid) throw new Error('This is the way')\n\n return new BN(nonce)\n }\n }\n\n const d = new BN(seckey)\n if (d.cmp(ecparams.n) >= 0 || d.isZero()) return 1\n\n let sig\n try {\n sig = ec.sign(message, seckey, { canonical: true, k: noncefn, pers: data })\n } catch (err) {\n return 1\n }\n\n obj.signature.set(sig.r.toArrayLike(Uint8Array, 'be', 32), 0)\n obj.signature.set(sig.s.toArrayLike(Uint8Array, 'be', 32), 32)\n obj.recid = sig.recoveryParam\n\n return 0\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n const sigObj = { r: sig.subarray(0, 32), s: sig.subarray(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n if (sigs.cmp(ec.nh) === 1 || sigr.isZero() || sigs.isZero()) return 3\n\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 2\n\n const point = pair.getPublic()\n const isValid = ec.verify(msg32, sigObj, point)\n return isValid ? 0 : 3\n },\n\n ecdsaRecover (output, sig, recid, msg32) {\n const sigObj = { r: sig.slice(0, 32), s: sig.slice(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n\n if (sigr.isZero() || sigs.isZero()) return 2\n\n // Can throw `throw new Error('Unable to find sencond key candinate');`\n let point\n try {\n point = ec.recoverPubKey(msg32, sigObj, recid)\n } catch (err) {\n return 2\n }\n\n savePublicKey(output, point)\n\n return 0\n },\n\n ecdh (output, pubkey, seckey, data, hashfn, xbuf, ybuf) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const scalar = new BN(seckey)\n if (scalar.cmp(ecparams.n) >= 0 || scalar.isZero()) return 2\n\n const point = pair.getPublic().mul(scalar)\n\n if (hashfn === undefined) {\n const data = point.encode(null, true)\n const sha256 = ec.hash().update(data).digest()\n for (let i = 0; i < 32; ++i) output[i] = sha256[i]\n } else {\n if (!xbuf) xbuf = new Uint8Array(32)\n const x = point.getX().toArray('be', 32)\n for (let i = 0; i < 32; ++i) xbuf[i] = x[i]\n\n if (!ybuf) ybuf = new Uint8Array(32)\n const y = point.getY().toArray('be', 32)\n for (let i = 0; i < 32; ++i) ybuf[i] = y[i]\n\n const hash = hashfn(xbuf, ybuf, data)\n\n const isValid = hash instanceof Uint8Array && hash.length === output.length\n if (!isValid) return 2\n\n output.set(hash)\n }\n\n return 0\n }\n}\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\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};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EthereumProviderError = exports.EthereumRpcError = void 0;\nconst fast_safe_stringify_1 = require(\"fast-safe-stringify\");\n/**\n * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors\n * per EIP-1474.\n * Permits any integer error code.\n */\nclass EthereumRpcError extends Error {\n constructor(code, message, data) {\n if (!Number.isInteger(code)) {\n throw new Error('\"code\" must be an integer.');\n }\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string.');\n }\n super(message);\n this.code = code;\n if (data !== undefined) {\n this.data = data;\n }\n }\n /**\n * Returns a plain object with all public class properties.\n */\n serialize() {\n const serialized = {\n code: this.code,\n message: this.message,\n };\n if (this.data !== undefined) {\n serialized.data = this.data;\n }\n if (this.stack) {\n serialized.stack = this.stack;\n }\n return serialized;\n }\n /**\n * Return a string representation of the serialized error, omitting\n * any circular references.\n */\n toString() {\n return fast_safe_stringify_1.default(this.serialize(), stringifyReplacer, 2);\n }\n}\nexports.EthereumRpcError = EthereumRpcError;\n/**\n * Error subclass implementing Ethereum Provider errors per EIP-1193.\n * Permits integer error codes in the [ 1000 <= 4999 ] range.\n */\nclass EthereumProviderError extends EthereumRpcError {\n /**\n * Create an Ethereum Provider JSON-RPC error.\n * `code` must be an integer in the 1000 <= 4999 range.\n */\n constructor(code, message, data) {\n if (!isValidEthProviderCode(code)) {\n throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n }\n super(code, message, data);\n }\n}\nexports.EthereumProviderError = EthereumProviderError;\n// Internal\nfunction isValidEthProviderCode(code) {\n return Number.isInteger(code) && code >= 1000 && code <= 4999;\n}\nfunction stringifyReplacer(_, value) {\n if (value === '[Circular]') {\n return undefined;\n }\n return value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGFzc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUFnRDtBQVNoRDs7OztHQUlHO0FBQ0gsTUFBYSxnQkFBb0IsU0FBUSxLQUFLO0lBTTVDLFlBQVksSUFBWSxFQUFFLE9BQWUsRUFBRSxJQUFRO1FBRWpELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEJBQTRCLENBQzdCLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0NBQXNDLENBQ3ZDLENBQUM7U0FDSDtRQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxNQUFNLFVBQVUsR0FBK0I7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUM3QjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUMvQjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sT0FBTyw2QkFBYSxDQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLEVBQ2hCLGlCQUFpQixFQUNqQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRERCw0Q0FzREM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLHFCQUF5QixTQUFRLGdCQUFtQjtJQUUvRDs7O09BR0c7SUFDSCxZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsSUFBUTtRQUVqRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FDYiwyREFBMkQsQ0FDNUQsQ0FBQztTQUNIO1FBRUQsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBaEJELHNEQWdCQztBQUVELFdBQVc7QUFFWCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQztBQUNoRSxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxDQUFVLEVBQUUsS0FBYztJQUNuRCxJQUFJLEtBQUssS0FBSyxZQUFZLEVBQUU7UUFDMUIsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","import { isNode } from \"@walletconnect/environment\";\nexport const isNodeJs = isNode;\nexport * from \"@walletconnect/environment\";\n//# sourceMappingURL=env.js.map","/*!\n * @intlify/message-compiler v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [0 /* EXPECTED_TOKEN */]: `Expected token: '{0}'`,\r\n [1 /* INVALID_TOKEN_IN_PLACEHOLDER */]: `Invalid token in placeholder: '{0}'`,\r\n [2 /* UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER */]: `Unterminated single quote in placeholder`,\r\n [3 /* UNKNOWN_ESCAPE_SEQUENCE */]: `Unknown escape sequence: \\\\{0}`,\r\n [4 /* INVALID_UNICODE_ESCAPE_SEQUENCE */]: `Invalid unicode escape sequence: {0}`,\r\n [5 /* UNBALANCED_CLOSING_BRACE */]: `Unbalanced closing brace`,\r\n [6 /* UNTERMINATED_CLOSING_BRACE */]: `Unterminated closing brace`,\r\n [7 /* EMPTY_PLACEHOLDER */]: `Empty placeholder`,\r\n [8 /* NOT_ALLOW_NEST_PLACEHOLDER */]: `Not allowed nest placeholder`,\r\n [9 /* INVALID_LINKED_FORMAT */]: `Invalid linked format`,\r\n // parser error messages\r\n [10 /* MUST_HAVE_MESSAGES_IN_PLURAL */]: `Plural must have messages`,\r\n [11 /* UNEXPECTED_EMPTY_LINKED_MODIFIER */]: `Unexpected empty linked modifier`,\r\n [12 /* UNEXPECTED_EMPTY_LINKED_KEY */]: `Unexpected empty linked key`,\r\n [13 /* UNEXPECTED_LEXICAL_ANALYSIS */]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(0 /* EXPECTED_TOKEN */, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(2 /* UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER */, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(3 /* UNKNOWN_ESCAPE_SEQUENCE */, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(4 /* INVALID_UNICODE_ESCAPE_SEQUENCE */, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(8 /* NOT_ALLOW_NEST_PLACEHOLDER */, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(7 /* EMPTY_PLACEHOLDER */, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(6 /* UNTERMINATED_CLOSING_BRACE */, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(1 /* INVALID_TOKEN_IN_PLACEHOLDER */, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(9 /* INVALID_LINKED_FORMAT */, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(9 /* INVALID_LINKED_FORMAT */, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(5 /* UNBALANCED_CLOSING_BRACE */, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n if (ch === \"%\" /* Modulo */) {\r\n scnr.next();\r\n return getToken(context, 4 /* Modulo */, \"%\" /* Modulo */);\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, 11 /* UNEXPECTED_EMPTY_LINKED_MODIFIER */, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, 12 /* UNEXPECTED_EMPTY_LINKED_KEY */, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, 10 /* MUST_HAVE_MESSAGES_IN_PLURAL */, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, 13 /* UNEXPECTED_LEXICAL_ANALYSIS */, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * @intlify/message-resolver v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nif ((process.env.NODE_ENV !== 'production')) ;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes(\".\" /* DOT */)) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split(\".\" /* DOT */);\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\n\nexport { handleFlatJson, parse, resolveValue };\n","/*!\n * @intlify/runtime v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isNumber, isObject, isString, isFunction, isPlainObject, toDisplayString } from '@intlify/shared';\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n // TODO: need to design resolve message function?\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: (key, modifier) => {\r\n // TODO: should check `key`\r\n const msg = message(key)(ctx);\r\n return isString(modifier) ? _modifier(modifier)(msg) : msg;\r\n },\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nexport { DEFAULT_MESSAGE_DATA_TYPE, createMessageContext };\n","/*!\n * @intlify/devtools-if v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * @intlify/core-base v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, isString, isArray, isPlainObject, assign, isFunction, isBoolean, isRegExp, warn, isObject, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey, isNumber, isEmptyObject, isDate, getGlobalThis } from '@intlify/shared';\nimport { resolveValue } from '@intlify/message-resolver';\nexport * from '@intlify/message-resolver';\nimport { createMessageContext } from '@intlify/runtime';\nexport * from '@intlify/runtime';\nimport { defaultOnError, baseCompile, createCompileError } from '@intlify/message-compiler';\nexport { createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\n/** @internal */\r\nconst warnMessages = {\r\n [0 /* NOT_FOUND_KEY */]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [1 /* FALLBACK_TO_TRANSLATE */]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [2 /* CANNOT_FORMAT_NUMBER */]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [3 /* FALLBACK_TO_NUMBER_FORMAT */]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [4 /* CANNOT_FORMAT_DATE */]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [5 /* FALLBACK_TO_DATE_FORMAT */]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.1.10';\r\nconst NOT_REOSLVED = -1;\r\nconst MISSING_RESOLVE_VALUE = '';\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val) => (isString(val) ? val.toUpperCase() : val),\r\n lower: (val) => (isString(val) ? val.toLowerCase() : val),\r\n // prettier-ignore\r\n capitalize: (val) => (isString(val)\r\n ? `${val.charAt(0).toLocaleUpperCase()}${val.substr(1)}`\r\n : val)\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = /* #__PURE__*/ (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = /* #__PURE__*/ () => _additionalMeta;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : 'en-US';\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} };\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} };\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map();\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map();\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n onWarn,\r\n __datetimeFormatters,\r\n __numberFormatters,\r\n __meta\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(0 /* NOT_FOUND_KEY */, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction getLocaleChain(ctx, fallback, start) {\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(start);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback)\r\n ? fallback\r\n : isPlainObject(fallback)\r\n ? fallback['default']\r\n ? fallback['default']\r\n : null\r\n : fallback;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(start, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n getLocaleChain(ctx, fallback, locale);\r\n}\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [14 /* INVALID_ARGUMENT */]: 'Invalid arguments',\r\n [15 /* INVALID_DATE_ARGUMENT */]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [16 /* INVALID_ISO_DATE_ARGUMENT */]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : key\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? key\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [format, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation ? postTranslation(messaged) : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn } = context;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(1 /* FALLBACK_TO_TRANSLATE */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context\r\n .__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules } = context;\r\n const resolveMessage = (key) => {\r\n const val = resolveValue(message, key);\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(4 /* CANNOT_FORMAT_DATE */));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(5 /* FALLBACK_TO_DATE_FORMAT */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type);\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n if (!/\\d{4}-\\d{2}-\\d{2}(T.*)?/.test(arg1)) {\r\n throw createCoreError(16 /* INVALID_ISO_DATE_ARGUMENT */);\r\n }\r\n value = new Date(arg1);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(16 /* INVALID_ISO_DATE_ARGUMENT */);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(15 /* INVALID_DATE_ARGUMENT */);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(2 /* CANNOT_FORMAT_NUMBER */));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = getLocaleChain(context, fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(3 /* FALLBACK_TO_NUMBER_FORMAT */, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type);\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(14 /* INVALID_ARGUMENT */);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { MISSING_RESOLVE_VALUE, NOT_REOSLVED, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, datetime, getAdditionalMeta, getDevToolsHook, getLocaleChain, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerMessageCompiler, setAdditionalMeta, setDevToolsHook, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * @intlify/vue-devtools v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst VueDevToolsLabels = {\r\n [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\r\n};\r\nconst VueDevToolsPlaceholders = {\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\r\n};\r\nconst VueDevToolsTimelineColors = {\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\r\n};\n\nexport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors };\n","/*!\n * vue-i18n v9.1.10\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, hasOwn, isObject, isBoolean, isString, isRegExp, isFunction, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { createCompileError, handleFlatJson, createCoreContext, updateFallbackLocale, resolveValue, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, getLocaleChain, registerMessageCompiler, compileToFunction, setDevToolsHook } from '@intlify/core-base';\nimport { ref, getCurrentInstance, computed, watch, createVNode, Text, h, Fragment, inject, onMounted, onUnmounted, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.1.10';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nconst warnMessages = {\r\n [6 /* FALLBACK_TO_ROOT */]: `Fall back to {type} '{key}' with root locale.`,\r\n [7 /* NOT_SUPPORTED_PRESERVE */]: `Not supported 'preserve'.`,\r\n [8 /* NOT_SUPPORTED_FORMATTER */]: `Not supported 'formatter'.`,\r\n [9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */]: `Not supported 'preserveDirectiveContent'.`,\r\n [10 /* NOT_SUPPORTED_GET_CHOICE_INDEX */]: `Not supported 'getChoiceIndex'.`,\r\n [11 /* COMPONENT_NAME_LEGACY_COMPATIBLE */]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [12 /* NOT_FOUND_PARENT_SCOPE */]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [14 /* UNEXPECTED_RETURN_TYPE */]: 'Unexpected return type in composer',\r\n [15 /* INVALID_ARGUMENT */]: 'Invalid argument',\r\n [16 /* MUST_BE_CALL_SETUP_TOP */]: 'Must be called at the top of a `setup` function',\r\n [17 /* NOT_INSLALLED */]: 'Need to install with `app.use` function',\r\n [22 /* UNEXPECTED_ERROR */]: 'Unexpected error',\r\n [18 /* NOT_AVAILABLE_IN_LEGACY_MODE */]: 'Not available in legacy mode',\r\n [19 /* REQUIRED_VALUE */]: `Required in value: {0}`,\r\n [20 /* INVALID_VALUE */]: `Invalid value`,\r\n [21 /* CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN */]: `Cannot setup vue-devtools plugin`\r\n};\n\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nconst TransrateVNodeSymbol = makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = makeSymbol('__numberParts');\r\nconst EnableEmitter = makeSymbol('__enableEmitter');\r\nconst DisableEmitter = makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = makeSymbol('__injectWithOption');\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(({ locale, resource }) => {\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (options.flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(20 /* INVALID_VALUE */);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = /* #__PURE__*/ () => {\r\n const instance = getCurrentInstance();\r\n return instance && instance.type[DEVTOOLS_META] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ? { [DEVTOOLS_META]: instance.type[DEVTOOLS_META] } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\nfunction createComposer(options = {}) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : 'en-US');\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n let _warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n function getCoreContext() {\r\n return createCoreContext({\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n datetimeFormats: _datetimeFormats.value,\r\n numberFormats: _numberFormats.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n __datetimeFormatters: isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined,\r\n __numberFormatters: isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined,\r\n __v_emitter: isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined,\r\n __meta: { framework: 'vue' }\r\n });\r\n }\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !!arg.resolvedMessage === false;\r\n }\r\n function wrapWithDeps(fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(6 /* FALLBACK_TO_ROOT */, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(14 /* UNEXPECTED_RETURN_TYPE */);\r\n }\r\n }\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => translate(context, ...args), () => parseTranslateArgs(...args), 'translate', root => root.t(...args), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => datetime(context, ...args), () => parseDateTimeArgs(...args), 'datetime format', root => root.d(...args), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => number(context, ...args), () => parseNumberArgs(...args), 'number format', root => root.n(...args), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) ? createVNode(Text, null, val, 0) : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = translate(_context, ...args);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createVNode(Text, null, key, 0)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => number(context, ...args), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => datetime(context, ...args), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return resolveValue(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = getLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = resolveValue(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n rt,\r\n d,\r\n n,\r\n te,\r\n tm,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [TransrateVNodeSymbol]: transrateVNode,\r\n [NumberPartsSymbol]: numberParts,\r\n [DatetimePartsSymbol]: datetimeParts,\r\n [SetPluralRulesSymbol]: setPluralRules,\r\n [InejctWithOption]: options.__injectWithOption // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\n\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : 'en-US';\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\nfunction createVueI18n(options = {}) {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(8 /* NOT_SUPPORTED_FORMATTER */));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(9 /* NOT_SUPPORTED_PRESERVE_DIRECTIVE */));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n return composer.t(key, list || named || {}, options);\r\n },\r\n rt(...args) {\r\n return composer.rt(...args);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(15 /* INVALID_ARGUMENT */);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n return composer.t(key, list || named || {}, options);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return composer.d(...args);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return composer.n(...args);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(10 /* NOT_SUPPORTED_GET_CHOICE_INDEX */));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n}\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n validator: (val) => val === 'parent' || val === 'global',\r\n default: 'parent'\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n *
    \r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n return () => {\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n // prettier-ignore\r\n return isString(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : isObject(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : h(Fragment, assignedAttrs, children);\r\n };\r\n }\r\n};\r\nfunction getInterpolateArg({ slots }, keys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot only\r\n return slots.default ? slots.default() : [];\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\n\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n return slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n // prettier-ignore\r\n return isString(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : isObject(props.tag)\r\n ? h(props.tag, assignedAttrs, children)\r\n : h(Fragment, assignedAttrs, children);\r\n };\r\n}\n\nconst NUMBER_FORMAT_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'unit',\r\n 'unitDisplay',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'useGrouping',\r\n 'numberingSystem',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'notation',\r\n 'formatMatcher'\r\n];\r\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\nconst DATETIME_FORMAT_KEYS = [\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'fractionalSecondDigits',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'localeMatcher',\r\n 'timeZone',\r\n 'hour12',\r\n 'hourCycle',\r\n 'formatMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName'\r\n];\r\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const bind = (el, { instance, value, modifiers }) => {\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(7 /* NOT_SUPPORTED_PRESERVE */));\r\n }\r\n const parsedValue = parseValue(value);\r\n el.textContent = composer.t(...makeParams(parsedValue));\r\n };\r\n return {\r\n beforeMount: bind,\r\n beforeUpdate: bind\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(19 /* REQUIRED_VALUE */, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(20 /* INVALID_VALUE */);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(11 /* COMPONENT_NAME_LEGACY_COMPATIBLE */, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n app.directive('t', vTDirective(i18n));\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el.__VUE_I18N__ && instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n inspectScope(payload, i18n);\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const label = instance.type.name || instance.type.displayName || instance.type.__file;\r\n const tag = {\r\n label: `i18n (${label} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '&': '&'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `ƒ ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n const label = keyInstance.type.name ||\r\n keyInstance.type.displayName ||\r\n keyInstance.type.__file;\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${label} Scope`\r\n });\r\n }\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n// supports compatibility for legacy vue-i18n APIs\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter = createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n beforeUnmount() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Vue I18n factory\r\n *\r\n * @param options - An options, see the {@link I18nOptions}\r\n *\r\n * @returns {@link I18n} instance\r\n *\r\n * @remarks\r\n * If you use Legacy API mode, you need toto specify {@link VueI18nOptions} and `legacy: true` option.\r\n *\r\n * If you use composition API mode, you need to specify {@link ComposerOptions}.\r\n *\r\n * @VueI18nSee [Getting Started](../guide/)\r\n * @VueI18nSee [Composition API](../guide/advanced/composition)\r\n *\r\n * @example\r\n * case: for Legacy API\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * // call with I18n option\r\n * const i18n = createI18n({\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n *\r\n * const App = {\r\n * // ...\r\n * }\r\n *\r\n * const app = createApp(App)\r\n *\r\n * // install!\r\n * app.use(i18n)\r\n * app.mount('#app')\r\n * ```\r\n *\r\n * @example\r\n * case: for composition API\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n, useI18n } from 'vue-i18n'\r\n *\r\n * // call with I18n option\r\n * const i18n = createI18n({\r\n * legacy: false, // you must specify 'legacy: false' option\r\n * locale: 'ja',\r\n * messages: {\r\n * en: { ... },\r\n * ja: { ... }\r\n * }\r\n * })\r\n *\r\n * const App = {\r\n * setup() {\r\n * // ...\r\n * const { t } = useI18n({ ... })\r\n * return { ... , t }\r\n * }\r\n * }\r\n *\r\n * const app = createApp(App)\r\n *\r\n * // install!\r\n * app.use(i18n)\r\n * app.mount('#app')\r\n * ```\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction createI18n(options = {}) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n const __globalInjection = !!options.globalInjection;\r\n const __instances = new Map();\r\n // prettier-ignore\r\n const __global = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? createVueI18n(options)\r\n : createComposer(options);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n // prettier-ignore\r\n return __VUE_I18N_LEGACY_API__\r\n ? __legacyMode\r\n ? 'legacy'\r\n : 'composition'\r\n : 'composition';\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(21 /* CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN */);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance(component) {\r\n return __instances.get(component) || null;\r\n },\r\n // @internal\r\n __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n },\r\n // @internal\r\n __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n };\r\n return i18n;\r\n}\r\n/**\r\n * Use Composition API for Vue I18n\r\n *\r\n * @param options - An options, see {@link UseI18nOptions}\r\n *\r\n * @returns {@link Composer} instance\r\n *\r\n * @remarks\r\n * This function is mainly used by `setup`.\r\n *\r\n * If options are specified, Composer instance is created for each component and you can be localized on the component.\r\n *\r\n * If options are not specified, you can be localized using the global Composer.\r\n *\r\n * @example\r\n * case: Component resource base localization\r\n * ```html\r\n * \r\n *\r\n * \r\n * ```\r\n *\r\n * @VueI18nComposition\r\n */\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(16 /* MUST_BE_CALL_SETUP_TOP */);\r\n }\r\n if (!instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(17 /* NOT_INSLALLED */);\r\n }\r\n const i18n = inject(instance.appContext.app.__VUE_I18N_SYMBOL__);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n // prettier-ignore\r\n const scope = isEmptyObject(options)\r\n ? ('__i18n' in instance.type)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n if (scope === 'global') {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in instance.type) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: instance.type.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(12 /* NOT_FOUND_PARENT_SCOPE */));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n // scope 'local' case\r\n if (i18n.mode === 'legacy') {\r\n throw createI18nError(18 /* NOT_AVAILABLE_IN_LEGACY_MODE */);\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const type = instance.type;\r\n const composerOptions = assign({}, options);\r\n if (type.__i18n) {\r\n composerOptions.__i18n = type.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (useComponent && composer && !composer[InejctWithOption]) {\r\n composer = null;\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'];\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(22 /* UNEXPECTED_ERROR */);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message compiler at vue-i18n\r\nregisterMessageCompiler(compileToFunction);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, NumberFormat, Translation, VERSION, createI18n, useI18n, vTDirective };\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n//# sourceMappingURL=hashes.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","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\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};","export const version = \"providers/5.5.3\";\n//# sourceMappingURL=_version.js.map","'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","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","\"use strict\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Indexed, Interface, LogDescription, TransactionDescription } from \"./interface\";\nexport { ConstructorFragment, ErrorFragment, EventFragment, Fragment, FunctionFragment, ParamType, FormatTypes, AbiCoder, defaultAbiCoder, Interface, Indexed, checkResultErrors, LogDescription, TransactionDescription };\n//# sourceMappingURL=index.js.map","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n if (!this.isStopped) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = /*@__PURE__*/ (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));","\"use strict\";\n/**\n * Returns a Promise that resolves to the value of window.ethereum if it is\n * set within the given timeout, or null.\n * The Promise will not reject, but an error will be thrown if invalid options\n * are provided.\n *\n * @param options - Options bag.\n * @param options.mustBeMetaMask - Whether to only look for MetaMask providers.\n * Default: false\n * @param options.silent - Whether to silence console errors. Does not affect\n * thrown errors. Default: false\n * @param options.timeout - Milliseconds to wait for 'ethereum#initialized' to\n * be dispatched. Default: 3000\n * @returns A Promise that resolves with the Provider if it is detected within\n * given timeout, otherwise null.\n */\nfunction detectEthereumProvider({ mustBeMetaMask = false, silent = false, timeout = 3000, } = {}) {\n _validateInputs();\n let handled = false;\n return new Promise((resolve) => {\n if (window.ethereum) {\n handleEthereum();\n }\n else {\n window.addEventListener('ethereum#initialized', handleEthereum, { once: true });\n setTimeout(() => {\n handleEthereum();\n }, timeout);\n }\n function handleEthereum() {\n if (handled) {\n return;\n }\n handled = true;\n window.removeEventListener('ethereum#initialized', handleEthereum);\n const { ethereum } = window;\n if (ethereum && (!mustBeMetaMask || ethereum.isMetaMask)) {\n resolve(ethereum);\n }\n else {\n const message = mustBeMetaMask && ethereum\n ? 'Non-MetaMask window.ethereum detected.'\n : 'Unable to detect window.ethereum.';\n !silent && console.error('@metamask/detect-provider:', message);\n resolve(null);\n }\n }\n });\n function _validateInputs() {\n if (typeof mustBeMetaMask !== 'boolean') {\n throw new Error(`@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.`);\n }\n if (typeof silent !== 'boolean') {\n throw new Error(`@metamask/detect-provider: Expected option 'silent' to be a boolean.`);\n }\n if (typeof timeout !== 'number') {\n throw new Error(`@metamask/detect-provider: Expected option 'timeout' to be a number.`);\n }\n }\n}\nmodule.exports = detectEthereumProvider;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVlBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFNBQVMsc0JBQXNCLENBQUMsRUFDOUIsY0FBYyxHQUFHLEtBQUssRUFDdEIsTUFBTSxHQUFHLEtBQUssRUFDZCxPQUFPLEdBQUcsSUFBSSxHQUNmLEdBQUcsRUFBRTtJQUVKLGVBQWUsRUFBRSxDQUFDO0lBRWxCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVwQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBRW5CLGNBQWMsRUFBRSxDQUFDO1NBRWxCO2FBQU07WUFFTCxNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2YsQ0FBQztZQUVGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsY0FBYyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2I7UUFFRCxTQUFTLGNBQWM7WUFFckIsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTzthQUNSO1lBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVmLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUVuRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO1lBRTVCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxjQUFjLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN4RCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbkI7aUJBQU07Z0JBRUwsTUFBTSxPQUFPLEdBQUcsY0FBYyxJQUFJLFFBQVE7b0JBQ3hDLENBQUMsQ0FBQyx3Q0FBd0M7b0JBQzFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQztnQkFFeEMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLGVBQWU7UUFDdEIsSUFBSSxPQUFPLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO1NBQ2pHO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFsRkQsaUJBQVMsc0JBQXNCLENBQUMifQ==","'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};","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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.formatBytes32String = exports.Utf8ErrorFuncs = exports.toUtf8String = exports.toUtf8CodePoints = exports.toUtf8Bytes = exports._toEscapedUtf8String = exports.nameprep = exports.hexDataSlice = exports.hexDataLength = exports.hexZeroPad = exports.hexValue = exports.hexStripZeros = exports.hexConcat = exports.isHexString = exports.hexlify = exports.base64 = exports.base58 = exports.TransactionDescription = exports.LogDescription = exports.Interface = exports.SigningKey = exports.HDNode = exports.defaultPath = exports.isBytesLike = exports.isBytes = exports.zeroPad = exports.stripZeros = exports.concat = exports.arrayify = exports.shallowCopy = exports.resolveProperties = exports.getStatic = exports.defineReadOnly = exports.deepCopy = exports.checkProperties = exports.poll = exports.fetchJson = exports._fetchData = exports.RLP = exports.Logger = exports.checkResultErrors = exports.FormatTypes = exports.ParamType = exports.FunctionFragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.Fragment = exports.defaultAbiCoder = exports.AbiCoder = void 0;\nexports.Indexed = exports.Utf8ErrorReason = exports.UnicodeNormalizationForm = exports.SupportedAlgorithm = exports.mnemonicToSeed = exports.isValidMnemonic = exports.entropyToMnemonic = exports.mnemonicToEntropy = exports.getAccountPath = exports.verifyTypedData = exports.verifyMessage = exports.recoverPublicKey = exports.computePublicKey = exports.recoverAddress = exports.computeAddress = exports.getJsonWalletAddress = exports.TransactionTypes = exports.serializeTransaction = exports.parseTransaction = exports.accessListify = exports.joinSignature = exports.splitSignature = exports.soliditySha256 = exports.solidityKeccak256 = exports.solidityPack = exports.shuffled = exports.randomBytes = exports.sha512 = exports.sha256 = exports.ripemd160 = exports.keccak256 = exports.computeHmac = exports.commify = exports.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.isAddress = exports.getCreate2Address = exports.getContractAddress = exports.getIcapAddress = exports.getAddress = exports._TypedDataEncoder = exports.id = exports.isValidName = exports.namehash = exports.hashMessage = exports.parseBytes32String = void 0;\nvar abi_1 = require(\"@ethersproject/abi\");\nObject.defineProperty(exports, \"AbiCoder\", { enumerable: true, get: function () { return abi_1.AbiCoder; } });\nObject.defineProperty(exports, \"checkResultErrors\", { enumerable: true, get: function () { return abi_1.checkResultErrors; } });\nObject.defineProperty(exports, \"ConstructorFragment\", { enumerable: true, get: function () { return abi_1.ConstructorFragment; } });\nObject.defineProperty(exports, \"defaultAbiCoder\", { enumerable: true, get: function () { return abi_1.defaultAbiCoder; } });\nObject.defineProperty(exports, \"ErrorFragment\", { enumerable: true, get: function () { return abi_1.ErrorFragment; } });\nObject.defineProperty(exports, \"EventFragment\", { enumerable: true, get: function () { return abi_1.EventFragment; } });\nObject.defineProperty(exports, \"FormatTypes\", { enumerable: true, get: function () { return abi_1.FormatTypes; } });\nObject.defineProperty(exports, \"Fragment\", { enumerable: true, get: function () { return abi_1.Fragment; } });\nObject.defineProperty(exports, \"FunctionFragment\", { enumerable: true, get: function () { return abi_1.FunctionFragment; } });\nObject.defineProperty(exports, \"Indexed\", { enumerable: true, get: function () { return abi_1.Indexed; } });\nObject.defineProperty(exports, \"Interface\", { enumerable: true, get: function () { return abi_1.Interface; } });\nObject.defineProperty(exports, \"LogDescription\", { enumerable: true, get: function () { return abi_1.LogDescription; } });\nObject.defineProperty(exports, \"ParamType\", { enumerable: true, get: function () { return abi_1.ParamType; } });\nObject.defineProperty(exports, \"TransactionDescription\", { enumerable: true, get: function () { return abi_1.TransactionDescription; } });\nvar address_1 = require(\"@ethersproject/address\");\nObject.defineProperty(exports, \"getAddress\", { enumerable: true, get: function () { return address_1.getAddress; } });\nObject.defineProperty(exports, \"getCreate2Address\", { enumerable: true, get: function () { return address_1.getCreate2Address; } });\nObject.defineProperty(exports, \"getContractAddress\", { enumerable: true, get: function () { return address_1.getContractAddress; } });\nObject.defineProperty(exports, \"getIcapAddress\", { enumerable: true, get: function () { return address_1.getIcapAddress; } });\nObject.defineProperty(exports, \"isAddress\", { enumerable: true, get: function () { return address_1.isAddress; } });\nvar base64 = __importStar(require(\"@ethersproject/base64\"));\nexports.base64 = base64;\nvar basex_1 = require(\"@ethersproject/basex\");\nObject.defineProperty(exports, \"base58\", { enumerable: true, get: function () { return basex_1.Base58; } });\nvar bytes_1 = require(\"@ethersproject/bytes\");\nObject.defineProperty(exports, \"arrayify\", { enumerable: true, get: function () { return bytes_1.arrayify; } });\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return bytes_1.concat; } });\nObject.defineProperty(exports, \"hexConcat\", { enumerable: true, get: function () { return bytes_1.hexConcat; } });\nObject.defineProperty(exports, \"hexDataSlice\", { enumerable: true, get: function () { return bytes_1.hexDataSlice; } });\nObject.defineProperty(exports, \"hexDataLength\", { enumerable: true, get: function () { return bytes_1.hexDataLength; } });\nObject.defineProperty(exports, \"hexlify\", { enumerable: true, get: function () { return bytes_1.hexlify; } });\nObject.defineProperty(exports, \"hexStripZeros\", { enumerable: true, get: function () { return bytes_1.hexStripZeros; } });\nObject.defineProperty(exports, \"hexValue\", { enumerable: true, get: function () { return bytes_1.hexValue; } });\nObject.defineProperty(exports, \"hexZeroPad\", { enumerable: true, get: function () { return bytes_1.hexZeroPad; } });\nObject.defineProperty(exports, \"isBytes\", { enumerable: true, get: function () { return bytes_1.isBytes; } });\nObject.defineProperty(exports, \"isBytesLike\", { enumerable: true, get: function () { return bytes_1.isBytesLike; } });\nObject.defineProperty(exports, \"isHexString\", { enumerable: true, get: function () { return bytes_1.isHexString; } });\nObject.defineProperty(exports, \"joinSignature\", { enumerable: true, get: function () { return bytes_1.joinSignature; } });\nObject.defineProperty(exports, \"zeroPad\", { enumerable: true, get: function () { return bytes_1.zeroPad; } });\nObject.defineProperty(exports, \"splitSignature\", { enumerable: true, get: function () { return bytes_1.splitSignature; } });\nObject.defineProperty(exports, \"stripZeros\", { enumerable: true, get: function () { return bytes_1.stripZeros; } });\nvar hash_1 = require(\"@ethersproject/hash\");\nObject.defineProperty(exports, \"_TypedDataEncoder\", { enumerable: true, get: function () { return hash_1._TypedDataEncoder; } });\nObject.defineProperty(exports, \"hashMessage\", { enumerable: true, get: function () { return hash_1.hashMessage; } });\nObject.defineProperty(exports, \"id\", { enumerable: true, get: function () { return hash_1.id; } });\nObject.defineProperty(exports, \"isValidName\", { enumerable: true, get: function () { return hash_1.isValidName; } });\nObject.defineProperty(exports, \"namehash\", { enumerable: true, get: function () { return hash_1.namehash; } });\nvar hdnode_1 = require(\"@ethersproject/hdnode\");\nObject.defineProperty(exports, \"defaultPath\", { enumerable: true, get: function () { return hdnode_1.defaultPath; } });\nObject.defineProperty(exports, \"entropyToMnemonic\", { enumerable: true, get: function () { return hdnode_1.entropyToMnemonic; } });\nObject.defineProperty(exports, \"getAccountPath\", { enumerable: true, get: function () { return hdnode_1.getAccountPath; } });\nObject.defineProperty(exports, \"HDNode\", { enumerable: true, get: function () { return hdnode_1.HDNode; } });\nObject.defineProperty(exports, \"isValidMnemonic\", { enumerable: true, get: function () { return hdnode_1.isValidMnemonic; } });\nObject.defineProperty(exports, \"mnemonicToEntropy\", { enumerable: true, get: function () { return hdnode_1.mnemonicToEntropy; } });\nObject.defineProperty(exports, \"mnemonicToSeed\", { enumerable: true, get: function () { return hdnode_1.mnemonicToSeed; } });\nvar json_wallets_1 = require(\"@ethersproject/json-wallets\");\nObject.defineProperty(exports, \"getJsonWalletAddress\", { enumerable: true, get: function () { return json_wallets_1.getJsonWalletAddress; } });\nvar keccak256_1 = require(\"@ethersproject/keccak256\");\nObject.defineProperty(exports, \"keccak256\", { enumerable: true, get: function () { return keccak256_1.keccak256; } });\nvar logger_1 = require(\"@ethersproject/logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\nvar sha2_1 = require(\"@ethersproject/sha2\");\nObject.defineProperty(exports, \"computeHmac\", { enumerable: true, get: function () { return sha2_1.computeHmac; } });\nObject.defineProperty(exports, \"ripemd160\", { enumerable: true, get: function () { return sha2_1.ripemd160; } });\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha2_1.sha256; } });\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha2_1.sha512; } });\nvar solidity_1 = require(\"@ethersproject/solidity\");\nObject.defineProperty(exports, \"solidityKeccak256\", { enumerable: true, get: function () { return solidity_1.keccak256; } });\nObject.defineProperty(exports, \"solidityPack\", { enumerable: true, get: function () { return solidity_1.pack; } });\nObject.defineProperty(exports, \"soliditySha256\", { enumerable: true, get: function () { return solidity_1.sha256; } });\nvar random_1 = require(\"@ethersproject/random\");\nObject.defineProperty(exports, \"randomBytes\", { enumerable: true, get: function () { return random_1.randomBytes; } });\nObject.defineProperty(exports, \"shuffled\", { enumerable: true, get: function () { return random_1.shuffled; } });\nvar properties_1 = require(\"@ethersproject/properties\");\nObject.defineProperty(exports, \"checkProperties\", { enumerable: true, get: function () { return properties_1.checkProperties; } });\nObject.defineProperty(exports, \"deepCopy\", { enumerable: true, get: function () { return properties_1.deepCopy; } });\nObject.defineProperty(exports, \"defineReadOnly\", { enumerable: true, get: function () { return properties_1.defineReadOnly; } });\nObject.defineProperty(exports, \"getStatic\", { enumerable: true, get: function () { return properties_1.getStatic; } });\nObject.defineProperty(exports, \"resolveProperties\", { enumerable: true, get: function () { return properties_1.resolveProperties; } });\nObject.defineProperty(exports, \"shallowCopy\", { enumerable: true, get: function () { return properties_1.shallowCopy; } });\nvar RLP = __importStar(require(\"@ethersproject/rlp\"));\nexports.RLP = RLP;\nvar signing_key_1 = require(\"@ethersproject/signing-key\");\nObject.defineProperty(exports, \"computePublicKey\", { enumerable: true, get: function () { return signing_key_1.computePublicKey; } });\nObject.defineProperty(exports, \"recoverPublicKey\", { enumerable: true, get: function () { return signing_key_1.recoverPublicKey; } });\nObject.defineProperty(exports, \"SigningKey\", { enumerable: true, get: function () { return signing_key_1.SigningKey; } });\nvar strings_1 = require(\"@ethersproject/strings\");\nObject.defineProperty(exports, \"formatBytes32String\", { enumerable: true, get: function () { return strings_1.formatBytes32String; } });\nObject.defineProperty(exports, \"nameprep\", { enumerable: true, get: function () { return strings_1.nameprep; } });\nObject.defineProperty(exports, \"parseBytes32String\", { enumerable: true, get: function () { return strings_1.parseBytes32String; } });\nObject.defineProperty(exports, \"_toEscapedUtf8String\", { enumerable: true, get: function () { return strings_1._toEscapedUtf8String; } });\nObject.defineProperty(exports, \"toUtf8Bytes\", { enumerable: true, get: function () { return strings_1.toUtf8Bytes; } });\nObject.defineProperty(exports, \"toUtf8CodePoints\", { enumerable: true, get: function () { return strings_1.toUtf8CodePoints; } });\nObject.defineProperty(exports, \"toUtf8String\", { enumerable: true, get: function () { return strings_1.toUtf8String; } });\nObject.defineProperty(exports, \"Utf8ErrorFuncs\", { enumerable: true, get: function () { return strings_1.Utf8ErrorFuncs; } });\nvar transactions_1 = require(\"@ethersproject/transactions\");\nObject.defineProperty(exports, \"accessListify\", { enumerable: true, get: function () { return transactions_1.accessListify; } });\nObject.defineProperty(exports, \"computeAddress\", { enumerable: true, get: function () { return transactions_1.computeAddress; } });\nObject.defineProperty(exports, \"parseTransaction\", { enumerable: true, get: function () { return transactions_1.parse; } });\nObject.defineProperty(exports, \"recoverAddress\", { enumerable: true, get: function () { return transactions_1.recoverAddress; } });\nObject.defineProperty(exports, \"serializeTransaction\", { enumerable: true, get: function () { return transactions_1.serialize; } });\nObject.defineProperty(exports, \"TransactionTypes\", { enumerable: true, get: function () { return transactions_1.TransactionTypes; } });\nvar units_1 = require(\"@ethersproject/units\");\nObject.defineProperty(exports, \"commify\", { enumerable: true, get: function () { return units_1.commify; } });\nObject.defineProperty(exports, \"formatEther\", { enumerable: true, get: function () { return units_1.formatEther; } });\nObject.defineProperty(exports, \"parseEther\", { enumerable: true, get: function () { return units_1.parseEther; } });\nObject.defineProperty(exports, \"formatUnits\", { enumerable: true, get: function () { return units_1.formatUnits; } });\nObject.defineProperty(exports, \"parseUnits\", { enumerable: true, get: function () { return units_1.parseUnits; } });\nvar wallet_1 = require(\"@ethersproject/wallet\");\nObject.defineProperty(exports, \"verifyMessage\", { enumerable: true, get: function () { return wallet_1.verifyMessage; } });\nObject.defineProperty(exports, \"verifyTypedData\", { enumerable: true, get: function () { return wallet_1.verifyTypedData; } });\nvar web_1 = require(\"@ethersproject/web\");\nObject.defineProperty(exports, \"_fetchData\", { enumerable: true, get: function () { return web_1._fetchData; } });\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return web_1.fetchJson; } });\nObject.defineProperty(exports, \"poll\", { enumerable: true, get: function () { return web_1.poll; } });\n////////////////////////\n// Enums\nvar sha2_2 = require(\"@ethersproject/sha2\");\nObject.defineProperty(exports, \"SupportedAlgorithm\", { enumerable: true, get: function () { return sha2_2.SupportedAlgorithm; } });\nvar strings_2 = require(\"@ethersproject/strings\");\nObject.defineProperty(exports, \"UnicodeNormalizationForm\", { enumerable: true, get: function () { return strings_2.UnicodeNormalizationForm; } });\nObject.defineProperty(exports, \"Utf8ErrorReason\", { enumerable: true, get: function () { return strings_2.Utf8ErrorReason; } });\n//# sourceMappingURL=utils.js.map","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */\nimport { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map\n","/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = /*@__PURE__*/ new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMessageFromCode = exports.serializeError = exports.EthereumProviderError = exports.EthereumRpcError = exports.ethErrors = exports.errorCodes = void 0;\nconst classes_1 = require(\"./classes\");\nObject.defineProperty(exports, \"EthereumRpcError\", { enumerable: true, get: function () { return classes_1.EthereumRpcError; } });\nObject.defineProperty(exports, \"EthereumProviderError\", { enumerable: true, get: function () { return classes_1.EthereumProviderError; } });\nconst utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"serializeError\", { enumerable: true, get: function () { return utils_1.serializeError; } });\nObject.defineProperty(exports, \"getMessageFromCode\", { enumerable: true, get: function () { return utils_1.getMessageFromCode; } });\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ethErrors\", { enumerable: true, get: function () { return errors_1.ethErrors; } });\nconst error_constants_1 = require(\"./error-constants\");\nObject.defineProperty(exports, \"errorCodes\", { enumerable: true, get: function () { return error_constants_1.errorCodes; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQW9FO0FBVWxFLGlHQVZPLDBCQUFnQixPQVVQO0FBQ2hCLHNHQVh5QiwrQkFBcUIsT0FXekI7QUFWdkIsbUNBRWlCO0FBU2YsK0ZBVkEsc0JBQWMsT0FVQTtBQUNkLG1HQVhnQiwwQkFBa0IsT0FXaEI7QUFUcEIscUNBQXFDO0FBS25DLDBGQUxPLGtCQUFTLE9BS1A7QUFKWCx1REFBK0M7QUFHN0MsMkZBSE8sNEJBQVUsT0FHUCJ9","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\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","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","\nmodule.exports = {\n minBlockRef,\n maxBlockRef,\n sortBlockRefs,\n bnToHex,\n blockRefIsNumber,\n hexToInt,\n incrementHexInt,\n intToHex,\n unsafeRandomBytes,\n}\n\nfunction minBlockRef(...refs) {\n const sortedRefs = sortBlockRefs(refs)\n return sortedRefs[0]\n}\n\nfunction maxBlockRef(...refs) {\n const sortedRefs = sortBlockRefs(refs)\n return sortedRefs[sortedRefs.length-1]\n}\n\nfunction sortBlockRefs(refs) {\n return refs.sort((refA, refB) => {\n if (refA === 'latest' || refB === 'earliest') return 1\n if (refB === 'latest' || refA === 'earliest') return -1\n return hexToInt(refA) - hexToInt(refB)\n })\n}\n\nfunction bnToHex(bn) {\n return '0x' + bn.toString(16)\n}\n\nfunction blockRefIsNumber(blockRef){\n return blockRef && !['earliest', 'latest', 'pending'].includes(blockRef)\n}\n\nfunction hexToInt(hexString) {\n if (hexString === undefined || hexString === null) return hexString\n return Number.parseInt(hexString, 16)\n}\n\nfunction incrementHexInt(hexString){\n if (hexString === undefined || hexString === null) return hexString\n const value = hexToInt(hexString)\n return intToHex(value + 1)\n}\n\nfunction intToHex(int) {\n if (int === undefined || int === null) return int\n let hexString = int.toString(16)\n const needsLeftPad = hexString.length % 2\n if (needsLeftPad) hexString = '0' + hexString\n return '0x' + hexString\n}\n\nfunction unsafeRandomBytes(byteCount) {\n let result = '0x'\n for (let i = 0; i < byteCount; i++) {\n result += unsafeRandomNibble()\n result += unsafeRandomNibble()\n }\n return result\n}\n\nfunction unsafeRandomNibble() {\n return Math.floor(Math.random() * 16).toString(16)\n}\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","const util = require('./util')\nconst abi = require('./abi')\n\nconst TYPED_MESSAGE_SCHEMA = {\n type: 'object',\n properties: {\n types: {\n type: 'object',\n additionalProperties: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: {type: 'string'},\n type: {type: 'string'},\n },\n required: ['name', 'type'],\n },\n },\n },\n primaryType: {type: 'string'},\n domain: {type: 'object'},\n message: {type: 'object'},\n },\n required: ['types', 'primaryType', 'domain', 'message'],\n}\n\n/**\n * A collection of utility functions used for signing typed data\n */\nconst TypedDataUtils = {\n /**\n * Encodes an object by encoding and concatenating each of its members\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of an object\n */\n encodeData (primaryType, data, types, useV4 = true) {\n const encodedTypes = ['bytes32']\n const encodedValues = [this.hashType(primaryType, types)]\n\n if(useV4) {\n const encodeField = (name, type, value) => {\n if (types[type] !== undefined) {\n return ['bytes32', value == null ?\n '0x0000000000000000000000000000000000000000000000000000000000000000' :\n util.keccak(this.encodeData(type, value, types, useV4))]\n }\n\n if(value === undefined)\n throw new Error(`missing value for field ${name} of type ${type}`)\n\n if (type === 'bytes') {\n return ['bytes32', util.keccak(value)]\n }\n\n if (type === 'string') {\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n return ['bytes32', util.keccak(value)]\n }\n\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['))\n const typeValuePairs = value.map(item =>\n encodeField(name, parsedType, item))\n return ['bytes32', util.keccak(abi.rawEncode(\n typeValuePairs.map(([type]) => type),\n typeValuePairs.map(([, value]) => value),\n ))]\n }\n\n return [type, value]\n }\n\n for (const field of types[primaryType]) {\n const [type, value] = encodeField(field.name, field.type, data[field.name])\n encodedTypes.push(type)\n encodedValues.push(value)\n }\n } else {\n for (const field of types[primaryType]) {\n let value = data[field.name]\n if (value !== undefined) {\n if (field.type === 'bytes') {\n encodedTypes.push('bytes32')\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (field.type === 'string') {\n encodedTypes.push('bytes32')\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (types[field.type] !== undefined) {\n encodedTypes.push('bytes32')\n value = util.keccak(this.encodeData(field.type, value, types, useV4))\n encodedValues.push(value)\n } else if (field.type.lastIndexOf(']') === field.type.length - 1) {\n throw new Error('Arrays currently unimplemented in encodeData')\n } else {\n encodedTypes.push(field.type)\n encodedValues.push(value)\n }\n }\n }\n }\n\n return abi.rawEncode(encodedTypes, encodedValues)\n },\n\n /**\n * Encodes the type of an object by encoding a comma delimited list of its members\n *\n * @param {string} primaryType - Root type to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of the type of an object\n */\n encodeType (primaryType, types) {\n let result = ''\n let deps = this.findTypeDependencies(primaryType, types).filter(dep => dep !== primaryType)\n deps = [primaryType].concat(deps.sort())\n for (const type of deps) {\n const children = types[type]\n if (!children) {\n throw new Error('No type definition specified: ' + type)\n }\n result += type + '(' + types[type].map(({ name, type }) => type + ' ' + name).join(',') + ')'\n }\n return result\n },\n\n /**\n * Finds all types within a type defintion object\n *\n * @param {string} primaryType - Root type\n * @param {Object} types - Type definitions\n * @param {Array} results - current set of accumulated types\n * @returns {Array} - Set of all types found in the type definition\n */\n findTypeDependencies (primaryType, types, results = []) {\n primaryType = primaryType.match(/^\\w*/)[0]\n if (results.includes(primaryType) || types[primaryType] === undefined) { return results }\n results.push(primaryType)\n for (const field of types[primaryType]) {\n for (const dep of this.findTypeDependencies(field.type, types, results)) {\n !results.includes(dep) && results.push(dep)\n }\n }\n return results\n },\n\n /**\n * Hashes an object\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to hash\n * @param {Object} types - Type definitions\n * @returns {string} - Hash of an object\n */\n hashStruct (primaryType, data, types, useV4 = true) {\n return util.keccak(this.encodeData(primaryType, data, types, useV4))\n },\n\n /**\n * Hashes the type of an object\n *\n * @param {string} primaryType - Root type to hash\n * @param {Object} types - Type definitions\n * @returns {string} - Hash of an object\n */\n hashType (primaryType, types) {\n return util.keccak(this.encodeType(primaryType, types))\n },\n\n /**\n * Removes properties from a message object that are not defined per EIP-712\n *\n * @param {Object} data - typed message object\n * @returns {Object} - typed message object with only allowed fields\n */\n sanitizeData (data) {\n const sanitizedData = {}\n for (const key in TYPED_MESSAGE_SCHEMA.properties) {\n data[key] && (sanitizedData[key] = data[key])\n }\n if (sanitizedData.types) {\n sanitizedData.types = Object.assign({ EIP712Domain: [] }, sanitizedData.types)\n }\n return sanitizedData\n },\n\n /**\n * Returns the hash of a typed message as per EIP-712 for signing\n *\n * @param {Object} typedData - Types message data to sign\n * @returns {string} - sha3 hash for signing\n */\n hash (typedData, useV4 = true) {\n const sanitizedData = this.sanitizeData(typedData)\n const parts = [Buffer.from('1901', 'hex')]\n parts.push(this.hashStruct('EIP712Domain', sanitizedData.domain, sanitizedData.types, useV4))\n if (sanitizedData.primaryType !== 'EIP712Domain') {\n parts.push(this.hashStruct(sanitizedData.primaryType, sanitizedData.message, sanitizedData.types, useV4))\n }\n return util.keccak(Buffer.concat(parts))\n },\n}\n\nmodule.exports = {\n TYPED_MESSAGE_SCHEMA,\n TypedDataUtils,\n\n hashForSignTypedDataLegacy: function (msgParams) {\n return typedSignatureHashLegacy(msgParams.data)\n },\n\n hashForSignTypedData_v3: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data, false)\n },\n\n hashForSignTypedData_v4: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data)\n },\n}\n\n/**\n * @param typedData - Array of data along with types, as per EIP712.\n * @returns Buffer\n */\nfunction typedSignatureHashLegacy(typedData) {\n const error = new Error('Expect argument to be non-empty array')\n if (typeof typedData !== 'object' || !typedData.length) throw error\n\n const data = typedData.map(function (e) {\n return e.type === 'bytes' ? util.toBuffer(e.value) : e.value\n })\n const types = typedData.map(function (e) { return e.type })\n const schema = typedData.map(function (e) {\n if (!e.name) throw error\n return e.type + ' ' + e.name\n })\n\n return abi.soliditySHA3(\n ['bytes32', 'bytes32'],\n [\n abi.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n abi.soliditySHA3(types, data)\n ]\n )\n}\n","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkRelayEventManager = void 0;\nconst util_1 = require(\"../util\");\nclass WalletLinkRelayEventManager {\n constructor() {\n this._nextRequestId = 0;\n this.callbacks = new Map();\n }\n makeRequestId() {\n // max nextId == max int32 for compatibility with mobile\n this._nextRequestId = (this._nextRequestId + 1) % 0x7fffffff;\n const id = this._nextRequestId;\n const idStr = (0, util_1.prepend0x)(id.toString(16));\n // unlikely that this will ever be an issue, but just to be safe\n const callback = this.callbacks.get(idStr);\n if (callback) {\n this.callbacks.delete(idStr);\n }\n return id;\n }\n}\nexports.WalletLinkRelayEventManager = WalletLinkRelayEventManager;\n","/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param {String} str the string input value\n * @return {Boolean} a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nmodule.exports = function isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[is-hex-prefixed] value must be type 'string', is currently type \" + (typeof str) + \", while checking isHexPrefixed.\");\n }\n\n return str.slice(0, 2) === '0x';\n}\n","export const version = \"json-wallets/5.5.0\";\n//# sourceMappingURL=_version.js.map","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","export const version = \"strings/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\n\n// This file is imported from secp256k1 v3\n// https://github.com/cryptocoinjs/secp256k1-node/blob/master/LICENSE\n\nvar EC_PRIVKEY_EXPORT_DER_COMPRESSED = Buffer.from([\n// begin\n0x30, 0x81, 0xd3, 0x02, 0x01, 0x01, 0x04, 0x20,\n// private key\n0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n// middle\n0xa0, 0x81, 0x85, 0x30, 0x81, 0x82, 0x02, 0x01, 0x01, 0x30, 0x2c, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x21, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0x2f, 0x30, 0x06, 0x04, 0x01, 0x00, 0x04, 0x01, 0x07, 0x04, 0x21, 0x02, 0x79, 0xbe, 0x66, 0x7e, 0xf9, 0xdc, 0xbb, 0xac, 0x55, 0xa0, 0x62, 0x95, 0xce, 0x87, 0x0b, 0x07, 0x02, 0x9b, 0xfc, 0xdb, 0x2d, 0xce, 0x28, 0xd9, 0x59, 0xf2, 0x81, 0x5b, 0x16, 0xf8, 0x17, 0x98, 0x02, 0x21, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xba, 0xae, 0xdc, 0xe6, 0xaf, 0x48, 0xa0, 0x3b, 0xbf, 0xd2, 0x5e, 0x8c, 0xd0, 0x36, 0x41, 0x41, 0x02, 0x01, 0x01, 0xa1, 0x24, 0x03, 0x22, 0x00,\n// public key\n0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);\n\nvar EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = Buffer.from([\n// begin\n0x30, 0x82, 0x01, 0x13, 0x02, 0x01, 0x01, 0x04, 0x20,\n// private key\n0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n// middle\n0xa0, 0x81, 0xa5, 0x30, 0x81, 0xa2, 0x02, 0x01, 0x01, 0x30, 0x2c, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x01, 0x01, 0x02, 0x21, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0x2f, 0x30, 0x06, 0x04, 0x01, 0x00, 0x04, 0x01, 0x07, 0x04, 0x41, 0x04, 0x79, 0xbe, 0x66, 0x7e, 0xf9, 0xdc, 0xbb, 0xac, 0x55, 0xa0, 0x62, 0x95, 0xce, 0x87, 0x0b, 0x07, 0x02, 0x9b, 0xfc, 0xdb, 0x2d, 0xce, 0x28, 0xd9, 0x59, 0xf2, 0x81, 0x5b, 0x16, 0xf8, 0x17, 0x98, 0x48, 0x3a, 0xda, 0x77, 0x26, 0xa3, 0xc4, 0x65, 0x5d, 0xa4, 0xfb, 0xfc, 0x0e, 0x11, 0x08, 0xa8, 0xfd, 0x17, 0xb4, 0x48, 0xa6, 0x85, 0x54, 0x19, 0x9c, 0x47, 0xd0, 0x8f, 0xfb, 0x10, 0xd4, 0xb8, 0x02, 0x21, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xba, 0xae, 0xdc, 0xe6, 0xaf, 0x48, 0xa0, 0x3b, 0xbf, 0xd2, 0x5e, 0x8c, 0xd0, 0x36, 0x41, 0x41, 0x02, 0x01, 0x01, 0xa1, 0x44, 0x03, 0x42, 0x00,\n// public key\n0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);\n\nexports.privateKeyExport = function (privateKey, publicKey, compressed) {\n var result = Buffer.from(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED);\n privateKey.copy(result, compressed ? 8 : 9);\n publicKey.copy(result, compressed ? 181 : 214);\n return result;\n};\n\nexports.privateKeyImport = function (privateKey) {\n var length = privateKey.length;\n\n // sequence header\n var index = 0;\n if (length < index + 1 || privateKey[index] !== 0x30) return null;\n index += 1;\n\n // sequence length constructor\n if (length < index + 1 || !(privateKey[index] & 0x80)) return null;\n\n var lenb = privateKey[index] & 0x7f;\n index += 1;\n if (lenb < 1 || lenb > 2) return null;\n if (length < index + lenb) return null;\n\n // sequence length\n var len = privateKey[index + lenb - 1] | (lenb > 1 ? privateKey[index + lenb - 2] << 8 : 0);\n index += lenb;\n if (length < index + len) return null;\n\n // sequence element 0: version number (=1)\n if (length < index + 3 || privateKey[index] !== 0x02 || privateKey[index + 1] !== 0x01 || privateKey[index + 2] !== 0x01) {\n return null;\n }\n index += 3;\n\n // sequence element 1: octet string, up to 32 bytes\n if (length < index + 2 || privateKey[index] !== 0x04 || privateKey[index + 1] > 0x20 || length < index + 2 + privateKey[index + 1]) {\n return null;\n }\n\n return privateKey.slice(index + 2, index + 2 + privateKey[index + 1]);\n};\n\nexports.signatureImportLax = function (signature) {\n var r = Buffer.alloc(32, 0);\n var s = Buffer.alloc(32, 0);\n\n var length = signature.length;\n var index = 0;\n\n // sequence tag byte\n if (signature[index++] !== 0x30) {\n return null;\n }\n\n // sequence length byte\n var lenbyte = signature[index++];\n if (lenbyte & 0x80) {\n index += lenbyte - 0x80;\n if (index > length) {\n return null;\n }\n }\n\n // sequence tag byte for r\n if (signature[index++] !== 0x02) {\n return null;\n }\n\n // length for r\n var rlen = signature[index++];\n if (rlen & 0x80) {\n lenbyte = rlen - 0x80;\n if (index + lenbyte > length) {\n return null;\n }\n for (; lenbyte > 0 && signature[index] === 0x00; index += 1, lenbyte -= 1) {}\n for (rlen = 0; lenbyte > 0; index += 1, lenbyte -= 1) {\n rlen = (rlen << 8) + signature[index];\n }\n }\n if (rlen > length - index) {\n return null;\n }\n var rindex = index;\n index += rlen;\n\n // sequence tag byte for s\n if (signature[index++] !== 0x02) {\n return null;\n }\n\n // length for s\n var slen = signature[index++];\n if (slen & 0x80) {\n lenbyte = slen - 0x80;\n if (index + lenbyte > length) {\n return null;\n }\n for (; lenbyte > 0 && signature[index] === 0x00; index += 1, lenbyte -= 1) {}\n for (slen = 0; lenbyte > 0; index += 1, lenbyte -= 1) {\n slen = (slen << 8) + signature[index];\n }\n }\n if (slen > length - index) {\n return null;\n }\n var sindex = index;\n index += slen;\n\n // ignore leading zeros in r\n for (; rlen > 0 && signature[rindex] === 0x00; rlen -= 1, rindex += 1) {}\n // copy r value\n if (rlen > 32) {\n return null;\n }\n var rvalue = signature.slice(rindex, rindex + rlen);\n rvalue.copy(r, 32 - rvalue.length);\n\n // ignore leading zeros in s\n for (; slen > 0 && signature[sindex] === 0x00; slen -= 1, sindex += 1) {}\n // copy s value\n if (slen > 32) {\n return null;\n }\n var svalue = signature.slice(sindex, sindex + slen);\n svalue.copy(s, 32 - svalue.length);\n\n return { r: r, s: s };\n};","const createPayload = require('../util/create-payload.js')\n\nmodule.exports = SubProvider\n\n// this is the base class for a subprovider -- mostly helpers\n\n\nfunction SubProvider() {\n\n}\n\nSubProvider.prototype.setEngine = function(engine) {\n const self = this\n if (self.engine) return\n self.engine = engine\n engine.on('block', function(block) {\n self.currentBlock = block\n })\n\n engine.on('start', function () {\n self.start()\n })\n\n engine.on('stop', function () {\n self.stop()\n })\n}\n\nSubProvider.prototype.handleRequest = function(payload, next, end) {\n throw new Error('Subproviders should override `handleRequest`.')\n}\n\nSubProvider.prototype.emitPayload = function(payload, cb){\n const self = this\n self.engine.sendAsync(createPayload(payload), cb)\n}\n\n// dummies for overriding\n\nSubProvider.prototype.stop = function () {}\n\nSubProvider.prototype.start = function () {}\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\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 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}","export const version = \"bytes/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0x0\" + hex.substring(2);\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0\n };\n if (isBytesLike(signature)) {\n const bytes = arrayify(signature);\n if (bytes.length !== 65) {\n logger.throwArgumentError(\"invalid signature string; must be 65 bytes\", \"signature\", signature);\n }\n // Get the r, s and v\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","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}","\"use strict\";\nexport function shuffled(array) {\n array = array.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n return array;\n}\n//# sourceMappingURL=shuffle.js.map","\"use strict\";\nimport { Wordlist } from \"./wordlist\";\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\nlet wordlist = null;\nfunction loadWords(lang) {\n if (wordlist != null) {\n return;\n }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n getWord(index) {\n loadWords(this);\n return wordlist[index];\n }\n getWordIndex(word) {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\nconst langEn = new LangEn();\nWordlist.register(langEn);\nexport { langEn };\n//# sourceMappingURL=lang-en.js.map","\"use strict\";\nimport { langEn as en } from \"./lang-en\";\nexport const wordlists = {\n en: en\n};\n//# sourceMappingURL=wordlists.js.map","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var BufferUtil = require('../utils/buffer')\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n logger.checkNew(new.target, AbiCoder);\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","const pify = require('pify')\nconst BaseBlockTracker = require('./base')\n\nconst sec = 1000\n\nclass PollingBlockTracker extends BaseBlockTracker {\n\n constructor (opts = {}) {\n // parse + validate args\n if (!opts.provider) throw new Error('PollingBlockTracker - no provider specified.')\n const pollingInterval = opts.pollingInterval || 20 * sec\n const retryTimeout = opts.retryTimeout || pollingInterval / 10\n const keepEventLoopActive = opts.keepEventLoopActive !== undefined ? opts.keepEventLoopActive : true\n const setSkipCacheFlag = opts.setSkipCacheFlag || false\n // BaseBlockTracker constructor\n super(Object.assign({\n blockResetDuration: pollingInterval,\n }, opts))\n // config\n this._provider = opts.provider\n this._pollingInterval = pollingInterval\n this._retryTimeout = retryTimeout\n this._keepEventLoopActive = keepEventLoopActive\n this._setSkipCacheFlag = setSkipCacheFlag\n }\n\n //\n // public\n //\n\n // trigger block polling\n async checkForLatestBlock () {\n await this._updateLatestBlock()\n return await this.getLatestBlock()\n }\n\n //\n // private\n //\n\n _start () {\n this._performSync().catch(err => this.emit('error', err))\n }\n\n async _performSync () {\n while (this._isRunning) {\n try {\n await this._updateLatestBlock()\n await timeout(this._pollingInterval, !this._keepEventLoopActive)\n } catch (err) {\n const newErr = new Error(`PollingBlockTracker - encountered an error while attempting to update latest block:\\n${err.stack}`)\n try {\n this.emit('error', newErr)\n } catch (emitErr) {\n console.error(newErr)\n }\n await timeout(this._retryTimeout, !this._keepEventLoopActive)\n }\n }\n }\n\n async _updateLatestBlock () {\n // fetch + set latest block\n const latestBlock = await this._fetchLatestBlock()\n this._newPotentialLatest(latestBlock)\n }\n\n async _fetchLatestBlock () {\n const req = { jsonrpc: \"2.0\", id: 1, method: 'eth_blockNumber', params: [] }\n if (this._setSkipCacheFlag) req.skipCache = true\n const res = await pify((cb) => this._provider.sendAsync(req, cb))()\n if (res.error) throw new Error(`PollingBlockTracker - encountered error fetching block:\\n${res.error}`)\n return res.result\n }\n\n}\n\nmodule.exports = PollingBlockTracker\n\nfunction timeout (duration, unref) {\n return new Promise(resolve => {\n const timoutRef = setTimeout(resolve, duration)\n // don't keep process open\n if (timoutRef.unref && unref) {\n timoutRef.unref()\n }\n })\n}\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","\"use strict\";\n// Copyright (c) 2018-2021 WalletLink.org \n// Copyright (c) 2018-2021 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgN3Y5aDE0VjdIMVptNy41IDQuMzlWMTRoLTF2LTIuNjFjLS40NC0uMTktLjc1LS42My0uNzUtMS4xNGExLjI1IDEuMjUgMCAwIDEgMi41IDBjMCAuNTEtLjMxLjk1LS43NSAxLjE0Wk01LjY3IDZWNC4zM0M1LjY3IDMuMDUgNi43MSAyIDggMnMyLjMzIDEuMDUgMi4zMyAyLjMzVjZoMlY0LjMzQzEyLjMzIDEuOTQgMTAuMzkgMCA4IDBTMy42NyAxLjk0IDMuNjcgNC4zM1Y2aDJaIiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","export const version = \"hash/5.5.0\";\n//# sourceMappingURL=_version.js.map","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","const inherits = require('util').inherits\nconst Subprovider = require('./subprovider.js')\n\nmodule.exports = FixtureProvider\n\ninherits(FixtureProvider, Subprovider)\n\nfunction FixtureProvider(staticResponses){\n const self = this\n staticResponses = staticResponses || {}\n self.staticResponses = staticResponses\n}\n\nFixtureProvider.prototype.handleRequest = function(payload, next, end){\n const self = this\n var staticResponse = self.staticResponses[payload.method]\n // async function\n if ('function' === typeof staticResponse) {\n staticResponse(payload, next, end)\n // static response - null is valid response\n } else if (staticResponse !== undefined) {\n // return result asynchronously\n setTimeout(() => end(null, staticResponse))\n // no prepared response - skip\n } else {\n next()\n }\n}\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","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;","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","/**\n * Implementation of a subset of node.js Buffer methods for the browser.\n * Based on https://github.com/feross/buffer\n */\n\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar isArray = require('isarray')\n\nfunction typedArraySupport () {\n // Can typed array instances be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n\nfunction Buffer (arg, offset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, offset, length)\n }\n\n if (typeof arg === 'number') {\n return allocUnsafe(this, arg)\n }\n\n return from(this, arg, offset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\nfunction createBuffer (that, length) {\n var buf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = that\n if (buf === null) {\n buf = new Buffer(length)\n }\n buf.length = length\n }\n\n return buf\n}\n\nfunction allocUnsafe (that, size) {\n var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n buf[i] = 0\n }\n }\n\n return buf\n}\n\nfunction fromString (that, string) {\n var length = byteLength(string) | 0\n var buf = createBuffer(that, length)\n\n var actual = buf.write(string)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\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 var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = fromArrayLike(that, buf)\n }\n\n return buf\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(that, len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj) {\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' && Array.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 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 byteLength (string) {\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 return utf8ToBytes(string).length\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 utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction from (that, value, offset, 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, offset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, offset)\n }\n\n return fromObject(that, value)\n}\n\nBuffer.prototype.write = function write (string, offset, length) {\n // Buffer#write(string)\n if (offset === undefined) {\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n } else {\n length = undefined\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 return utf8Write(this, string, offset, length)\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 // Return an augmented `Uint8Array` instance\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\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\nBuffer.prototype.fill = function fill (val, start, end) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\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 } 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 : new Buffer(val)\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\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 createBuffer(null, 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 = allocUnsafe(null, 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\nBuffer.byteLength = byteLength\n\nBuffer.prototype._isBuffer = true\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nmodule.exports.alloc = function (size) {\n var buffer = new Buffer(size)\n buffer.fill(0)\n return buffer\n}\n\nmodule.exports.from = function (data) {\n return new Buffer(data)\n}\n","export const version = \"transactions/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport var TransactionTypes;\n(function (TransactionTypes) {\n TransactionTypes[TransactionTypes[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes[TransactionTypes[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes[TransactionTypes[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\n;\n///////////////////////////////\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, type: true, value: true\n};\nexport function computeAddress(key) {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature) {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\nfunction _serializeEip2930(transaction, signature) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n}\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n const raw = [];\n transactionFields.forEach(function (fieldInfo) {\n let value = transaction[fieldInfo.name] || ([]);\n const options = {};\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n value = arrayify(hexlify(value, options));\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n }\n raw.push(hexlify(value));\n });\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n if (typeof (chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n }\n else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam;\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n }\n else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n return RLP.encode(raw);\n}\nexport function serialize(transaction, signature) {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${transaction.type}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n }\n catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n }\n catch (error) {\n console.log(error);\n }\n}\nfunction _parseEip1559(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction) {\n const transaction = RLP.decode(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n // Legacy unsigned transaction\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n }\n catch (error) {\n console.log(error);\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n }\n else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n }\n catch (error) {\n console.log(error);\n }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nexport function parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) {\n return _parse(payload);\n }\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n//# sourceMappingURL=index.js.map","/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = /*@__PURE__*/ (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, undefined, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","module.exports = require('events').EventEmitter;\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\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;","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = {\n \"version\": \"0.25.0\"\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createIdRemapMiddleware = void 0;\nconst getUniqueId_1 = require(\"./getUniqueId\");\nfunction createIdRemapMiddleware() {\n return (req, res, next, _end) => {\n const originalId = req.id;\n const newId = getUniqueId_1.getUniqueId();\n req.id = newId;\n res.id = newId;\n next((done) => {\n req.id = originalId;\n res.id = originalId;\n done();\n });\n };\n}\nexports.createIdRemapMiddleware = createIdRemapMiddleware;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRSZW1hcE1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaWRSZW1hcE1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQTRDO0FBRzVDLFNBQWdCLHVCQUF1QjtJQUNyQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDOUIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyx5QkFBVyxFQUFFLENBQUM7UUFDNUIsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osR0FBRyxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDcEIsR0FBRyxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUM7QUFaRCwwREFZQyJ9","'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}","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n","export const version = \"14.7.77\";\n//# sourceMappingURL=version.js.map","export const createAbortError = () => new DOMException('', 'AbortError');\n//# sourceMappingURL=abort-error.js.map","export const createAddActiveInputConnectionToAudioNode = (insertElementInSet) => {\n return (activeInputs, source, [output, input, eventListener], ignoreDuplicates) => {\n insertElementInSet(activeInputs[input], [source, output, eventListener], (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output, ignoreDuplicates);\n };\n};\n//# sourceMappingURL=add-active-input-connection-to-audio-node.js.map","export const createAddAudioNodeConnections = (audioNodeConnectionsStore) => {\n return (audioNode, audioNodeRenderer, nativeAudioNode) => {\n const activeInputs = [];\n for (let i = 0; i < nativeAudioNode.numberOfInputs; i += 1) {\n activeInputs.push(new Set());\n }\n audioNodeConnectionsStore.set(audioNode, {\n activeInputs,\n outputs: new Set(),\n passiveInputs: new WeakMap(),\n renderer: audioNodeRenderer\n });\n };\n};\n//# sourceMappingURL=add-audio-node-connections.js.map","export const createAddAudioParamConnections = (audioParamConnectionsStore) => {\n return (audioParam, audioParamRenderer) => {\n audioParamConnectionsStore.set(audioParam, { activeInputs: new Set(), passiveInputs: new WeakMap(), renderer: audioParamRenderer });\n };\n};\n//# sourceMappingURL=add-audio-param-connections.js.map","export const ACTIVE_AUDIO_NODE_STORE = new WeakSet();\nexport const AUDIO_NODE_CONNECTIONS_STORE = new WeakMap();\nexport const AUDIO_NODE_STORE = new WeakMap();\nexport const AUDIO_PARAM_CONNECTIONS_STORE = new WeakMap();\nexport const AUDIO_PARAM_STORE = new WeakMap();\nexport const CONTEXT_STORE = new WeakMap();\nexport const EVENT_LISTENERS = new WeakMap();\nexport const CYCLE_COUNTERS = new WeakMap();\n// This clunky name is borrowed from the spec. :-)\nexport const NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS = new WeakMap();\nexport const NODE_TO_PROCESSOR_MAPS = new WeakMap();\n//# sourceMappingURL=globals.js.map","const handler = {\n construct() {\n return handler;\n }\n};\nexport const isConstructible = (constructible) => {\n try {\n const proxy = new Proxy(constructible, handler);\n new proxy(); // tslint:disable-line:no-unused-expression\n }\n catch {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=is-constructible.js.map","/*\n * This massive regex tries to cover all the following cases.\n *\n * import './path';\n * import defaultImport from './path';\n * import { namedImport } from './path';\n * import { namedImport as renamendImport } from './path';\n * import * as namespaceImport from './path';\n * import defaultImport, { namedImport } from './path';\n * import defaultImport, { namedImport as renamendImport } from './path';\n * import defaultImport, * as namespaceImport from './path';\n */\nconst IMPORT_STATEMENT_REGEX = /^import(?:(?:[\\s]+[\\w]+|(?:[\\s]+[\\w]+[\\s]*,)?[\\s]*\\{[\\s]*[\\w]+(?:[\\s]+as[\\s]+[\\w]+)?(?:[\\s]*,[\\s]*[\\w]+(?:[\\s]+as[\\s]+[\\w]+)?)*[\\s]*}|(?:[\\s]+[\\w]+[\\s]*,)?[\\s]*\\*[\\s]+as[\\s]+[\\w]+)[\\s]+from)?(?:[\\s]*)(\"([^\"\\\\]|\\\\.)+\"|'([^'\\\\]|\\\\.)+')(?:[\\s]*);?/; // tslint:disable-line:max-line-length\nexport const splitImportStatements = (source, url) => {\n const importStatements = [];\n let sourceWithoutImportStatements = source.replace(/^[\\s]+/, '');\n let result = sourceWithoutImportStatements.match(IMPORT_STATEMENT_REGEX);\n while (result !== null) {\n const unresolvedUrl = result[1].slice(1, -1);\n const importStatementWithResolvedUrl = result[0]\n .replace(/([\\s]+)?;?$/, '')\n .replace(unresolvedUrl, new URL(unresolvedUrl, url).toString());\n importStatements.push(importStatementWithResolvedUrl);\n sourceWithoutImportStatements = sourceWithoutImportStatements.slice(result[0].length).replace(/^[\\s]+/, '');\n result = sourceWithoutImportStatements.match(IMPORT_STATEMENT_REGEX);\n }\n return [importStatements.join(';'), sourceWithoutImportStatements];\n};\n//# sourceMappingURL=split-import-statements.js.map","import { NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS } from '../globals';\nimport { isConstructible } from '../helpers/is-constructible';\nimport { splitImportStatements } from '../helpers/split-import-statements';\nconst verifyParameterDescriptors = (parameterDescriptors) => {\n if (parameterDescriptors !== undefined && !Array.isArray(parameterDescriptors)) {\n throw new TypeError('The parameterDescriptors property of given value for processorCtor is not an array.');\n }\n};\nconst verifyProcessorCtor = (processorCtor) => {\n if (!isConstructible(processorCtor)) {\n throw new TypeError('The given value for processorCtor should be a constructor.');\n }\n if (processorCtor.prototype === null || typeof processorCtor.prototype !== 'object') {\n throw new TypeError('The given value for processorCtor should have a prototype.');\n }\n};\nexport const createAddAudioWorkletModule = (cacheTestResult, createNotSupportedError, evaluateSource, exposeCurrentFrameAndCurrentTime, fetchSource, getNativeContext, getOrCreateBackupOfflineAudioContext, isNativeOfflineAudioContext, nativeAudioWorkletNodeConstructor, ongoingRequests, resolvedRequests, testAudioWorkletProcessorPostMessageSupport, window) => {\n let index = 0;\n return (context, moduleURL, options = { credentials: 'omit' }) => {\n const resolvedRequestsOfContext = resolvedRequests.get(context);\n if (resolvedRequestsOfContext !== undefined && resolvedRequestsOfContext.has(moduleURL)) {\n return Promise.resolve();\n }\n const ongoingRequestsOfContext = ongoingRequests.get(context);\n if (ongoingRequestsOfContext !== undefined) {\n const promiseOfOngoingRequest = ongoingRequestsOfContext.get(moduleURL);\n if (promiseOfOngoingRequest !== undefined) {\n return promiseOfOngoingRequest;\n }\n }\n const nativeContext = getNativeContext(context);\n // Bug #59: Safari does not implement the audioWorklet property.\n const promise = nativeContext.audioWorklet === undefined\n ? fetchSource(moduleURL)\n .then(([source, absoluteUrl]) => {\n const [importStatements, sourceWithoutImportStatements] = splitImportStatements(source, absoluteUrl);\n /*\n * This is the unminified version of the code used below:\n *\n * ```js\n * ${ importStatements };\n * ((a, b) => {\n * (a[b] = a[b] || [ ]).push(\n * (AudioWorkletProcessor, global, registerProcessor, sampleRate, self, window) => {\n * ${ sourceWithoutImportStatements }\n * }\n * );\n * })(window, '_AWGS');\n * ```\n */\n // tslint:disable-next-line:max-line-length\n const wrappedSource = `${importStatements};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${sourceWithoutImportStatements}\n})})(window,'_AWGS')`;\n // @todo Evaluating the given source code is a possible security problem.\n return evaluateSource(wrappedSource);\n })\n .then(() => {\n const evaluateAudioWorkletGlobalScope = window._AWGS.pop();\n if (evaluateAudioWorkletGlobalScope === undefined) {\n // Bug #182 Chrome, Edge and Opera do throw an instance of a SyntaxError instead of a DOMException.\n throw new SyntaxError();\n }\n exposeCurrentFrameAndCurrentTime(nativeContext.currentTime, nativeContext.sampleRate, () => evaluateAudioWorkletGlobalScope(class AudioWorkletProcessor {\n }, undefined, (name, processorCtor) => {\n if (name.trim() === '') {\n throw createNotSupportedError();\n }\n const nodeNameToProcessorConstructorMap = NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(nativeContext);\n if (nodeNameToProcessorConstructorMap !== undefined) {\n if (nodeNameToProcessorConstructorMap.has(name)) {\n throw createNotSupportedError();\n }\n verifyProcessorCtor(processorCtor);\n verifyParameterDescriptors(processorCtor.parameterDescriptors);\n nodeNameToProcessorConstructorMap.set(name, processorCtor);\n }\n else {\n verifyProcessorCtor(processorCtor);\n verifyParameterDescriptors(processorCtor.parameterDescriptors);\n NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(nativeContext, new Map([[name, processorCtor]]));\n }\n }, nativeContext.sampleRate, undefined, undefined));\n })\n : Promise.all([\n fetchSource(moduleURL),\n Promise.resolve(cacheTestResult(testAudioWorkletProcessorPostMessageSupport, testAudioWorkletProcessorPostMessageSupport))\n ]).then(([[source, absoluteUrl], isSupportingPostMessage]) => {\n const currentIndex = index + 1;\n index = currentIndex;\n const [importStatements, sourceWithoutImportStatements] = splitImportStatements(source, absoluteUrl);\n /*\n * Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\n *\n * This is the unminified version of the code used below.\n *\n * ```js\n * class extends AudioWorkletProcessor {\n *\n * __buffers = new WeakSet();\n *\n * constructor () {\n * super();\n *\n * this.port.postMessage = ((postMessage) => {\n * return (message, transferables) => {\n * const filteredTransferables = (transferables)\n * ? transferables.filter((transferable) => !this.__buffers.has(transferable))\n * : transferables;\n *\n * return postMessage.call(this.port, message, filteredTransferables);\n * };\n * })(this.port.postMessage);\n * }\n * }\n * ```\n */\n const patchedAudioWorkletProcessor = isSupportingPostMessage\n ? 'AudioWorkletProcessor'\n : 'class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}';\n /*\n * Bug #170: Chrome and Edge do call process() with an array with empty channelData for each input if no input is connected.\n *\n * Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\n *\n * Bug #190: Safari doesn't throw an error when loading an unparsable module.\n *\n * This is the unminified version of the code used below:\n *\n * ```js\n * `${ importStatements };\n * ((AudioWorkletProcessor, registerProcessor) => {${ sourceWithoutImportStatements }\n * })(\n * ${ patchedAudioWorkletProcessor },\n * (name, processorCtor) => registerProcessor(name, class extends processorCtor {\n *\n * __collectBuffers = (array) => {\n * array.forEach((element) => this.__buffers.add(element.buffer));\n * };\n *\n * process (inputs, outputs, parameters) {\n * inputs.forEach(this.__collectBuffers);\n * outputs.forEach(this.__collectBuffers);\n * this.__collectBuffers(Object.values(parameters));\n *\n * return super.process(\n * (inputs.map((input) => input.some((channelData) => channelData.length === 0)) ? [ ] : input),\n * outputs,\n * parameters\n * );\n * }\n *\n * })\n * );\n *\n * registerProcessor(`__sac${currentIndex}`, class extends AudioWorkletProcessor{\n *\n * process () {\n * return false;\n * }\n *\n * })`\n * ```\n */\n const memberDefinition = isSupportingPostMessage ? '' : '__c = (a) => a.forEach(e=>this.__b.add(e.buffer));';\n const bufferRegistration = isSupportingPostMessage\n ? ''\n : 'i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));';\n const wrappedSource = `${importStatements};((AudioWorkletProcessor,registerProcessor)=>{${sourceWithoutImportStatements}\n})(${patchedAudioWorkletProcessor},(n,p)=>registerProcessor(n,class extends p{${memberDefinition}process(i,o,p){${bufferRegistration}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${currentIndex}',class extends AudioWorkletProcessor{process(){return !1}})`;\n const blob = new Blob([wrappedSource], { type: 'application/javascript; charset=utf-8' });\n const url = URL.createObjectURL(blob);\n return nativeContext.audioWorklet\n .addModule(url, options)\n .then(() => {\n if (isNativeOfflineAudioContext(nativeContext)) {\n return nativeContext;\n }\n // Bug #186: Chrome, Edge and Opera do not allow to create an AudioWorkletNode on a closed AudioContext.\n const backupOfflineAudioContext = getOrCreateBackupOfflineAudioContext(nativeContext);\n return backupOfflineAudioContext.audioWorklet.addModule(url, options).then(() => backupOfflineAudioContext);\n })\n .then((nativeContextOrBackupOfflineAudioContext) => {\n if (nativeAudioWorkletNodeConstructor === null) {\n throw new SyntaxError();\n }\n try {\n // Bug #190: Safari doesn't throw an error when loading an unparsable module.\n new nativeAudioWorkletNodeConstructor(nativeContextOrBackupOfflineAudioContext, `__sac${currentIndex}`); // tslint:disable-line:no-unused-expression\n }\n catch {\n throw new SyntaxError();\n }\n })\n .finally(() => URL.revokeObjectURL(url));\n });\n if (ongoingRequestsOfContext === undefined) {\n ongoingRequests.set(context, new Map([[moduleURL, promise]]));\n }\n else {\n ongoingRequestsOfContext.set(moduleURL, promise);\n }\n promise\n .then(() => {\n const updatedResolvedRequestsOfContext = resolvedRequests.get(context);\n if (updatedResolvedRequestsOfContext === undefined) {\n resolvedRequests.set(context, new Set([moduleURL]));\n }\n else {\n updatedResolvedRequestsOfContext.add(moduleURL);\n }\n })\n .finally(() => {\n const updatedOngoingRequestsOfContext = ongoingRequests.get(context);\n if (updatedOngoingRequestsOfContext !== undefined) {\n updatedOngoingRequestsOfContext.delete(moduleURL);\n }\n });\n return promise;\n };\n};\n//# sourceMappingURL=add-audio-worklet-module.js.map","export const getValueForKey = (map, key) => {\n const value = map.get(key);\n if (value === undefined) {\n throw new Error('A value with the given key could not be found.');\n }\n return value;\n};\n//# sourceMappingURL=get-value-for-key.js.map","export const pickElementFromSet = (set, predicate) => {\n const matchingElements = Array.from(set).filter(predicate);\n if (matchingElements.length > 1) {\n throw Error('More than one element was found.');\n }\n if (matchingElements.length === 0) {\n throw Error('No element was found.');\n }\n const [matchingElement] = matchingElements;\n set.delete(matchingElement);\n return matchingElement;\n};\n//# sourceMappingURL=pick-element-from-set.js.map","import { getValueForKey } from './get-value-for-key';\nimport { pickElementFromSet } from './pick-element-from-set';\nexport const deletePassiveInputConnectionToAudioNode = (passiveInputs, source, output, input) => {\n const passiveInputConnections = getValueForKey(passiveInputs, source);\n const matchingConnection = pickElementFromSet(passiveInputConnections, (passiveInputConnection) => passiveInputConnection[0] === output && passiveInputConnection[1] === input);\n if (passiveInputConnections.size === 0) {\n passiveInputs.delete(source);\n }\n return matchingConnection;\n};\n//# sourceMappingURL=delete-passive-input-connection-to-audio-node.js.map","import { EVENT_LISTENERS } from '../globals';\nimport { getValueForKey } from './get-value-for-key';\nexport const getEventListenersOfAudioNode = (audioNode) => {\n return getValueForKey(EVENT_LISTENERS, audioNode);\n};\n//# sourceMappingURL=get-event-listeners-of-audio-node.js.map","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\nexport const setInternalStateToActive = (audioNode) => {\n if (ACTIVE_AUDIO_NODE_STORE.has(audioNode)) {\n throw new Error('The AudioNode is already stored.');\n }\n ACTIVE_AUDIO_NODE_STORE.add(audioNode);\n getEventListenersOfAudioNode(audioNode).forEach((eventListener) => eventListener(true));\n};\n//# sourceMappingURL=set-internal-state-to-active.js.map","export const isAudioWorkletNode = (audioNode) => {\n return 'port' in audioNode;\n};\n//# sourceMappingURL=audio-worklet-node.js.map","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nimport { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\nexport const setInternalStateToPassive = (audioNode) => {\n if (!ACTIVE_AUDIO_NODE_STORE.has(audioNode)) {\n throw new Error('The AudioNode is not stored.');\n }\n ACTIVE_AUDIO_NODE_STORE.delete(audioNode);\n getEventListenersOfAudioNode(audioNode).forEach((eventListener) => eventListener(false));\n};\n//# sourceMappingURL=set-internal-state-to-passive.js.map","import { isAudioWorkletNode } from '../guards/audio-worklet-node';\nimport { setInternalStateToPassive } from './set-internal-state-to-passive';\n// Set the internalState of the audioNode to 'passive' if it is not an AudioWorkletNode and if it has no 'active' input connections.\nexport const setInternalStateToPassiveWhenNecessary = (audioNode, activeInputs) => {\n if (!isAudioWorkletNode(audioNode) && activeInputs.every((connections) => connections.size === 0)) {\n setInternalStateToPassive(audioNode);\n }\n};\n//# sourceMappingURL=set-internal-state-to-passive-when-necessary.js.map","import { deletePassiveInputConnectionToAudioNode } from '../helpers/delete-passive-input-connection-to-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassiveWhenNecessary } from '../helpers/set-internal-state-to-passive-when-necessary';\nexport const createAddConnectionToAudioNode = (addActiveInputConnectionToAudioNode, addPassiveInputConnectionToAudioNode, connectNativeAudioNodeToNativeAudioNode, deleteActiveInputConnectionToAudioNode, disconnectNativeAudioNodeFromNativeAudioNode, getAudioNodeConnections, getAudioNodeTailTime, getEventListenersOfAudioNode, getNativeAudioNode, insertElementInSet, isActiveAudioNode, isPartOfACycle, isPassiveAudioNode) => {\n const tailTimeTimeoutIds = new WeakMap();\n return (source, destination, output, input, isOffline) => {\n const { activeInputs, passiveInputs } = getAudioNodeConnections(destination);\n const { outputs } = getAudioNodeConnections(source);\n const eventListeners = getEventListenersOfAudioNode(source);\n const eventListener = (isActive) => {\n const nativeDestinationAudioNode = getNativeAudioNode(destination);\n const nativeSourceAudioNode = getNativeAudioNode(source);\n if (isActive) {\n const partialConnection = deletePassiveInputConnectionToAudioNode(passiveInputs, source, output, input);\n addActiveInputConnectionToAudioNode(activeInputs, source, partialConnection, false);\n if (!isOffline && !isPartOfACycle(source)) {\n connectNativeAudioNodeToNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output, input);\n }\n if (isPassiveAudioNode(destination)) {\n setInternalStateToActive(destination);\n }\n }\n else {\n const partialConnection = deleteActiveInputConnectionToAudioNode(activeInputs, source, output, input);\n addPassiveInputConnectionToAudioNode(passiveInputs, input, partialConnection, false);\n if (!isOffline && !isPartOfACycle(source)) {\n disconnectNativeAudioNodeFromNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output, input);\n }\n const tailTime = getAudioNodeTailTime(destination);\n if (tailTime === 0) {\n if (isActiveAudioNode(destination)) {\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n }\n else {\n const tailTimeTimeoutId = tailTimeTimeoutIds.get(destination);\n if (tailTimeTimeoutId !== undefined) {\n clearTimeout(tailTimeTimeoutId);\n }\n tailTimeTimeoutIds.set(destination, setTimeout(() => {\n if (isActiveAudioNode(destination)) {\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n }, tailTime * 1000));\n }\n }\n };\n if (insertElementInSet(outputs, [destination, output, input], (outputConnection) => outputConnection[0] === destination && outputConnection[1] === output && outputConnection[2] === input, true)) {\n eventListeners.add(eventListener);\n if (isActiveAudioNode(source)) {\n addActiveInputConnectionToAudioNode(activeInputs, source, [output, input, eventListener], true);\n }\n else {\n addPassiveInputConnectionToAudioNode(passiveInputs, input, [source, output, eventListener], true);\n }\n return true;\n }\n return false;\n };\n};\n//# sourceMappingURL=add-connection-to-audio-node.js.map","export const createAddPassiveInputConnectionToAudioNode = (insertElementInSet) => {\n return (passiveInputs, input, [source, output, eventListener], ignoreDuplicates) => {\n const passiveInputConnections = passiveInputs.get(source);\n if (passiveInputConnections === undefined) {\n passiveInputs.set(source, new Set([[output, input, eventListener]]));\n }\n else {\n insertElementInSet(passiveInputConnections, [output, input, eventListener], (passiveInputConnection) => passiveInputConnection[0] === output && passiveInputConnection[1] === input, ignoreDuplicates);\n }\n };\n};\n//# sourceMappingURL=add-passive-input-connection-to-audio-node.js.map","export const createAddSilentConnection = (createNativeGainNode) => {\n return (nativeContext, nativeAudioScheduledSourceNode) => {\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n nativeAudioScheduledSourceNode.connect(nativeGainNode).connect(nativeContext.destination);\n const disconnect = () => {\n nativeAudioScheduledSourceNode.removeEventListener('ended', disconnect);\n nativeAudioScheduledSourceNode.disconnect(nativeGainNode);\n nativeGainNode.disconnect();\n };\n nativeAudioScheduledSourceNode.addEventListener('ended', disconnect);\n };\n};\n//# sourceMappingURL=add-silent-connection.js.map","export const createAddUnrenderedAudioWorkletNode = (getUnrenderedAudioWorkletNodes) => {\n return (nativeContext, audioWorkletNode) => {\n getUnrenderedAudioWorkletNodes(nativeContext).add(audioWorkletNode);\n };\n};\n//# sourceMappingURL=add-unrendered-audio-worklet-node.js.map","const DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n fftSize: 2048,\n maxDecibels: -30,\n minDecibels: -100,\n smoothingTimeConstant: 0.8\n};\nexport const createAnalyserNodeConstructor = (audionNodeConstructor, createAnalyserNodeRenderer, createIndexSizeError, createNativeAnalyserNode, getNativeContext, isNativeOfflineAudioContext) => {\n return class AnalyserNode extends audionNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeAnalyserNode = createNativeAnalyserNode(nativeContext, mergedOptions);\n const analyserNodeRenderer = ((isNativeOfflineAudioContext(nativeContext) ? createAnalyserNodeRenderer() : null));\n super(context, false, nativeAnalyserNode, analyserNodeRenderer);\n this._nativeAnalyserNode = nativeAnalyserNode;\n }\n get fftSize() {\n return this._nativeAnalyserNode.fftSize;\n }\n set fftSize(value) {\n this._nativeAnalyserNode.fftSize = value;\n }\n get frequencyBinCount() {\n return this._nativeAnalyserNode.frequencyBinCount;\n }\n get maxDecibels() {\n return this._nativeAnalyserNode.maxDecibels;\n }\n set maxDecibels(value) {\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n const maxDecibels = this._nativeAnalyserNode.maxDecibels;\n this._nativeAnalyserNode.maxDecibels = value;\n if (!(value > this._nativeAnalyserNode.minDecibels)) {\n this._nativeAnalyserNode.maxDecibels = maxDecibels;\n throw createIndexSizeError();\n }\n }\n get minDecibels() {\n return this._nativeAnalyserNode.minDecibels;\n }\n set minDecibels(value) {\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n const minDecibels = this._nativeAnalyserNode.minDecibels;\n this._nativeAnalyserNode.minDecibels = value;\n if (!(this._nativeAnalyserNode.maxDecibels > value)) {\n this._nativeAnalyserNode.minDecibels = minDecibels;\n throw createIndexSizeError();\n }\n }\n get smoothingTimeConstant() {\n return this._nativeAnalyserNode.smoothingTimeConstant;\n }\n set smoothingTimeConstant(value) {\n this._nativeAnalyserNode.smoothingTimeConstant = value;\n }\n getByteFrequencyData(array) {\n this._nativeAnalyserNode.getByteFrequencyData(array);\n }\n getByteTimeDomainData(array) {\n this._nativeAnalyserNode.getByteTimeDomainData(array);\n }\n getFloatFrequencyData(array) {\n this._nativeAnalyserNode.getFloatFrequencyData(array);\n }\n getFloatTimeDomainData(array) {\n this._nativeAnalyserNode.getFloatTimeDomainData(array);\n }\n };\n};\n//# sourceMappingURL=analyser-node-constructor.js.map","export const isOwnedByContext = (nativeAudioNode, nativeContext) => {\n return nativeAudioNode.context === nativeContext;\n};\n//# sourceMappingURL=is-owned-by-context.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createAnalyserNodeRendererFactory = (createNativeAnalyserNode, getNativeAudioNode, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeAnalyserNodes = new WeakMap();\n const createAnalyserNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeAnalyserNode = getNativeAudioNode(proxy);\n // If the initially used nativeAnalyserNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAnalyserNodeIsOwnedByContext = isOwnedByContext(nativeAnalyserNode, nativeOfflineAudioContext);\n if (!nativeAnalyserNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAnalyserNode.channelCount,\n channelCountMode: nativeAnalyserNode.channelCountMode,\n channelInterpretation: nativeAnalyserNode.channelInterpretation,\n fftSize: nativeAnalyserNode.fftSize,\n maxDecibels: nativeAnalyserNode.maxDecibels,\n minDecibels: nativeAnalyserNode.minDecibels,\n smoothingTimeConstant: nativeAnalyserNode.smoothingTimeConstant\n };\n nativeAnalyserNode = createNativeAnalyserNode(nativeOfflineAudioContext, options);\n }\n renderedNativeAnalyserNodes.set(nativeOfflineAudioContext, nativeAnalyserNode);\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAnalyserNode);\n return nativeAnalyserNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeAnalyserNode = renderedNativeAnalyserNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAnalyserNode !== undefined) {\n return Promise.resolve(renderedNativeAnalyserNode);\n }\n return createAnalyserNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=analyser-node-renderer-factory.js.map","export const testAudioBufferCopyChannelMethodsOutOfBoundsSupport = (nativeAudioBuffer) => {\n try {\n nativeAudioBuffer.copyToChannel(new Float32Array(1), 0, -1);\n }\n catch {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=test-audio-buffer-copy-channel-methods-out-of-bounds-support.js.map","export const createIndexSizeError = () => new DOMException('', 'IndexSizeError');\n//# sourceMappingURL=index-size-error.js.map","import { createIndexSizeError } from '../factories/index-size-error';\nexport const wrapAudioBufferGetChannelDataMethod = (audioBuffer) => {\n audioBuffer.getChannelData = ((getChannelData) => {\n return (channel) => {\n try {\n return getChannelData.call(audioBuffer, channel);\n }\n catch (err) {\n if (err.code === 12) {\n throw createIndexSizeError();\n }\n throw err;\n }\n };\n })(audioBuffer.getChannelData);\n};\n//# sourceMappingURL=wrap-audio-buffer-get-channel-data-method.js.map","import { testAudioBufferCopyChannelMethodsOutOfBoundsSupport } from '../helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support';\nimport { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n};\nexport const createAudioBufferConstructor = (audioBufferStore, cacheTestResult, createNotSupportedError, nativeAudioBufferConstructor, nativeOfflineAudioContextConstructor, testNativeAudioBufferConstructorSupport, wrapAudioBufferCopyChannelMethods, wrapAudioBufferCopyChannelMethodsOutOfBounds) => {\n let nativeOfflineAudioContext = null;\n return class AudioBuffer {\n constructor(options) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n if (nativeOfflineAudioContext === null) {\n nativeOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n }\n /*\n * Bug #99: Firefox does not throw a NotSupportedError when the numberOfChannels is zero. But it only does it when using the\n * factory function. But since Firefox also supports the constructor everything should be fine.\n */\n const audioBuffer = nativeAudioBufferConstructor !== null &&\n cacheTestResult(testNativeAudioBufferConstructorSupport, testNativeAudioBufferConstructorSupport)\n ? new nativeAudioBufferConstructor({ length, numberOfChannels, sampleRate })\n : nativeOfflineAudioContext.createBuffer(numberOfChannels, length, sampleRate);\n // Bug #99: Safari does not throw an error when the numberOfChannels is zero.\n if (audioBuffer.numberOfChannels === 0) {\n throw createNotSupportedError();\n }\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n }\n else if (!cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () => testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer))) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n audioBufferStore.add(audioBuffer);\n /*\n * This does violate all good pratices but it is necessary to allow this AudioBuffer to be used with native\n * (Offline)AudioContexts.\n */\n return audioBuffer;\n }\n static [Symbol.hasInstance](instance) {\n return ((instance !== null && typeof instance === 'object' && Object.getPrototypeOf(instance) === AudioBuffer.prototype) ||\n audioBufferStore.has(instance));\n }\n };\n};\n//# sourceMappingURL=audio-buffer-constructor.js.map","export const MOST_NEGATIVE_SINGLE_FLOAT = -3.4028234663852886e38;\nexport const MOST_POSITIVE_SINGLE_FLOAT = -MOST_NEGATIVE_SINGLE_FLOAT;\n//# sourceMappingURL=constants.js.map","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nexport const isActiveAudioNode = (audioNode) => ACTIVE_AUDIO_NODE_STORE.has(audioNode);\n//# sourceMappingURL=is-active-audio-node.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nconst DEFAULT_OPTIONS = {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n // Bug #149: Safari does not yet support the detune AudioParam.\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n};\nexport const createAudioBufferSourceNodeConstructor = (audioNodeConstructor, createAudioBufferSourceNodeRenderer, createAudioParam, createInvalidStateError, createNativeAudioBufferSourceNode, getNativeContext, isNativeOfflineAudioContext, wrapEventListener) => {\n return class AudioBufferSourceNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const audioBufferSourceNodeRenderer = ((isOffline ? createAudioBufferSourceNodeRenderer() : null));\n super(context, false, nativeAudioBufferSourceNode, audioBufferSourceNodeRenderer);\n this._audioBufferSourceNodeRenderer = audioBufferSourceNodeRenderer;\n this._isBufferNullified = false;\n this._isBufferSet = mergedOptions.buffer !== null;\n this._nativeAudioBufferSourceNode = nativeAudioBufferSourceNode;\n this._onended = null;\n // Bug #73: Safari does not export the correct values for maxValue and minValue.\n this._playbackRate = createAudioParam(this, isOffline, nativeAudioBufferSourceNode.playbackRate, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n }\n get buffer() {\n if (this._isBufferNullified) {\n return null;\n }\n return this._nativeAudioBufferSourceNode.buffer;\n }\n set buffer(value) {\n this._nativeAudioBufferSourceNode.buffer = value;\n // Bug #72: Only Chrome, Edge & Opera do not allow to reassign the buffer yet.\n if (value !== null) {\n if (this._isBufferSet) {\n throw createInvalidStateError();\n }\n this._isBufferSet = true;\n }\n }\n get loop() {\n return this._nativeAudioBufferSourceNode.loop;\n }\n set loop(value) {\n this._nativeAudioBufferSourceNode.loop = value;\n }\n get loopEnd() {\n return this._nativeAudioBufferSourceNode.loopEnd;\n }\n set loopEnd(value) {\n this._nativeAudioBufferSourceNode.loopEnd = value;\n }\n get loopStart() {\n return this._nativeAudioBufferSourceNode.loopStart;\n }\n set loopStart(value) {\n this._nativeAudioBufferSourceNode.loopStart = value;\n }\n get onended() {\n return this._onended;\n }\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n this._nativeAudioBufferSourceNode.onended = wrappedListener;\n const nativeOnEnded = this._nativeAudioBufferSourceNode.onended;\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n get playbackRate() {\n return this._playbackRate;\n }\n start(when = 0, offset = 0, duration) {\n this._nativeAudioBufferSourceNode.start(when, offset, duration);\n if (this._audioBufferSourceNodeRenderer !== null) {\n this._audioBufferSourceNodeRenderer.start = duration === undefined ? [when, offset] : [when, offset, duration];\n }\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n const resetInternalStateToPassive = () => {\n this._nativeAudioBufferSourceNode.removeEventListener('ended', resetInternalStateToPassive);\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n this._nativeAudioBufferSourceNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n stop(when = 0) {\n this._nativeAudioBufferSourceNode.stop(when);\n if (this._audioBufferSourceNodeRenderer !== null) {\n this._audioBufferSourceNodeRenderer.stop = when;\n }\n }\n };\n};\n//# sourceMappingURL=audio-buffer-source-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createAudioBufferSourceNodeRendererFactory = (connectAudioParam, createNativeAudioBufferSourceNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeAudioBufferSourceNodes = new WeakMap();\n let start = null;\n let stop = null;\n const createAudioBufferSourceNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeAudioBufferSourceNode = getNativeAudioNode(proxy);\n /*\n * If the initially used nativeAudioBufferSourceNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeAudioBufferSourceNodeIsOwnedByContext = isOwnedByContext(nativeAudioBufferSourceNode, nativeOfflineAudioContext);\n if (!nativeAudioBufferSourceNodeIsOwnedByContext) {\n const options = {\n buffer: nativeAudioBufferSourceNode.buffer,\n channelCount: nativeAudioBufferSourceNode.channelCount,\n channelCountMode: nativeAudioBufferSourceNode.channelCountMode,\n channelInterpretation: nativeAudioBufferSourceNode.channelInterpretation,\n // Bug #149: Safari does not yet support the detune AudioParam.\n loop: nativeAudioBufferSourceNode.loop,\n loopEnd: nativeAudioBufferSourceNode.loopEnd,\n loopStart: nativeAudioBufferSourceNode.loopStart,\n playbackRate: nativeAudioBufferSourceNode.playbackRate.value\n };\n nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, options);\n if (start !== null) {\n nativeAudioBufferSourceNode.start(...start);\n }\n if (stop !== null) {\n nativeAudioBufferSourceNode.stop(stop);\n }\n }\n renderedNativeAudioBufferSourceNodes.set(nativeOfflineAudioContext, nativeAudioBufferSourceNode);\n if (!nativeAudioBufferSourceNodeIsOwnedByContext) {\n // Bug #149: Safari does not yet support the detune AudioParam.\n await renderAutomation(nativeOfflineAudioContext, proxy.playbackRate, nativeAudioBufferSourceNode.playbackRate);\n }\n else {\n // Bug #149: Safari does not yet support the detune AudioParam.\n await connectAudioParam(nativeOfflineAudioContext, proxy.playbackRate, nativeAudioBufferSourceNode.playbackRate);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioBufferSourceNode);\n return nativeAudioBufferSourceNode;\n };\n return {\n set start(value) {\n start = value;\n },\n set stop(value) {\n stop = value;\n },\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeAudioBufferSourceNode = renderedNativeAudioBufferSourceNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAudioBufferSourceNode !== undefined) {\n return Promise.resolve(renderedNativeAudioBufferSourceNode);\n }\n return createAudioBufferSourceNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=audio-buffer-source-node-renderer-factory.js.map","export const isAudioBufferSourceNode = (audioNode) => {\n return 'playbackRate' in audioNode;\n};\n//# sourceMappingURL=audio-buffer-source-node.js.map","export const isBiquadFilterNode = (audioNode) => {\n return 'frequency' in audioNode && 'gain' in audioNode;\n};\n//# sourceMappingURL=biquad-filter-node.js.map","export const isConstantSourceNode = (audioNode) => {\n return 'offset' in audioNode;\n};\n//# sourceMappingURL=constant-source-node.js.map","export const isGainNode = (audioNode) => {\n return !('frequency' in audioNode) && 'gain' in audioNode;\n};\n//# sourceMappingURL=gain-node.js.map","export const isOscillatorNode = (audioNode) => {\n return 'detune' in audioNode && 'frequency' in audioNode;\n};\n//# sourceMappingURL=oscillator-node.js.map","export const isStereoPannerNode = (audioNode) => {\n return 'pan' in audioNode;\n};\n//# sourceMappingURL=stereo-panner-node.js.map","import { AUDIO_NODE_CONNECTIONS_STORE } from '../globals';\nimport { getValueForKey } from './get-value-for-key';\nexport const getAudioNodeConnections = (audioNode) => {\n return getValueForKey(AUDIO_NODE_CONNECTIONS_STORE, audioNode);\n};\n//# sourceMappingURL=get-audio-node-connections.js.map","import { AUDIO_PARAM_CONNECTIONS_STORE } from '../globals';\nimport { getValueForKey } from './get-value-for-key';\nexport const getAudioParamConnections = (audioParam) => {\n return getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE, audioParam);\n};\n//# sourceMappingURL=get-audio-param-connections.js.map","import { isAudioBufferSourceNode } from '../guards/audio-buffer-source-node';\nimport { isAudioWorkletNode } from '../guards/audio-worklet-node';\nimport { isBiquadFilterNode } from '../guards/biquad-filter-node';\nimport { isConstantSourceNode } from '../guards/constant-source-node';\nimport { isGainNode } from '../guards/gain-node';\nimport { isOscillatorNode } from '../guards/oscillator-node';\nimport { isStereoPannerNode } from '../guards/stereo-panner-node';\nimport { getAudioNodeConnections } from './get-audio-node-connections';\nimport { getAudioParamConnections } from './get-audio-param-connections';\nimport { isActiveAudioNode } from './is-active-audio-node';\nimport { setInternalStateToPassive } from './set-internal-state-to-passive';\nexport const deactivateActiveAudioNodeInputConnections = (audioNode, trace) => {\n const { activeInputs } = getAudioNodeConnections(audioNode);\n activeInputs.forEach((connections) => connections.forEach(([source]) => {\n if (!trace.includes(audioNode)) {\n deactivateActiveAudioNodeInputConnections(source, [...trace, audioNode]);\n }\n }));\n const audioParams = isAudioBufferSourceNode(audioNode)\n ? [\n // Bug #149: Safari does not yet support the detune AudioParam.\n audioNode.playbackRate\n ]\n : isAudioWorkletNode(audioNode)\n ? Array.from(audioNode.parameters.values())\n : isBiquadFilterNode(audioNode)\n ? [audioNode.Q, audioNode.detune, audioNode.frequency, audioNode.gain]\n : isConstantSourceNode(audioNode)\n ? [audioNode.offset]\n : isGainNode(audioNode)\n ? [audioNode.gain]\n : isOscillatorNode(audioNode)\n ? [audioNode.detune, audioNode.frequency]\n : isStereoPannerNode(audioNode)\n ? [audioNode.pan]\n : [];\n for (const audioParam of audioParams) {\n const audioParamConnections = getAudioParamConnections(audioParam);\n if (audioParamConnections !== undefined) {\n audioParamConnections.activeInputs.forEach(([source]) => deactivateActiveAudioNodeInputConnections(source, trace));\n }\n }\n if (isActiveAudioNode(audioNode)) {\n setInternalStateToPassive(audioNode);\n }\n};\n//# sourceMappingURL=deactivate-active-audio-node-input-connections.js.map","import { deactivateActiveAudioNodeInputConnections } from './deactivate-active-audio-node-input-connections';\nexport const deactivateAudioGraph = (context) => {\n deactivateActiveAudioNodeInputConnections(context.destination, []);\n};\n//# sourceMappingURL=deactivate-audio-graph.js.map","export const isValidLatencyHint = (latencyHint) => {\n return (latencyHint === undefined ||\n typeof latencyHint === 'number' ||\n (typeof latencyHint === 'string' && (latencyHint === 'balanced' || latencyHint === 'interactive' || latencyHint === 'playback')));\n};\n//# sourceMappingURL=is-valid-latency-hint.js.map","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { isValidLatencyHint } from '../helpers/is-valid-latency-hint';\nexport const createAudioContextConstructor = (baseAudioContextConstructor, createInvalidStateError, createNotSupportedError, createUnknownError, mediaElementAudioSourceNodeConstructor, mediaStreamAudioDestinationNodeConstructor, mediaStreamAudioSourceNodeConstructor, mediaStreamTrackAudioSourceNodeConstructor, nativeAudioContextConstructor) => {\n return class AudioContext extends baseAudioContextConstructor {\n constructor(options = {}) {\n if (nativeAudioContextConstructor === null) {\n throw new Error('Missing the native AudioContext constructor.');\n }\n let nativeAudioContext;\n try {\n nativeAudioContext = new nativeAudioContextConstructor(options);\n }\n catch (err) {\n // Bug #192 Safari does throw a SyntaxError if the sampleRate is not supported.\n if (err.code === 12 && err.message === 'sampleRate is not in range') {\n throw createNotSupportedError();\n }\n throw err;\n }\n // Bug #131 Safari returns null when there are four other AudioContexts running already.\n if (nativeAudioContext === null) {\n throw createUnknownError();\n }\n // Bug #51 Only Chrome, Edge and Opera throw an error if the given latencyHint is invalid.\n if (!isValidLatencyHint(options.latencyHint)) {\n throw new TypeError(`The provided value '${options.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);\n }\n // Bug #150 Safari does not support setting the sampleRate.\n if (options.sampleRate !== undefined && nativeAudioContext.sampleRate !== options.sampleRate) {\n throw createNotSupportedError();\n }\n super(nativeAudioContext, 2);\n const { latencyHint } = options;\n const { sampleRate } = nativeAudioContext;\n // @todo The values for 'balanced', 'interactive' and 'playback' are just copied from Chrome's implementation.\n this._baseLatency =\n typeof nativeAudioContext.baseLatency === 'number'\n ? nativeAudioContext.baseLatency\n : latencyHint === 'balanced'\n ? 512 / sampleRate\n : latencyHint === 'interactive' || latencyHint === undefined\n ? 256 / sampleRate\n : latencyHint === 'playback'\n ? 1024 / sampleRate\n : /*\n * @todo The min (256) and max (16384) values are taken from the allowed bufferSize values of a\n * ScriptProcessorNode.\n */\n (Math.max(2, Math.min(128, Math.round((latencyHint * sampleRate) / 128))) * 128) / sampleRate;\n this._nativeAudioContext = nativeAudioContext;\n // Bug #188: Safari will set the context's state to 'interrupted' in case the user switches tabs.\n if (nativeAudioContextConstructor.name === 'webkitAudioContext') {\n this._nativeGainNode = nativeAudioContext.createGain();\n this._nativeOscillatorNode = nativeAudioContext.createOscillator();\n this._nativeGainNode.gain.value = 1e-37;\n this._nativeOscillatorNode.connect(this._nativeGainNode).connect(nativeAudioContext.destination);\n this._nativeOscillatorNode.start();\n }\n else {\n this._nativeGainNode = null;\n this._nativeOscillatorNode = null;\n }\n this._state = null;\n /*\n * Bug #34: Chrome, Edge and Opera pretend to be running right away, but fire an onstatechange event when the state actually\n * changes to 'running'.\n */\n if (nativeAudioContext.state === 'running') {\n this._state = 'suspended';\n const revokeState = () => {\n if (this._state === 'suspended') {\n this._state = null;\n }\n nativeAudioContext.removeEventListener('statechange', revokeState);\n };\n nativeAudioContext.addEventListener('statechange', revokeState);\n }\n }\n get baseLatency() {\n return this._baseLatency;\n }\n get state() {\n return this._state !== null ? this._state : this._nativeAudioContext.state;\n }\n close() {\n // Bug #35: Firefox does not throw an error if the AudioContext was closed before.\n if (this.state === 'closed') {\n return this._nativeAudioContext.close().then(() => {\n throw createInvalidStateError();\n });\n }\n // Bug #34: If the state was set to suspended before it should be revoked now.\n if (this._state === 'suspended') {\n this._state = null;\n }\n return this._nativeAudioContext.close().then(() => {\n if (this._nativeGainNode !== null && this._nativeOscillatorNode !== null) {\n this._nativeOscillatorNode.stop();\n this._nativeGainNode.disconnect();\n this._nativeOscillatorNode.disconnect();\n }\n deactivateAudioGraph(this);\n });\n }\n createMediaElementSource(mediaElement) {\n return new mediaElementAudioSourceNodeConstructor(this, { mediaElement });\n }\n createMediaStreamDestination() {\n return new mediaStreamAudioDestinationNodeConstructor(this);\n }\n createMediaStreamSource(mediaStream) {\n return new mediaStreamAudioSourceNodeConstructor(this, { mediaStream });\n }\n createMediaStreamTrackSource(mediaStreamTrack) {\n return new mediaStreamTrackAudioSourceNodeConstructor(this, { mediaStreamTrack });\n }\n resume() {\n if (this._state === 'suspended') {\n return new Promise((resolve, reject) => {\n const resolvePromise = () => {\n this._nativeAudioContext.removeEventListener('statechange', resolvePromise);\n if (this._nativeAudioContext.state === 'running') {\n resolve();\n }\n else {\n this.resume().then(resolve, reject);\n }\n };\n this._nativeAudioContext.addEventListener('statechange', resolvePromise);\n });\n }\n return this._nativeAudioContext.resume().catch((err) => {\n // Bug #55: Chrome, Edge and Opera do throw an InvalidAccessError instead of an InvalidStateError.\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined || err.code === 15) {\n throw createInvalidStateError();\n }\n throw err;\n });\n }\n suspend() {\n return this._nativeAudioContext.suspend().catch((err) => {\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined) {\n throw createInvalidStateError();\n }\n throw err;\n });\n }\n };\n};\n//# sourceMappingURL=audio-context-constructor.js.map","export const createAudioDestinationNodeConstructor = (audioNodeConstructor, createAudioDestinationNodeRenderer, createIndexSizeError, createInvalidStateError, createNativeAudioDestinationNode, getNativeContext, isNativeOfflineAudioContext, renderInputsOfAudioNode) => {\n return class AudioDestinationNode extends audioNodeConstructor {\n constructor(context, channelCount) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const nativeAudioDestinationNode = createNativeAudioDestinationNode(nativeContext, channelCount, isOffline);\n const audioDestinationNodeRenderer = ((isOffline ? createAudioDestinationNodeRenderer(renderInputsOfAudioNode) : null));\n super(context, false, nativeAudioDestinationNode, audioDestinationNodeRenderer);\n this._isNodeOfNativeOfflineAudioContext = isOffline;\n this._nativeAudioDestinationNode = nativeAudioDestinationNode;\n }\n get channelCount() {\n return this._nativeAudioDestinationNode.channelCount;\n }\n set channelCount(value) {\n // Bug #52: Chrome, Edge, Opera & Safari do not throw an exception at all.\n // Bug #54: Firefox does throw an IndexSizeError.\n if (this._isNodeOfNativeOfflineAudioContext) {\n throw createInvalidStateError();\n }\n // Bug #47: The AudioDestinationNode in Safari does not initialize the maxChannelCount property correctly.\n if (value > this._nativeAudioDestinationNode.maxChannelCount) {\n throw createIndexSizeError();\n }\n this._nativeAudioDestinationNode.channelCount = value;\n }\n get channelCountMode() {\n return this._nativeAudioDestinationNode.channelCountMode;\n }\n set channelCountMode(value) {\n // Bug #53: No browser does throw an exception yet.\n if (this._isNodeOfNativeOfflineAudioContext) {\n throw createInvalidStateError();\n }\n this._nativeAudioDestinationNode.channelCountMode = value;\n }\n get maxChannelCount() {\n return this._nativeAudioDestinationNode.maxChannelCount;\n }\n };\n};\n//# sourceMappingURL=audio-destination-node-constructor.js.map","export const createAudioDestinationNodeRenderer = (renderInputsOfAudioNode) => {\n const renderedNativeAudioDestinationNodes = new WeakMap();\n const createAudioDestinationNode = async (proxy, nativeOfflineAudioContext) => {\n const nativeAudioDestinationNode = nativeOfflineAudioContext.destination;\n renderedNativeAudioDestinationNodes.set(nativeOfflineAudioContext, nativeAudioDestinationNode);\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioDestinationNode);\n return nativeAudioDestinationNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeAudioDestinationNode = renderedNativeAudioDestinationNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAudioDestinationNode !== undefined) {\n return Promise.resolve(renderedNativeAudioDestinationNode);\n }\n return createAudioDestinationNode(proxy, nativeOfflineAudioContext);\n }\n };\n};\n//# sourceMappingURL=audio-destination-node-renderer-factory.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nexport const createAudioListenerFactory = (createAudioParam, createNativeChannelMergerNode, createNativeConstantSourceNode, createNativeScriptProcessorNode, createNotSupportedError, getFirstSample, isNativeOfflineAudioContext, overwriteAccessors) => {\n return (context, nativeContext) => {\n const nativeListener = nativeContext.listener;\n // Bug #117: Only Chrome, Edge & Opera support the new interface already.\n const createFakeAudioParams = () => {\n const buffer = new Float32Array(1);\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 9\n });\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n let isScriptProcessorNodeCreated = false;\n let lastOrientation = [0, 0, -1, 0, 1, 0];\n let lastPosition = [0, 0, 0];\n const createScriptProcessorNode = () => {\n if (isScriptProcessorNodeCreated) {\n return;\n }\n isScriptProcessorNodeCreated = true;\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, 256, 9, 0);\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer }) => {\n const orientation = [\n getFirstSample(inputBuffer, buffer, 0),\n getFirstSample(inputBuffer, buffer, 1),\n getFirstSample(inputBuffer, buffer, 2),\n getFirstSample(inputBuffer, buffer, 3),\n getFirstSample(inputBuffer, buffer, 4),\n getFirstSample(inputBuffer, buffer, 5)\n ];\n if (orientation.some((value, index) => value !== lastOrientation[index])) {\n nativeListener.setOrientation(...orientation); // tslint:disable-line:deprecation\n lastOrientation = orientation;\n }\n const positon = [\n getFirstSample(inputBuffer, buffer, 6),\n getFirstSample(inputBuffer, buffer, 7),\n getFirstSample(inputBuffer, buffer, 8)\n ];\n if (positon.some((value, index) => value !== lastPosition[index])) {\n nativeListener.setPosition(...positon); // tslint:disable-line:deprecation\n lastPosition = positon;\n }\n };\n channelMergerNode.connect(scriptProcessorNode);\n };\n const createSetOrientation = (index) => (value) => {\n if (value !== lastOrientation[index]) {\n lastOrientation[index] = value;\n nativeListener.setOrientation(...lastOrientation); // tslint:disable-line:deprecation\n }\n };\n const createSetPosition = (index) => (value) => {\n if (value !== lastPosition[index]) {\n lastPosition[index] = value;\n nativeListener.setPosition(...lastPosition); // tslint:disable-line:deprecation\n }\n };\n const createFakeAudioParam = (input, initialValue, setValue) => {\n const constantSourceNode = createNativeConstantSourceNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: initialValue\n });\n constantSourceNode.connect(channelMergerNode, 0, input);\n // @todo This should be stopped when the context is closed.\n constantSourceNode.start();\n Object.defineProperty(constantSourceNode.offset, 'defaultValue', {\n get() {\n return initialValue;\n }\n });\n /*\n * Bug #62 & #74: Safari does not support ConstantSourceNodes and does not export the correct values for maxValue and\n * minValue for GainNodes.\n */\n const audioParam = createAudioParam({ context }, isOffline, constantSourceNode.offset, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n overwriteAccessors(audioParam, 'value', (get) => () => get.call(audioParam), (set) => (value) => {\n try {\n set.call(audioParam, value);\n }\n catch (err) {\n if (err.code !== 9) {\n throw err;\n }\n }\n createScriptProcessorNode();\n if (isOffline) {\n // Bug #117: Using setOrientation() and setPosition() doesn't work with an OfflineAudioContext.\n setValue(value);\n }\n });\n audioParam.cancelAndHoldAtTime = ((cancelAndHoldAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = cancelAndHoldAtTime.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.cancelAndHoldAtTime);\n audioParam.cancelScheduledValues = ((cancelScheduledValues) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = cancelScheduledValues.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.cancelScheduledValues);\n audioParam.exponentialRampToValueAtTime = ((exponentialRampToValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = exponentialRampToValueAtTime.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.exponentialRampToValueAtTime);\n audioParam.linearRampToValueAtTime = ((linearRampToValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = linearRampToValueAtTime.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.linearRampToValueAtTime);\n audioParam.setTargetAtTime = ((setTargetAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = setTargetAtTime.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.setTargetAtTime);\n audioParam.setValueAtTime = ((setValueAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = setValueAtTime.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.setValueAtTime);\n audioParam.setValueCurveAtTime = ((setValueCurveAtTime) => {\n if (isOffline) {\n return () => {\n throw createNotSupportedError();\n };\n }\n return (...args) => {\n const value = setValueCurveAtTime.apply(audioParam, args);\n createScriptProcessorNode();\n return value;\n };\n })(audioParam.setValueCurveAtTime);\n return audioParam;\n };\n return {\n forwardX: createFakeAudioParam(0, 0, createSetOrientation(0)),\n forwardY: createFakeAudioParam(1, 0, createSetOrientation(1)),\n forwardZ: createFakeAudioParam(2, -1, createSetOrientation(2)),\n positionX: createFakeAudioParam(6, 0, createSetPosition(0)),\n positionY: createFakeAudioParam(7, 0, createSetPosition(1)),\n positionZ: createFakeAudioParam(8, 0, createSetPosition(2)),\n upX: createFakeAudioParam(3, 0, createSetOrientation(3)),\n upY: createFakeAudioParam(4, 1, createSetOrientation(4)),\n upZ: createFakeAudioParam(5, 0, createSetOrientation(5))\n };\n };\n const { forwardX, forwardY, forwardZ, positionX, positionY, positionZ, upX, upY, upZ } = nativeListener.forwardX === undefined ? createFakeAudioParams() : nativeListener;\n return {\n get forwardX() {\n return forwardX;\n },\n get forwardY() {\n return forwardY;\n },\n get forwardZ() {\n return forwardZ;\n },\n get positionX() {\n return positionX;\n },\n get positionY() {\n return positionY;\n },\n get positionZ() {\n return positionZ;\n },\n get upX() {\n return upX;\n },\n get upY() {\n return upY;\n },\n get upZ() {\n return upZ;\n }\n };\n };\n};\n//# sourceMappingURL=audio-listener-factory.js.map","export const isAudioNode = (audioNodeOrAudioParam) => {\n return 'context' in audioNodeOrAudioParam;\n};\n//# sourceMappingURL=audio-node.js.map","import { isAudioNode } from './audio-node';\nexport const isAudioNodeOutputConnection = (outputConnection) => {\n return isAudioNode(outputConnection[0]);\n};\n//# sourceMappingURL=audio-node-output-connection.js.map","export const insertElementInSet = (set, element, predicate, ignoreDuplicates) => {\n for (const lmnt of set) {\n if (predicate(lmnt)) {\n if (ignoreDuplicates) {\n return false;\n }\n throw Error('The set contains at least one similar element.');\n }\n }\n set.add(element);\n return true;\n};\n//# sourceMappingURL=insert-element-in-set.js.map","import { insertElementInSet } from './insert-element-in-set';\nexport const addActiveInputConnectionToAudioParam = (activeInputs, source, [output, eventListener], ignoreDuplicates) => {\n insertElementInSet(activeInputs, [source, output, eventListener], (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output, ignoreDuplicates);\n};\n//# sourceMappingURL=add-active-input-connection-to-audio-param.js.map","import { insertElementInSet } from './insert-element-in-set';\nexport const addPassiveInputConnectionToAudioParam = (passiveInputs, [source, output, eventListener], ignoreDuplicates) => {\n const passiveInputConnections = passiveInputs.get(source);\n if (passiveInputConnections === undefined) {\n passiveInputs.set(source, new Set([[output, eventListener]]));\n }\n else {\n insertElementInSet(passiveInputConnections, [output, eventListener], (passiveInputConnection) => passiveInputConnection[0] === output, ignoreDuplicates);\n }\n};\n//# sourceMappingURL=add-passive-input-connection-to-audio-param.js.map","export const isNativeAudioNodeFaker = (nativeAudioNodeOrNativeAudioNodeFaker) => {\n return 'inputs' in nativeAudioNodeOrNativeAudioNodeFaker;\n};\n//# sourceMappingURL=native-audio-node-faker.js.map","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nexport const connectNativeAudioNodeToNativeAudioNode = (nativeSourceAudioNode, nativeDestinationAudioNode, output, input) => {\n if (isNativeAudioNodeFaker(nativeDestinationAudioNode)) {\n const fakeNativeDestinationAudioNode = nativeDestinationAudioNode.inputs[input];\n nativeSourceAudioNode.connect(fakeNativeDestinationAudioNode, output, 0);\n return [fakeNativeDestinationAudioNode, output, 0];\n }\n nativeSourceAudioNode.connect(nativeDestinationAudioNode, output, input);\n return [nativeDestinationAudioNode, output, input];\n};\n//# sourceMappingURL=connect-native-audio-node-to-native-audio-node.js.map","export const deleteActiveInputConnection = (activeInputConnections, source, output) => {\n for (const activeInputConnection of activeInputConnections) {\n if (activeInputConnection[0] === source && activeInputConnection[1] === output) {\n activeInputConnections.delete(activeInputConnection);\n return activeInputConnection;\n }\n }\n return null;\n};\n//# sourceMappingURL=delete-active-input-connection.js.map","import { pickElementFromSet } from './pick-element-from-set';\nexport const deleteActiveInputConnectionToAudioParam = (activeInputs, source, output) => {\n return pickElementFromSet(activeInputs, (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output);\n};\n//# sourceMappingURL=delete-active-input-connection-to-audio-param.js.map","import { getEventListenersOfAudioNode } from './get-event-listeners-of-audio-node';\nexport const deleteEventListenerOfAudioNode = (audioNode, eventListener) => {\n const eventListeners = getEventListenersOfAudioNode(audioNode);\n if (!eventListeners.delete(eventListener)) {\n throw new Error('Missing the expected event listener.');\n }\n};\n//# sourceMappingURL=delete-event-listeners-of-audio-node.js.map","import { getValueForKey } from './get-value-for-key';\nimport { pickElementFromSet } from './pick-element-from-set';\nexport const deletePassiveInputConnectionToAudioParam = (passiveInputs, source, output) => {\n const passiveInputConnections = getValueForKey(passiveInputs, source);\n const matchingConnection = pickElementFromSet(passiveInputConnections, (passiveInputConnection) => passiveInputConnection[0] === output);\n if (passiveInputConnections.size === 0) {\n passiveInputs.delete(source);\n }\n return matchingConnection;\n};\n//# sourceMappingURL=delete-passive-input-connection-to-audio-param.js.map","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nexport const disconnectNativeAudioNodeFromNativeAudioNode = (nativeSourceAudioNode, nativeDestinationAudioNode, output, input) => {\n if (isNativeAudioNodeFaker(nativeDestinationAudioNode)) {\n nativeSourceAudioNode.disconnect(nativeDestinationAudioNode.inputs[input], output, 0);\n }\n else {\n nativeSourceAudioNode.disconnect(nativeDestinationAudioNode, output, input);\n }\n};\n//# sourceMappingURL=disconnect-native-audio-node-from-native-audio-node.js.map","import { AUDIO_NODE_STORE } from '../globals';\nimport { getValueForKey } from './get-value-for-key';\nexport const getNativeAudioNode = (audioNode) => {\n return getValueForKey(AUDIO_NODE_STORE, audioNode);\n};\n//# sourceMappingURL=get-native-audio-node.js.map","import { AUDIO_PARAM_STORE } from '../globals';\nimport { getValueForKey } from './get-value-for-key';\nexport const getNativeAudioParam = (audioParam) => {\n return getValueForKey(AUDIO_PARAM_STORE, audioParam);\n};\n//# sourceMappingURL=get-native-audio-param.js.map","import { CYCLE_COUNTERS } from '../globals';\nexport const isPartOfACycle = (audioNode) => {\n return CYCLE_COUNTERS.has(audioNode);\n};\n//# sourceMappingURL=is-part-of-a-cycle.js.map","import { ACTIVE_AUDIO_NODE_STORE } from '../globals';\nexport const isPassiveAudioNode = (audioNode) => {\n return !ACTIVE_AUDIO_NODE_STORE.has(audioNode);\n};\n//# sourceMappingURL=is-passive-audio-node.js.map","export const testAudioNodeDisconnectMethodSupport = (nativeAudioContext, nativeAudioWorkletNodeConstructor) => {\n return new Promise((resolve) => {\n /*\n * This bug existed in Safari up until v14.0.2. Since AudioWorklets were not supported in Safari until v14.1 the presence of the\n * constructor for an AudioWorkletNode can be used here to skip the test.\n */\n if (nativeAudioWorkletNodeConstructor !== null) {\n resolve(true);\n }\n else {\n const analyzer = nativeAudioContext.createScriptProcessor(256, 1, 1); // tslint:disable-line deprecation\n const dummy = nativeAudioContext.createGain();\n // Bug #95: Safari does not play one sample buffers.\n const ones = nativeAudioContext.createBuffer(1, 2, 44100);\n const channelData = ones.getChannelData(0);\n channelData[0] = 1;\n channelData[1] = 1;\n const source = nativeAudioContext.createBufferSource();\n source.buffer = ones;\n source.loop = true;\n source.connect(analyzer).connect(nativeAudioContext.destination);\n source.connect(dummy);\n source.disconnect(dummy);\n // tslint:disable-next-line:deprecation\n analyzer.onaudioprocess = (event) => {\n const chnnlDt = event.inputBuffer.getChannelData(0); // tslint:disable-line deprecation\n if (Array.prototype.some.call(chnnlDt, (sample) => sample === 1)) {\n resolve(true);\n }\n else {\n resolve(false);\n }\n source.stop();\n analyzer.onaudioprocess = null; // tslint:disable-line:deprecation\n source.disconnect(analyzer);\n analyzer.disconnect(nativeAudioContext.destination);\n };\n source.start();\n }\n });\n};\n//# sourceMappingURL=test-audio-node-disconnect-method-support.js.map","export const visitEachAudioNodeOnce = (cycles, visitor) => {\n const counts = new Map();\n for (const cycle of cycles) {\n for (const audioNode of cycle) {\n const count = counts.get(audioNode);\n counts.set(audioNode, count === undefined ? 1 : count + 1);\n }\n }\n counts.forEach((count, audioNode) => visitor(audioNode, count));\n};\n//# sourceMappingURL=visit-each-audio-node-once.js.map","export const isNativeAudioNode = (nativeAudioNodeOrAudioParam) => {\n return 'context' in nativeAudioNodeOrAudioParam;\n};\n//# sourceMappingURL=native-audio-node.js.map","import { isNativeAudioNode } from '../guards/native-audio-node';\nexport const wrapAudioNodeDisconnectMethod = (nativeAudioNode) => {\n const connections = new Map();\n nativeAudioNode.connect = ((connect) => {\n // tslint:disable-next-line:invalid-void no-inferrable-types\n return (destination, output = 0, input = 0) => {\n const returnValue = isNativeAudioNode(destination) ? connect(destination, output, input) : connect(destination, output);\n // Save the new connection only if the calls to connect above didn't throw an error.\n const connectionsToDestination = connections.get(destination);\n if (connectionsToDestination === undefined) {\n connections.set(destination, [{ input, output }]);\n }\n else {\n if (connectionsToDestination.every((connection) => connection.input !== input || connection.output !== output)) {\n connectionsToDestination.push({ input, output });\n }\n }\n return returnValue;\n };\n })(nativeAudioNode.connect.bind(nativeAudioNode));\n nativeAudioNode.disconnect = ((disconnect) => {\n return (destinationOrOutput, output, input) => {\n disconnect.apply(nativeAudioNode);\n if (destinationOrOutput === undefined) {\n connections.clear();\n }\n else if (typeof destinationOrOutput === 'number') {\n for (const [destination, connectionsToDestination] of connections) {\n const filteredConnections = connectionsToDestination.filter((connection) => connection.output !== destinationOrOutput);\n if (filteredConnections.length === 0) {\n connections.delete(destination);\n }\n else {\n connections.set(destination, filteredConnections);\n }\n }\n }\n else if (connections.has(destinationOrOutput)) {\n if (output === undefined) {\n connections.delete(destinationOrOutput);\n }\n else {\n const connectionsToDestination = connections.get(destinationOrOutput);\n if (connectionsToDestination !== undefined) {\n const filteredConnections = connectionsToDestination.filter((connection) => connection.output !== output && (connection.input !== input || input === undefined));\n if (filteredConnections.length === 0) {\n connections.delete(destinationOrOutput);\n }\n else {\n connections.set(destinationOrOutput, filteredConnections);\n }\n }\n }\n }\n for (const [destination, connectionsToDestination] of connections) {\n connectionsToDestination.forEach((connection) => {\n if (isNativeAudioNode(destination)) {\n nativeAudioNode.connect(destination, connection.output, connection.input);\n }\n else {\n nativeAudioNode.connect(destination, connection.output);\n }\n });\n }\n };\n })(nativeAudioNode.disconnect);\n};\n//# sourceMappingURL=wrap-audio-node-disconnect-method.js.map","import { AUDIO_NODE_STORE, EVENT_LISTENERS } from '../globals';\nimport { isAudioNode } from '../guards/audio-node';\nimport { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nimport { addActiveInputConnectionToAudioParam } from '../helpers/add-active-input-connection-to-audio-param';\nimport { addPassiveInputConnectionToAudioParam } from '../helpers/add-passive-input-connection-to-audio-param';\nimport { connectNativeAudioNodeToNativeAudioNode } from '../helpers/connect-native-audio-node-to-native-audio-node';\nimport { deleteActiveInputConnection } from '../helpers/delete-active-input-connection';\nimport { deleteActiveInputConnectionToAudioParam } from '../helpers/delete-active-input-connection-to-audio-param';\nimport { deleteEventListenerOfAudioNode } from '../helpers/delete-event-listeners-of-audio-node';\nimport { deletePassiveInputConnectionToAudioNode } from '../helpers/delete-passive-input-connection-to-audio-node';\nimport { deletePassiveInputConnectionToAudioParam } from '../helpers/delete-passive-input-connection-to-audio-param';\nimport { disconnectNativeAudioNodeFromNativeAudioNode } from '../helpers/disconnect-native-audio-node-from-native-audio-node';\nimport { getAudioNodeConnections } from '../helpers/get-audio-node-connections';\nimport { getAudioParamConnections } from '../helpers/get-audio-param-connections';\nimport { getEventListenersOfAudioNode } from '../helpers/get-event-listeners-of-audio-node';\nimport { getNativeAudioNode } from '../helpers/get-native-audio-node';\nimport { getNativeAudioParam } from '../helpers/get-native-audio-param';\nimport { insertElementInSet } from '../helpers/insert-element-in-set';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { isPartOfACycle } from '../helpers/is-part-of-a-cycle';\nimport { isPassiveAudioNode } from '../helpers/is-passive-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassiveWhenNecessary } from '../helpers/set-internal-state-to-passive-when-necessary';\nimport { testAudioNodeDisconnectMethodSupport } from '../helpers/test-audio-node-disconnect-method-support';\nimport { visitEachAudioNodeOnce } from '../helpers/visit-each-audio-node-once';\nimport { wrapAudioNodeDisconnectMethod } from '../helpers/wrap-audio-node-disconnect-method';\nconst addConnectionToAudioParamOfAudioContext = (source, destination, output, isOffline) => {\n const { activeInputs, passiveInputs } = getAudioParamConnections(destination);\n const { outputs } = getAudioNodeConnections(source);\n const eventListeners = getEventListenersOfAudioNode(source);\n const eventListener = (isActive) => {\n const nativeAudioNode = getNativeAudioNode(source);\n const nativeAudioParam = getNativeAudioParam(destination);\n if (isActive) {\n const partialConnection = deletePassiveInputConnectionToAudioParam(passiveInputs, source, output);\n addActiveInputConnectionToAudioParam(activeInputs, source, partialConnection, false);\n if (!isOffline && !isPartOfACycle(source)) {\n nativeAudioNode.connect(nativeAudioParam, output);\n }\n }\n else {\n const partialConnection = deleteActiveInputConnectionToAudioParam(activeInputs, source, output);\n addPassiveInputConnectionToAudioParam(passiveInputs, partialConnection, false);\n if (!isOffline && !isPartOfACycle(source)) {\n nativeAudioNode.disconnect(nativeAudioParam, output);\n }\n }\n };\n if (insertElementInSet(outputs, [destination, output], (outputConnection) => outputConnection[0] === destination && outputConnection[1] === output, true)) {\n eventListeners.add(eventListener);\n if (isActiveAudioNode(source)) {\n addActiveInputConnectionToAudioParam(activeInputs, source, [output, eventListener], true);\n }\n else {\n addPassiveInputConnectionToAudioParam(passiveInputs, [source, output, eventListener], true);\n }\n return true;\n }\n return false;\n};\nconst deleteInputConnectionOfAudioNode = (source, destination, output, input) => {\n const { activeInputs, passiveInputs } = getAudioNodeConnections(destination);\n const activeInputConnection = deleteActiveInputConnection(activeInputs[input], source, output);\n if (activeInputConnection === null) {\n const passiveInputConnection = deletePassiveInputConnectionToAudioNode(passiveInputs, source, output, input);\n return [passiveInputConnection[2], false];\n }\n return [activeInputConnection[2], true];\n};\nconst deleteInputConnectionOfAudioParam = (source, destination, output) => {\n const { activeInputs, passiveInputs } = getAudioParamConnections(destination);\n const activeInputConnection = deleteActiveInputConnection(activeInputs, source, output);\n if (activeInputConnection === null) {\n const passiveInputConnection = deletePassiveInputConnectionToAudioParam(passiveInputs, source, output);\n return [passiveInputConnection[1], false];\n }\n return [activeInputConnection[2], true];\n};\nconst deleteInputsOfAudioNode = (source, isOffline, destination, output, input) => {\n const [listener, isActive] = deleteInputConnectionOfAudioNode(source, destination, output, input);\n if (listener !== null) {\n deleteEventListenerOfAudioNode(source, listener);\n if (isActive && !isOffline && !isPartOfACycle(source)) {\n disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(source), getNativeAudioNode(destination), output, input);\n }\n }\n if (isActiveAudioNode(destination)) {\n const { activeInputs } = getAudioNodeConnections(destination);\n setInternalStateToPassiveWhenNecessary(destination, activeInputs);\n }\n};\nconst deleteInputsOfAudioParam = (source, isOffline, destination, output) => {\n const [listener, isActive] = deleteInputConnectionOfAudioParam(source, destination, output);\n if (listener !== null) {\n deleteEventListenerOfAudioNode(source, listener);\n if (isActive && !isOffline && !isPartOfACycle(source)) {\n getNativeAudioNode(source).disconnect(getNativeAudioParam(destination), output);\n }\n }\n};\nconst deleteAnyConnection = (source, isOffline) => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n const destinations = [];\n for (const outputConnection of audioNodeConnectionsOfSource.outputs) {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n }\n else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n destinations.push(outputConnection[0]);\n }\n audioNodeConnectionsOfSource.outputs.clear();\n return destinations;\n};\nconst deleteConnectionAtOutput = (source, isOffline, output) => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n const destinations = [];\n for (const outputConnection of audioNodeConnectionsOfSource.outputs) {\n if (outputConnection[1] === output) {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n }\n else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n destinations.push(outputConnection[0]);\n audioNodeConnectionsOfSource.outputs.delete(outputConnection);\n }\n }\n return destinations;\n};\nconst deleteConnectionToDestination = (source, isOffline, destination, output, input) => {\n const audioNodeConnectionsOfSource = getAudioNodeConnections(source);\n return Array.from(audioNodeConnectionsOfSource.outputs)\n .filter((outputConnection) => outputConnection[0] === destination &&\n (output === undefined || outputConnection[1] === output) &&\n (input === undefined || outputConnection[2] === input))\n .map((outputConnection) => {\n if (isAudioNodeOutputConnection(outputConnection)) {\n deleteInputsOfAudioNode(source, isOffline, ...outputConnection);\n }\n else {\n deleteInputsOfAudioParam(source, isOffline, ...outputConnection);\n }\n audioNodeConnectionsOfSource.outputs.delete(outputConnection);\n return outputConnection[0];\n });\n};\nexport const createAudioNodeConstructor = (addAudioNodeConnections, addConnectionToAudioNode, cacheTestResult, createIncrementCycleCounter, createIndexSizeError, createInvalidAccessError, createNotSupportedError, decrementCycleCounter, detectCycles, eventTargetConstructor, getNativeContext, isNativeAudioContext, isNativeAudioNode, isNativeAudioParam, isNativeOfflineAudioContext, nativeAudioWorkletNodeConstructor) => {\n return class AudioNode extends eventTargetConstructor {\n constructor(context, isActive, nativeAudioNode, audioNodeRenderer) {\n super(nativeAudioNode);\n this._context = context;\n this._nativeAudioNode = nativeAudioNode;\n const nativeContext = getNativeContext(context);\n // Bug #12: Safari does not support to disconnect a specific destination.\n if (isNativeAudioContext(nativeContext) &&\n true !==\n cacheTestResult(testAudioNodeDisconnectMethodSupport, () => {\n return testAudioNodeDisconnectMethodSupport(nativeContext, nativeAudioWorkletNodeConstructor);\n })) {\n wrapAudioNodeDisconnectMethod(nativeAudioNode);\n }\n AUDIO_NODE_STORE.set(this, nativeAudioNode);\n EVENT_LISTENERS.set(this, new Set());\n if (context.state !== 'closed' && isActive) {\n setInternalStateToActive(this);\n }\n addAudioNodeConnections(this, audioNodeRenderer, nativeAudioNode);\n }\n get channelCount() {\n return this._nativeAudioNode.channelCount;\n }\n set channelCount(value) {\n this._nativeAudioNode.channelCount = value;\n }\n get channelCountMode() {\n return this._nativeAudioNode.channelCountMode;\n }\n set channelCountMode(value) {\n this._nativeAudioNode.channelCountMode = value;\n }\n get channelInterpretation() {\n return this._nativeAudioNode.channelInterpretation;\n }\n set channelInterpretation(value) {\n this._nativeAudioNode.channelInterpretation = value;\n }\n get context() {\n return this._context;\n }\n get numberOfInputs() {\n return this._nativeAudioNode.numberOfInputs;\n }\n get numberOfOutputs() {\n return this._nativeAudioNode.numberOfOutputs;\n }\n // tslint:disable-next-line:invalid-void\n connect(destination, output = 0, input = 0) {\n // Bug #174: Safari does expose a wrong numberOfOutputs for MediaStreamAudioDestinationNodes.\n if (output < 0 || output >= this._nativeAudioNode.numberOfOutputs) {\n throw createIndexSizeError();\n }\n const nativeContext = getNativeContext(this._context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n if (isNativeAudioNode(destination) || isNativeAudioParam(destination)) {\n throw createInvalidAccessError();\n }\n if (isAudioNode(destination)) {\n const nativeDestinationAudioNode = getNativeAudioNode(destination);\n try {\n const connection = connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode, nativeDestinationAudioNode, output, input);\n const isPassive = isPassiveAudioNode(this);\n if (isOffline || isPassive) {\n this._nativeAudioNode.disconnect(...connection);\n }\n if (this.context.state !== 'closed' && !isPassive && isPassiveAudioNode(destination)) {\n setInternalStateToActive(destination);\n }\n }\n catch (err) {\n // Bug #41: Safari does not throw the correct exception so far.\n if (err.code === 12) {\n throw createInvalidAccessError();\n }\n throw err;\n }\n const isNewConnectionToAudioNode = addConnectionToAudioNode(this, destination, output, input, isOffline);\n // Bug #164: Only Firefox detects cycles so far.\n if (isNewConnectionToAudioNode) {\n const cycles = detectCycles([this], destination);\n visitEachAudioNodeOnce(cycles, createIncrementCycleCounter(isOffline));\n }\n return destination;\n }\n const nativeAudioParam = getNativeAudioParam(destination);\n /*\n * Bug #73, #147 & #153: Safari does not support to connect an input signal to the playbackRate AudioParam of an\n * AudioBufferSourceNode. This can't be easily detected and that's why the outdated name property is used here to identify\n * Safari. In addition to that the maxValue property is used to only detect the affected versions below v14.0.2.\n */\n if (nativeAudioParam.name === 'playbackRate' && nativeAudioParam.maxValue === 1024) {\n throw createNotSupportedError();\n }\n try {\n this._nativeAudioNode.connect(nativeAudioParam, output);\n if (isOffline || isPassiveAudioNode(this)) {\n this._nativeAudioNode.disconnect(nativeAudioParam, output);\n }\n }\n catch (err) {\n // Bug #58: Safari doesn't throw an InvalidAccessError yet.\n if (err.code === 12) {\n throw createInvalidAccessError();\n }\n throw err;\n }\n const isNewConnectionToAudioParam = addConnectionToAudioParamOfAudioContext(this, destination, output, isOffline);\n // Bug #164: Only Firefox detects cycles so far.\n if (isNewConnectionToAudioParam) {\n const cycles = detectCycles([this], destination);\n visitEachAudioNodeOnce(cycles, createIncrementCycleCounter(isOffline));\n }\n }\n disconnect(destinationOrOutput, output, input) {\n let destinations;\n const nativeContext = getNativeContext(this._context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n if (destinationOrOutput === undefined) {\n destinations = deleteAnyConnection(this, isOffline);\n }\n else if (typeof destinationOrOutput === 'number') {\n if (destinationOrOutput < 0 || destinationOrOutput >= this.numberOfOutputs) {\n throw createIndexSizeError();\n }\n destinations = deleteConnectionAtOutput(this, isOffline, destinationOrOutput);\n }\n else {\n if (output !== undefined && (output < 0 || output >= this.numberOfOutputs)) {\n throw createIndexSizeError();\n }\n if (isAudioNode(destinationOrOutput) && input !== undefined && (input < 0 || input >= destinationOrOutput.numberOfInputs)) {\n throw createIndexSizeError();\n }\n destinations = deleteConnectionToDestination(this, isOffline, destinationOrOutput, output, input);\n if (destinations.length === 0) {\n throw createInvalidAccessError();\n }\n }\n // Bug #164: Only Firefox detects cycles so far.\n for (const destination of destinations) {\n const cycles = detectCycles([this], destination);\n visitEachAudioNodeOnce(cycles, decrementCycleCounter);\n }\n }\n };\n};\n//# sourceMappingURL=audio-node-constructor.js.map","import { AutomationEventList } from 'automation-events';\nexport const createAudioParamFactory = (addAudioParamConnections, audioParamAudioNodeStore, audioParamStore, createAudioParamRenderer, createCancelAndHoldAutomationEvent, createCancelScheduledValuesAutomationEvent, createExponentialRampToValueAutomationEvent, createLinearRampToValueAutomationEvent, createSetTargetAutomationEvent, createSetValueAutomationEvent, createSetValueCurveAutomationEvent, nativeAudioContextConstructor, setValueAtTimeUntilPossible) => {\n return (audioNode, isAudioParamOfOfflineAudioContext, nativeAudioParam, maxValue = null, minValue = null) => {\n const automationEventList = new AutomationEventList(nativeAudioParam.defaultValue);\n const audioParamRenderer = isAudioParamOfOfflineAudioContext ? createAudioParamRenderer(automationEventList) : null;\n const audioParam = {\n get defaultValue() {\n return nativeAudioParam.defaultValue;\n },\n get maxValue() {\n return maxValue === null ? nativeAudioParam.maxValue : maxValue;\n },\n get minValue() {\n return minValue === null ? nativeAudioParam.minValue : minValue;\n },\n get value() {\n return nativeAudioParam.value;\n },\n set value(value) {\n nativeAudioParam.value = value;\n // Bug #98: Firefox & Safari do not yet treat the value setter like a call to setValueAtTime().\n audioParam.setValueAtTime(value, audioNode.context.currentTime);\n },\n cancelAndHoldAtTime(cancelTime) {\n // Bug #28: Firefox & Safari do not yet implement cancelAndHoldAtTime().\n if (typeof nativeAudioParam.cancelAndHoldAtTime === 'function') {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createCancelAndHoldAutomationEvent(cancelTime));\n nativeAudioParam.cancelAndHoldAtTime(cancelTime);\n }\n else {\n const previousLastEvent = Array.from(automationEventList).pop();\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createCancelAndHoldAutomationEvent(cancelTime));\n const currentLastEvent = Array.from(automationEventList).pop();\n nativeAudioParam.cancelScheduledValues(cancelTime);\n if (previousLastEvent !== currentLastEvent && currentLastEvent !== undefined) {\n if (currentLastEvent.type === 'exponentialRampToValue') {\n nativeAudioParam.exponentialRampToValueAtTime(currentLastEvent.value, currentLastEvent.endTime);\n }\n else if (currentLastEvent.type === 'linearRampToValue') {\n nativeAudioParam.linearRampToValueAtTime(currentLastEvent.value, currentLastEvent.endTime);\n }\n else if (currentLastEvent.type === 'setValue') {\n nativeAudioParam.setValueAtTime(currentLastEvent.value, currentLastEvent.startTime);\n }\n else if (currentLastEvent.type === 'setValueCurve') {\n nativeAudioParam.setValueCurveAtTime(currentLastEvent.values, currentLastEvent.startTime, currentLastEvent.duration);\n }\n }\n }\n return audioParam;\n },\n cancelScheduledValues(cancelTime) {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createCancelScheduledValuesAutomationEvent(cancelTime));\n nativeAudioParam.cancelScheduledValues(cancelTime);\n return audioParam;\n },\n exponentialRampToValueAtTime(value, endTime) {\n // Bug #45: Safari does not throw an error yet.\n if (value === 0) {\n throw new RangeError();\n }\n // Bug #187: Safari does not throw an error yet.\n if (!Number.isFinite(endTime) || endTime < 0) {\n throw new RangeError();\n }\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createExponentialRampToValueAutomationEvent(value, endTime));\n nativeAudioParam.exponentialRampToValueAtTime(value, endTime);\n return audioParam;\n },\n linearRampToValueAtTime(value, endTime) {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createLinearRampToValueAutomationEvent(value, endTime));\n nativeAudioParam.linearRampToValueAtTime(value, endTime);\n return audioParam;\n },\n setTargetAtTime(target, startTime, timeConstant) {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createSetTargetAutomationEvent(target, startTime, timeConstant));\n nativeAudioParam.setTargetAtTime(target, startTime, timeConstant);\n return audioParam;\n },\n setValueAtTime(value, startTime) {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createSetValueAutomationEvent(value, startTime));\n nativeAudioParam.setValueAtTime(value, startTime);\n return audioParam;\n },\n setValueCurveAtTime(values, startTime, duration) {\n // Bug 183: Safari only accepts a Float32Array.\n const convertedValues = values instanceof Float32Array ? values : new Float32Array(values);\n /*\n * Bug #152: Safari does not correctly interpolate the values of the curve.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the\n * existence of the webkitAudioContext is used as a workaround here.\n */\n if (nativeAudioContextConstructor !== null && nativeAudioContextConstructor.name === 'webkitAudioContext') {\n const endTime = startTime + duration;\n const sampleRate = audioNode.context.sampleRate;\n const firstSample = Math.ceil(startTime * sampleRate);\n const lastSample = Math.floor(endTime * sampleRate);\n const numberOfInterpolatedValues = lastSample - firstSample;\n const interpolatedValues = new Float32Array(numberOfInterpolatedValues);\n for (let i = 0; i < numberOfInterpolatedValues; i += 1) {\n const theoreticIndex = ((convertedValues.length - 1) / duration) * ((firstSample + i) / sampleRate - startTime);\n const lowerIndex = Math.floor(theoreticIndex);\n const upperIndex = Math.ceil(theoreticIndex);\n interpolatedValues[i] =\n lowerIndex === upperIndex\n ? convertedValues[lowerIndex]\n : (1 - (theoreticIndex - lowerIndex)) * convertedValues[lowerIndex] +\n (1 - (upperIndex - theoreticIndex)) * convertedValues[upperIndex];\n }\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createSetValueCurveAutomationEvent(interpolatedValues, startTime, duration));\n nativeAudioParam.setValueCurveAtTime(interpolatedValues, startTime, duration);\n const timeOfLastSample = lastSample / sampleRate;\n if (timeOfLastSample < endTime) {\n setValueAtTimeUntilPossible(audioParam, interpolatedValues[interpolatedValues.length - 1], timeOfLastSample);\n }\n setValueAtTimeUntilPossible(audioParam, convertedValues[convertedValues.length - 1], endTime);\n }\n else {\n if (audioParamRenderer === null) {\n automationEventList.flush(audioNode.context.currentTime);\n }\n automationEventList.add(createSetValueCurveAutomationEvent(convertedValues, startTime, duration));\n nativeAudioParam.setValueCurveAtTime(convertedValues, startTime, duration);\n }\n return audioParam;\n }\n };\n audioParamStore.set(audioParam, nativeAudioParam);\n audioParamAudioNodeStore.set(audioParam, audioNode);\n addAudioParamConnections(audioParam, audioParamRenderer);\n return audioParam;\n };\n};\n//# sourceMappingURL=audio-param-factory.js.map","export const createAudioParamRenderer = (automationEventList) => {\n return {\n replay(audioParam) {\n for (const automationEvent of automationEventList) {\n if (automationEvent.type === 'exponentialRampToValue') {\n const { endTime, value } = automationEvent;\n audioParam.exponentialRampToValueAtTime(value, endTime);\n }\n else if (automationEvent.type === 'linearRampToValue') {\n const { endTime, value } = automationEvent;\n audioParam.linearRampToValueAtTime(value, endTime);\n }\n else if (automationEvent.type === 'setTarget') {\n const { startTime, target, timeConstant } = automationEvent;\n audioParam.setTargetAtTime(target, startTime, timeConstant);\n }\n else if (automationEvent.type === 'setValue') {\n const { startTime, value } = automationEvent;\n audioParam.setValueAtTime(value, startTime);\n }\n else if (automationEvent.type === 'setValueCurve') {\n const { duration, startTime, values } = automationEvent;\n audioParam.setValueCurveAtTime(values, startTime, duration);\n }\n else {\n throw new Error(\"Can't apply an unknown automation.\");\n }\n }\n }\n };\n};\n//# sourceMappingURL=audio-param-renderer.js.map","export class ReadOnlyMap {\n constructor(parameters) {\n this._map = new Map(parameters);\n }\n get size() {\n return this._map.size;\n }\n entries() {\n return this._map.entries();\n }\n forEach(callback, thisArg = null) {\n return this._map.forEach((value, key) => callback.call(thisArg, value, key, this));\n }\n get(name) {\n return this._map.get(name);\n }\n has(name) {\n return this._map.has(name);\n }\n keys() {\n return this._map.keys();\n }\n values() {\n return this._map.values();\n }\n}\n//# sourceMappingURL=read-only-map.js.map","import { NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS } from '../globals';\nimport { ReadOnlyMap } from '../read-only-map';\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n // Bug #61: The channelCountMode should be 'max' according to the spec but is set to 'explicit' to achieve consistent behavior.\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 1,\n numberOfOutputs: 1,\n parameterData: {},\n processorOptions: {}\n};\nexport const createAudioWorkletNodeConstructor = (addUnrenderedAudioWorkletNode, audioNodeConstructor, createAudioParam, createAudioWorkletNodeRenderer, createNativeAudioWorkletNode, getAudioNodeConnections, getBackupOfflineAudioContext, getNativeContext, isNativeOfflineAudioContext, nativeAudioWorkletNodeConstructor, sanitizeAudioWorkletNodeOptions, setActiveAudioWorkletNodeInputs, testAudioWorkletNodeOptionsClonability, wrapEventListener) => {\n return class AudioWorkletNode extends audioNodeConstructor {\n constructor(context, name, options) {\n var _a;\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const mergedOptions = sanitizeAudioWorkletNodeOptions({ ...DEFAULT_OPTIONS, ...options });\n // Bug #191: Safari doesn't throw an error if the options aren't clonable.\n testAudioWorkletNodeOptionsClonability(mergedOptions);\n const nodeNameToProcessorConstructorMap = NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(nativeContext);\n const processorConstructor = nodeNameToProcessorConstructorMap === null || nodeNameToProcessorConstructorMap === void 0 ? void 0 : nodeNameToProcessorConstructorMap.get(name);\n // Bug #186: Chrome, Edge and Opera do not allow to create an AudioWorkletNode on a closed AudioContext.\n const nativeContextOrBackupOfflineAudioContext = isOffline || nativeContext.state !== 'closed'\n ? nativeContext\n : (_a = getBackupOfflineAudioContext(nativeContext)) !== null && _a !== void 0 ? _a : nativeContext;\n const nativeAudioWorkletNode = createNativeAudioWorkletNode(nativeContextOrBackupOfflineAudioContext, isOffline ? null : context.baseLatency, nativeAudioWorkletNodeConstructor, name, processorConstructor, mergedOptions);\n const audioWorkletNodeRenderer = ((isOffline ? createAudioWorkletNodeRenderer(name, mergedOptions, processorConstructor) : null));\n /*\n * @todo Add a mechanism to switch an AudioWorkletNode to passive once the process() function of the AudioWorkletProcessor\n * returns false.\n */\n super(context, true, nativeAudioWorkletNode, audioWorkletNodeRenderer);\n const parameters = [];\n nativeAudioWorkletNode.parameters.forEach((nativeAudioParam, nm) => {\n const audioParam = createAudioParam(this, isOffline, nativeAudioParam);\n parameters.push([nm, audioParam]);\n });\n this._nativeAudioWorkletNode = nativeAudioWorkletNode;\n this._onprocessorerror = null;\n this._parameters = new ReadOnlyMap(parameters);\n /*\n * Bug #86 & #87: Invoking the renderer of an AudioWorkletNode might be necessary if it has no direct or indirect connection to\n * the destination.\n */\n if (isOffline) {\n addUnrenderedAudioWorkletNode(nativeContext, this);\n }\n const { activeInputs } = getAudioNodeConnections(this);\n setActiveAudioWorkletNodeInputs(nativeAudioWorkletNode, activeInputs);\n }\n get onprocessorerror() {\n return this._onprocessorerror;\n }\n set onprocessorerror(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n this._nativeAudioWorkletNode.onprocessorerror = wrappedListener;\n const nativeOnProcessorError = this._nativeAudioWorkletNode.onprocessorerror;\n this._onprocessorerror =\n nativeOnProcessorError !== null && nativeOnProcessorError === wrappedListener\n ? value\n : nativeOnProcessorError;\n }\n get parameters() {\n if (this._parameters === null) {\n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n return this._nativeAudioWorkletNode.parameters;\n }\n return this._parameters;\n }\n get port() {\n return this._nativeAudioWorkletNode.port;\n }\n };\n};\n//# sourceMappingURL=audio-worklet-node-constructor.js.map","export function copyFromChannel(audioBuffer, \n// @todo There is currently no way to define something like { [ key: number | string ]: Float32Array }\nparent, key, channelNumber, bufferOffset) {\n if (typeof audioBuffer.copyFromChannel === 'function') {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength === 0) {\n parent[key] = new Float32Array(128);\n }\n audioBuffer.copyFromChannel(parent[key], channelNumber, bufferOffset);\n // Bug #5: Safari does not support copyFromChannel().\n }\n else {\n const channelData = audioBuffer.getChannelData(channelNumber);\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength === 0) {\n parent[key] = channelData.slice(bufferOffset, bufferOffset + 128);\n }\n else {\n const slicedInput = new Float32Array(channelData.buffer, bufferOffset * Float32Array.BYTES_PER_ELEMENT, 128);\n parent[key].set(slicedInput);\n }\n }\n}\n//# sourceMappingURL=copy-from-channel.js.map","export const copyToChannel = (audioBuffer, parent, key, channelNumber, bufferOffset) => {\n if (typeof audioBuffer.copyToChannel === 'function') {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength !== 0) {\n audioBuffer.copyToChannel(parent[key], channelNumber, bufferOffset);\n }\n // Bug #5: Safari does not support copyToChannel().\n }\n else {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (parent[key].byteLength !== 0) {\n audioBuffer.getChannelData(channelNumber).set(parent[key], bufferOffset);\n }\n }\n};\n//# sourceMappingURL=copy-to-channel.js.map","export const createNestedArrays = (x, y) => {\n const arrays = [];\n for (let i = 0; i < x; i += 1) {\n const array = [];\n const length = typeof y === 'number' ? y : y[i];\n for (let j = 0; j < length; j += 1) {\n array.push(new Float32Array(128));\n }\n arrays.push(array);\n }\n return arrays;\n};\n//# sourceMappingURL=create-nested-arrays.js.map","import { NODE_TO_PROCESSOR_MAPS } from '../globals';\nimport { getNativeAudioNode } from './get-native-audio-node';\nimport { getValueForKey } from './get-value-for-key';\nexport const getAudioWorkletProcessor = (nativeOfflineAudioContext, proxy) => {\n const nodeToProcessorMap = getValueForKey(NODE_TO_PROCESSOR_MAPS, nativeOfflineAudioContext);\n const nativeAudioWorkletNode = getNativeAudioNode(proxy);\n return getValueForKey(nodeToProcessorMap, nativeAudioWorkletNode);\n};\n//# sourceMappingURL=get-audio-worklet-processor.js.map","import { copyFromChannel } from '../helpers/copy-from-channel';\nimport { copyToChannel } from '../helpers/copy-to-channel';\nimport { createNestedArrays } from '../helpers/create-nested-arrays';\nimport { getAudioNodeConnections } from '../helpers/get-audio-node-connections';\nimport { getAudioWorkletProcessor } from '../helpers/get-audio-worklet-processor';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nconst processBuffer = async (proxy, renderedBuffer, nativeOfflineAudioContext, options, outputChannelCount, processorConstructor, exposeCurrentFrameAndCurrentTime) => {\n // Ceil the length to the next full render quantum.\n // Bug #17: Safari does not yet expose the length.\n const length = renderedBuffer === null ? Math.ceil(proxy.context.length / 128) * 128 : renderedBuffer.length;\n const numberOfInputChannels = options.channelCount * options.numberOfInputs;\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const processedBuffer = numberOfOutputChannels === 0\n ? null\n : nativeOfflineAudioContext.createBuffer(numberOfOutputChannels, length, nativeOfflineAudioContext.sampleRate);\n if (processorConstructor === undefined) {\n throw new Error('Missing the processor constructor.');\n }\n const audioNodeConnections = getAudioNodeConnections(proxy);\n const audioWorkletProcessor = await getAudioWorkletProcessor(nativeOfflineAudioContext, proxy);\n const inputs = createNestedArrays(options.numberOfInputs, options.channelCount);\n const outputs = createNestedArrays(options.numberOfOutputs, outputChannelCount);\n const parameters = Array.from(proxy.parameters.keys()).reduce((prmtrs, name) => ({ ...prmtrs, [name]: new Float32Array(128) }), {});\n for (let i = 0; i < length; i += 128) {\n if (options.numberOfInputs > 0 && renderedBuffer !== null) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < options.channelCount; k += 1) {\n copyFromChannel(renderedBuffer, inputs[j], k, k, i);\n }\n }\n }\n if (processorConstructor.parameterDescriptors !== undefined && renderedBuffer !== null) {\n processorConstructor.parameterDescriptors.forEach(({ name }, index) => {\n copyFromChannel(renderedBuffer, parameters, name, numberOfInputChannels + index, i);\n });\n }\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (outputs[j][k].byteLength === 0) {\n outputs[j][k] = new Float32Array(128);\n }\n }\n }\n try {\n const potentiallyEmptyInputs = inputs.map((input, index) => {\n if (audioNodeConnections.activeInputs[index].size === 0) {\n return [];\n }\n return input;\n });\n const activeSourceFlag = exposeCurrentFrameAndCurrentTime(i / nativeOfflineAudioContext.sampleRate, nativeOfflineAudioContext.sampleRate, () => audioWorkletProcessor.process(potentiallyEmptyInputs, outputs, parameters));\n if (processedBuffer !== null) {\n for (let j = 0, outputChannelSplitterNodeOutput = 0; j < options.numberOfOutputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n copyToChannel(processedBuffer, outputs[j], k, outputChannelSplitterNodeOutput + k, i);\n }\n outputChannelSplitterNodeOutput += outputChannelCount[j];\n }\n }\n if (!activeSourceFlag) {\n break;\n }\n }\n catch (error) {\n proxy.dispatchEvent(new ErrorEvent('processorerror', {\n colno: error.colno,\n filename: error.filename,\n lineno: error.lineno,\n message: error.message\n }));\n break;\n }\n }\n return processedBuffer;\n};\nexport const createAudioWorkletNodeRendererFactory = (connectAudioParam, connectMultipleOutputs, createNativeAudioBufferSourceNode, createNativeChannelMergerNode, createNativeChannelSplitterNode, createNativeConstantSourceNode, createNativeGainNode, deleteUnrenderedAudioWorkletNode, disconnectMultipleOutputs, exposeCurrentFrameAndCurrentTime, getNativeAudioNode, nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor, renderAutomation, renderInputsOfAudioNode, renderNativeOfflineAudioContext) => {\n return (name, options, processorConstructor) => {\n const renderedNativeAudioNodes = new WeakMap();\n let processedBufferPromise = null;\n const createAudioNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeAudioWorkletNode = getNativeAudioNode(proxy);\n let nativeOutputNodes = null;\n const nativeAudioWorkletNodeIsOwnedByContext = isOwnedByContext(nativeAudioWorkletNode, nativeOfflineAudioContext);\n const outputChannelCount = Array.isArray(options.outputChannelCount)\n ? options.outputChannelCount\n : Array.from(options.outputChannelCount);\n // Bug #61: Only Chrome, Edge, Firefox & Opera have an implementation of the AudioWorkletNode yet.\n if (nativeAudioWorkletNodeConstructor === null) {\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const outputChannelSplitterNode = createNativeChannelSplitterNode(nativeOfflineAudioContext, {\n channelCount: Math.max(1, numberOfOutputChannels),\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: Math.max(1, numberOfOutputChannels)\n });\n const outputChannelMergerNodes = [];\n for (let i = 0; i < proxy.numberOfOutputs; i += 1) {\n outputChannelMergerNodes.push(createNativeChannelMergerNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: outputChannelCount[i]\n }));\n }\n const outputGainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n });\n outputGainNode.connect = connectMultipleOutputs.bind(null, outputChannelMergerNodes);\n outputGainNode.disconnect = disconnectMultipleOutputs.bind(null, outputChannelMergerNodes);\n nativeOutputNodes = [outputChannelSplitterNode, outputChannelMergerNodes, outputGainNode];\n }\n else if (!nativeAudioWorkletNodeIsOwnedByContext) {\n nativeAudioWorkletNode = new nativeAudioWorkletNodeConstructor(nativeOfflineAudioContext, name);\n }\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeOutputNodes === null ? nativeAudioWorkletNode : nativeOutputNodes[2]);\n if (nativeOutputNodes !== null) {\n if (processedBufferPromise === null) {\n if (processorConstructor === undefined) {\n throw new Error('Missing the processor constructor.');\n }\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n // Bug #47: The AudioDestinationNode in Safari gets not initialized correctly.\n const numberOfInputChannels = proxy.channelCount * proxy.numberOfInputs;\n const numberOfParameters = processorConstructor.parameterDescriptors === undefined ? 0 : processorConstructor.parameterDescriptors.length;\n const numberOfChannels = numberOfInputChannels + numberOfParameters;\n const renderBuffer = async () => {\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(numberOfChannels, \n // Ceil the length to the next full render quantum.\n // Bug #17: Safari does not yet expose the length.\n Math.ceil(proxy.context.length / 128) * 128, nativeOfflineAudioContext.sampleRate);\n const gainNodes = [];\n const inputChannelSplitterNodes = [];\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes.push(createNativeGainNode(partialOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n }));\n inputChannelSplitterNodes.push(createNativeChannelSplitterNode(partialOfflineAudioContext, {\n channelCount: options.channelCount,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: options.channelCount\n }));\n }\n const constantSourceNodes = await Promise.all(Array.from(proxy.parameters.values()).map(async (audioParam) => {\n const constantSourceNode = createNativeConstantSourceNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: audioParam.value\n });\n await renderAutomation(partialOfflineAudioContext, audioParam, constantSourceNode.offset);\n return constantSourceNode;\n }));\n const inputChannelMergerNode = createNativeChannelMergerNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: Math.max(1, numberOfInputChannels + numberOfParameters)\n });\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes[i].connect(inputChannelSplitterNodes[i]);\n for (let j = 0; j < options.channelCount; j += 1) {\n inputChannelSplitterNodes[i].connect(inputChannelMergerNode, j, i * options.channelCount + j);\n }\n }\n for (const [index, constantSourceNode] of constantSourceNodes.entries()) {\n constantSourceNode.connect(inputChannelMergerNode, 0, numberOfInputChannels + index);\n constantSourceNode.start(0);\n }\n inputChannelMergerNode.connect(partialOfflineAudioContext.destination);\n await Promise.all(gainNodes.map((gainNode) => renderInputsOfAudioNode(proxy, partialOfflineAudioContext, gainNode)));\n return renderNativeOfflineAudioContext(partialOfflineAudioContext);\n };\n processedBufferPromise = processBuffer(proxy, numberOfChannels === 0 ? null : await renderBuffer(), nativeOfflineAudioContext, options, outputChannelCount, processorConstructor, exposeCurrentFrameAndCurrentTime);\n }\n const processedBuffer = await processedBufferPromise;\n const audioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const [outputChannelSplitterNode, outputChannelMergerNodes, outputGainNode] = nativeOutputNodes;\n if (processedBuffer !== null) {\n audioBufferSourceNode.buffer = processedBuffer;\n audioBufferSourceNode.start(0);\n }\n audioBufferSourceNode.connect(outputChannelSplitterNode);\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < proxy.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.connect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n return outputGainNode;\n }\n if (!nativeAudioWorkletNodeIsOwnedByContext) {\n for (const [nm, audioParam] of proxy.parameters.entries()) {\n await renderAutomation(nativeOfflineAudioContext, audioParam, \n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n nativeAudioWorkletNode.parameters.get(nm));\n }\n }\n else {\n for (const [nm, audioParam] of proxy.parameters.entries()) {\n await connectAudioParam(nativeOfflineAudioContext, audioParam, \n // @todo The definition that TypeScript uses of the AudioParamMap is lacking many methods.\n nativeAudioWorkletNode.parameters.get(nm));\n }\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioWorkletNode);\n return nativeAudioWorkletNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n deleteUnrenderedAudioWorkletNode(nativeOfflineAudioContext, proxy);\n const renderedNativeAudioWorkletNodeOrGainNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAudioWorkletNodeOrGainNode !== undefined) {\n return Promise.resolve(renderedNativeAudioWorkletNodeOrGainNode);\n }\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=audio-worklet-node-renderer-factory.js.map","export const createBaseAudioContextConstructor = (addAudioWorkletModule, analyserNodeConstructor, audioBufferConstructor, audioBufferSourceNodeConstructor, biquadFilterNodeConstructor, channelMergerNodeConstructor, channelSplitterNodeConstructor, constantSourceNodeConstructor, convolverNodeConstructor, decodeAudioData, delayNodeConstructor, dynamicsCompressorNodeConstructor, gainNodeConstructor, iIRFilterNodeConstructor, minimalBaseAudioContextConstructor, oscillatorNodeConstructor, pannerNodeConstructor, periodicWaveConstructor, stereoPannerNodeConstructor, waveShaperNodeConstructor) => {\n return class BaseAudioContext extends minimalBaseAudioContextConstructor {\n constructor(_nativeContext, numberOfChannels) {\n super(_nativeContext, numberOfChannels);\n this._nativeContext = _nativeContext;\n this._audioWorklet =\n addAudioWorkletModule === undefined\n ? undefined\n : {\n addModule: (moduleURL, options) => {\n return addAudioWorkletModule(this, moduleURL, options);\n }\n };\n }\n get audioWorklet() {\n return this._audioWorklet;\n }\n createAnalyser() {\n return new analyserNodeConstructor(this);\n }\n createBiquadFilter() {\n return new biquadFilterNodeConstructor(this);\n }\n createBuffer(numberOfChannels, length, sampleRate) {\n return new audioBufferConstructor({ length, numberOfChannels, sampleRate });\n }\n createBufferSource() {\n return new audioBufferSourceNodeConstructor(this);\n }\n createChannelMerger(numberOfInputs = 6) {\n return new channelMergerNodeConstructor(this, { numberOfInputs });\n }\n createChannelSplitter(numberOfOutputs = 6) {\n return new channelSplitterNodeConstructor(this, { numberOfOutputs });\n }\n createConstantSource() {\n return new constantSourceNodeConstructor(this);\n }\n createConvolver() {\n return new convolverNodeConstructor(this);\n }\n createDelay(maxDelayTime = 1) {\n return new delayNodeConstructor(this, { maxDelayTime });\n }\n createDynamicsCompressor() {\n return new dynamicsCompressorNodeConstructor(this);\n }\n createGain() {\n return new gainNodeConstructor(this);\n }\n createIIRFilter(feedforward, feedback) {\n return new iIRFilterNodeConstructor(this, { feedback, feedforward });\n }\n createOscillator() {\n return new oscillatorNodeConstructor(this);\n }\n createPanner() {\n return new pannerNodeConstructor(this);\n }\n createPeriodicWave(real, imag, constraints = { disableNormalization: false }) {\n return new periodicWaveConstructor(this, { ...constraints, imag, real });\n }\n createStereoPanner() {\n return new stereoPannerNodeConstructor(this);\n }\n createWaveShaper() {\n return new waveShaperNodeConstructor(this);\n }\n decodeAudioData(audioData, successCallback, errorCallback) {\n return decodeAudioData(this._nativeContext, audioData).then((audioBuffer) => {\n if (typeof successCallback === 'function') {\n successCallback(audioBuffer);\n }\n return audioBuffer;\n }, (err) => {\n if (typeof errorCallback === 'function') {\n errorCallback(err);\n }\n throw err;\n });\n }\n };\n};\n//# sourceMappingURL=base-audio-context-constructor.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nconst DEFAULT_OPTIONS = {\n Q: 1,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n detune: 0,\n frequency: 350,\n gain: 0,\n type: 'lowpass'\n};\nexport const createBiquadFilterNodeConstructor = (audioNodeConstructor, createAudioParam, createBiquadFilterNodeRenderer, createInvalidAccessError, createNativeBiquadFilterNode, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class BiquadFilterNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeBiquadFilterNode = createNativeBiquadFilterNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const biquadFilterNodeRenderer = (isOffline ? createBiquadFilterNodeRenderer() : null);\n super(context, false, nativeBiquadFilterNode, biquadFilterNodeRenderer);\n // Bug #80: Safari does not export the correct values for maxValue and minValue.\n this._Q = createAudioParam(this, isOffline, nativeBiquadFilterNode.Q, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n // Bug #78: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._detune = createAudioParam(this, isOffline, nativeBiquadFilterNode.detune, 1200 * Math.log2(MOST_POSITIVE_SINGLE_FLOAT), -1200 * Math.log2(MOST_POSITIVE_SINGLE_FLOAT));\n // Bug #77: Firefox & Safari do not export the correct value for minValue.\n this._frequency = createAudioParam(this, isOffline, nativeBiquadFilterNode.frequency, context.sampleRate / 2, 0);\n // Bug #79: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._gain = createAudioParam(this, isOffline, nativeBiquadFilterNode.gain, 40 * Math.log10(MOST_POSITIVE_SINGLE_FLOAT), MOST_NEGATIVE_SINGLE_FLOAT);\n this._nativeBiquadFilterNode = nativeBiquadFilterNode;\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n get detune() {\n return this._detune;\n }\n get frequency() {\n return this._frequency;\n }\n get gain() {\n return this._gain;\n }\n get Q() {\n return this._Q;\n }\n get type() {\n return this._nativeBiquadFilterNode.type;\n }\n set type(value) {\n this._nativeBiquadFilterNode.type = value;\n }\n getFrequencyResponse(frequencyHz, magResponse, phaseResponse) {\n // Bug #189: Safari does throw an InvalidStateError.\n try {\n this._nativeBiquadFilterNode.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);\n }\n catch (err) {\n if (err.code === 11) {\n throw createInvalidAccessError();\n }\n throw err;\n }\n // Bug #68: Safari does not throw an error if the parameters differ in their length.\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n }\n };\n};\n//# sourceMappingURL=biquad-filter-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createBiquadFilterNodeRendererFactory = (connectAudioParam, createNativeBiquadFilterNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeBiquadFilterNodes = new WeakMap();\n const createBiquadFilterNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeBiquadFilterNode = getNativeAudioNode(proxy);\n /*\n * If the initially used nativeBiquadFilterNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeBiquadFilterNodeIsOwnedByContext = isOwnedByContext(nativeBiquadFilterNode, nativeOfflineAudioContext);\n if (!nativeBiquadFilterNodeIsOwnedByContext) {\n const options = {\n Q: nativeBiquadFilterNode.Q.value,\n channelCount: nativeBiquadFilterNode.channelCount,\n channelCountMode: nativeBiquadFilterNode.channelCountMode,\n channelInterpretation: nativeBiquadFilterNode.channelInterpretation,\n detune: nativeBiquadFilterNode.detune.value,\n frequency: nativeBiquadFilterNode.frequency.value,\n gain: nativeBiquadFilterNode.gain.value,\n type: nativeBiquadFilterNode.type\n };\n nativeBiquadFilterNode = createNativeBiquadFilterNode(nativeOfflineAudioContext, options);\n }\n renderedNativeBiquadFilterNodes.set(nativeOfflineAudioContext, nativeBiquadFilterNode);\n if (!nativeBiquadFilterNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.Q, nativeBiquadFilterNode.Q);\n await renderAutomation(nativeOfflineAudioContext, proxy.detune, nativeBiquadFilterNode.detune);\n await renderAutomation(nativeOfflineAudioContext, proxy.frequency, nativeBiquadFilterNode.frequency);\n await renderAutomation(nativeOfflineAudioContext, proxy.gain, nativeBiquadFilterNode.gain);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.Q, nativeBiquadFilterNode.Q);\n await connectAudioParam(nativeOfflineAudioContext, proxy.detune, nativeBiquadFilterNode.detune);\n await connectAudioParam(nativeOfflineAudioContext, proxy.frequency, nativeBiquadFilterNode.frequency);\n await connectAudioParam(nativeOfflineAudioContext, proxy.gain, nativeBiquadFilterNode.gain);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeBiquadFilterNode);\n return nativeBiquadFilterNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeBiquadFilterNode = renderedNativeBiquadFilterNodes.get(nativeOfflineAudioContext);\n if (renderedNativeBiquadFilterNode !== undefined) {\n return Promise.resolve(renderedNativeBiquadFilterNode);\n }\n return createBiquadFilterNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=biquad-filter-node-renderer-factory.js.map","export const createCacheTestResult = (ongoingTests, testResults) => {\n return (tester, test) => {\n const cachedTestResult = testResults.get(tester);\n if (cachedTestResult !== undefined) {\n return cachedTestResult;\n }\n const ongoingTest = ongoingTests.get(tester);\n if (ongoingTest !== undefined) {\n return ongoingTest;\n }\n try {\n const synchronousTestResult = test();\n if (synchronousTestResult instanceof Promise) {\n ongoingTests.set(tester, synchronousTestResult);\n return synchronousTestResult\n .catch(() => false)\n .then((finalTestResult) => {\n ongoingTests.delete(tester);\n testResults.set(tester, finalTestResult);\n return finalTestResult;\n });\n }\n testResults.set(tester, synchronousTestResult);\n return synchronousTestResult;\n }\n catch {\n testResults.set(tester, false);\n return false;\n }\n };\n};\n//# sourceMappingURL=cache-test-result.js.map","const DEFAULT_OPTIONS = {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n};\nexport const createChannelMergerNodeConstructor = (audioNodeConstructor, createChannelMergerNodeRenderer, createNativeChannelMergerNode, getNativeContext, isNativeOfflineAudioContext) => {\n return class ChannelMergerNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeChannelMergerNode = createNativeChannelMergerNode(nativeContext, mergedOptions);\n const channelMergerNodeRenderer = ((isNativeOfflineAudioContext(nativeContext) ? createChannelMergerNodeRenderer() : null));\n super(context, false, nativeChannelMergerNode, channelMergerNodeRenderer);\n }\n };\n};\n//# sourceMappingURL=channel-merger-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createChannelMergerNodeRendererFactory = (createNativeChannelMergerNode, getNativeAudioNode, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n const createAudioNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeAudioNode = getNativeAudioNode(proxy);\n // If the initially used nativeAudioNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAudioNodeIsOwnedByContext = isOwnedByContext(nativeAudioNode, nativeOfflineAudioContext);\n if (!nativeAudioNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAudioNode.channelCount,\n channelCountMode: nativeAudioNode.channelCountMode,\n channelInterpretation: nativeAudioNode.channelInterpretation,\n numberOfInputs: nativeAudioNode.numberOfInputs\n };\n nativeAudioNode = createNativeChannelMergerNode(nativeOfflineAudioContext, options);\n }\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioNode);\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioNode);\n return nativeAudioNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=channel-merger-node-renderer-factory.js.map","const DEFAULT_OPTIONS = {\n channelCount: 6,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: 6\n};\nexport const createChannelSplitterNodeConstructor = (audioNodeConstructor, createChannelSplitterNodeRenderer, createNativeChannelSplitterNode, getNativeContext, isNativeOfflineAudioContext, sanitizeChannelSplitterOptions) => {\n return class ChannelSplitterNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = sanitizeChannelSplitterOptions({ ...DEFAULT_OPTIONS, ...options });\n const nativeChannelSplitterNode = createNativeChannelSplitterNode(nativeContext, mergedOptions);\n const channelSplitterNodeRenderer = ((isNativeOfflineAudioContext(nativeContext) ? createChannelSplitterNodeRenderer() : null));\n super(context, false, nativeChannelSplitterNode, channelSplitterNodeRenderer);\n }\n };\n};\n//# sourceMappingURL=channel-splitter-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createChannelSplitterNodeRendererFactory = (createNativeChannelSplitterNode, getNativeAudioNode, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n const createAudioNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeAudioNode = getNativeAudioNode(proxy);\n // If the initially used nativeAudioNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeAudioNodeIsOwnedByContext = isOwnedByContext(nativeAudioNode, nativeOfflineAudioContext);\n if (!nativeAudioNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeAudioNode.channelCount,\n channelCountMode: nativeAudioNode.channelCountMode,\n channelInterpretation: nativeAudioNode.channelInterpretation,\n numberOfOutputs: nativeAudioNode.numberOfOutputs\n };\n nativeAudioNode = createNativeChannelSplitterNode(nativeOfflineAudioContext, options);\n }\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioNode);\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeAudioNode);\n return nativeAudioNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=channel-splitter-node-renderer-factory.js.map","export const createConnectAudioParam = (renderInputsOfAudioParam) => {\n return (nativeOfflineAudioContext, audioParam, nativeAudioParam) => {\n return renderInputsOfAudioParam(audioParam, nativeOfflineAudioContext, nativeAudioParam);\n };\n};\n//# sourceMappingURL=connect-audio-param.js.map","import { isNativeAudioNode } from '../guards/native-audio-node';\nexport const createConnectMultipleOutputs = (createIndexSizeError) => {\n return (outputAudioNodes, destination, output = 0, input = 0) => {\n const outputAudioNode = outputAudioNodes[output];\n if (outputAudioNode === undefined) {\n throw createIndexSizeError();\n }\n if (isNativeAudioNode(destination)) {\n return outputAudioNode.connect(destination, 0, input);\n }\n return outputAudioNode.connect(destination, 0);\n };\n};\n//# sourceMappingURL=connect-multiple-outputs.js.map","export const createConnectedNativeAudioBufferSourceNodeFactory = (createNativeAudioBufferSourceNode) => {\n return (nativeContext, nativeAudioNode) => {\n const nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const nativeAudioBuffer = nativeContext.createBuffer(1, 2, 44100);\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n nativeAudioBufferSourceNode.loop = true;\n nativeAudioBufferSourceNode.connect(nativeAudioNode);\n nativeAudioBufferSourceNode.start();\n return () => {\n nativeAudioBufferSourceNode.stop();\n nativeAudioBufferSourceNode.disconnect(nativeAudioNode);\n };\n };\n};\n//# sourceMappingURL=connected-native-audio-buffer-source-node-factory.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n offset: 1\n};\nexport const createConstantSourceNodeConstructor = (audioNodeConstructor, createAudioParam, createConstantSourceNodeRendererFactory, createNativeConstantSourceNode, getNativeContext, isNativeOfflineAudioContext, wrapEventListener) => {\n return class ConstantSourceNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeConstantSourceNode = createNativeConstantSourceNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const constantSourceNodeRenderer = ((isOffline ? createConstantSourceNodeRendererFactory() : null));\n super(context, false, nativeConstantSourceNode, constantSourceNodeRenderer);\n this._constantSourceNodeRenderer = constantSourceNodeRenderer;\n this._nativeConstantSourceNode = nativeConstantSourceNode;\n /*\n * Bug #62 & #74: Safari does not support ConstantSourceNodes and does not export the correct values for maxValue and minValue\n * for GainNodes.\n */\n this._offset = createAudioParam(this, isOffline, nativeConstantSourceNode.offset, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n this._onended = null;\n }\n get offset() {\n return this._offset;\n }\n get onended() {\n return this._onended;\n }\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n this._nativeConstantSourceNode.onended = wrappedListener;\n const nativeOnEnded = this._nativeConstantSourceNode.onended;\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n start(when = 0) {\n this._nativeConstantSourceNode.start(when);\n if (this._constantSourceNodeRenderer !== null) {\n this._constantSourceNodeRenderer.start = when;\n }\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n const resetInternalStateToPassive = () => {\n this._nativeConstantSourceNode.removeEventListener('ended', resetInternalStateToPassive);\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n this._nativeConstantSourceNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n stop(when = 0) {\n this._nativeConstantSourceNode.stop(when);\n if (this._constantSourceNodeRenderer !== null) {\n this._constantSourceNodeRenderer.stop = when;\n }\n }\n };\n};\n//# sourceMappingURL=constant-source-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createConstantSourceNodeRendererFactory = (connectAudioParam, createNativeConstantSourceNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeConstantSourceNodes = new WeakMap();\n let start = null;\n let stop = null;\n const createConstantSourceNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeConstantSourceNode = getNativeAudioNode(proxy);\n /*\n * If the initially used nativeConstantSourceNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeConstantSourceNodeIsOwnedByContext = isOwnedByContext(nativeConstantSourceNode, nativeOfflineAudioContext);\n if (!nativeConstantSourceNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeConstantSourceNode.channelCount,\n channelCountMode: nativeConstantSourceNode.channelCountMode,\n channelInterpretation: nativeConstantSourceNode.channelInterpretation,\n offset: nativeConstantSourceNode.offset.value\n };\n nativeConstantSourceNode = createNativeConstantSourceNode(nativeOfflineAudioContext, options);\n if (start !== null) {\n nativeConstantSourceNode.start(start);\n }\n if (stop !== null) {\n nativeConstantSourceNode.stop(stop);\n }\n }\n renderedNativeConstantSourceNodes.set(nativeOfflineAudioContext, nativeConstantSourceNode);\n if (!nativeConstantSourceNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.offset, nativeConstantSourceNode.offset);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.offset, nativeConstantSourceNode.offset);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConstantSourceNode);\n return nativeConstantSourceNode;\n };\n return {\n set start(value) {\n start = value;\n },\n set stop(value) {\n stop = value;\n },\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeConstantSourceNode = renderedNativeConstantSourceNodes.get(nativeOfflineAudioContext);\n if (renderedNativeConstantSourceNode !== undefined) {\n return Promise.resolve(renderedNativeConstantSourceNode);\n }\n return createConstantSourceNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=constant-source-node-renderer-factory.js.map","export const createConvertNumberToUnsignedLong = (unit32Array) => {\n return (value) => {\n unit32Array[0] = value;\n return unit32Array[0];\n };\n};\n//# sourceMappingURL=convert-number-to-unsigned-long.js.map","const DEFAULT_OPTIONS = {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n disableNormalization: false\n};\nexport const createConvolverNodeConstructor = (audioNodeConstructor, createConvolverNodeRenderer, createNativeConvolverNode, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class ConvolverNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeConvolverNode = createNativeConvolverNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const convolverNodeRenderer = (isOffline ? createConvolverNodeRenderer() : null);\n super(context, false, nativeConvolverNode, convolverNodeRenderer);\n this._isBufferNullified = false;\n this._nativeConvolverNode = nativeConvolverNode;\n if (mergedOptions.buffer !== null) {\n setAudioNodeTailTime(this, mergedOptions.buffer.duration);\n }\n }\n get buffer() {\n if (this._isBufferNullified) {\n return null;\n }\n return this._nativeConvolverNode.buffer;\n }\n set buffer(value) {\n this._nativeConvolverNode.buffer = value;\n // Bug #115: Safari does not allow to set the buffer to null.\n if (value === null && this._nativeConvolverNode.buffer !== null) {\n const nativeContext = this._nativeConvolverNode.context;\n this._nativeConvolverNode.buffer = nativeContext.createBuffer(1, 1, 44100);\n this._isBufferNullified = true;\n setAudioNodeTailTime(this, 0);\n }\n else {\n this._isBufferNullified = false;\n setAudioNodeTailTime(this, this._nativeConvolverNode.buffer === null ? 0 : this._nativeConvolverNode.buffer.duration);\n }\n }\n get normalize() {\n return this._nativeConvolverNode.normalize;\n }\n set normalize(value) {\n this._nativeConvolverNode.normalize = value;\n }\n };\n};\n//# sourceMappingURL=convolver-node-constructor.js.map","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createConvolverNodeRendererFactory = (createNativeConvolverNode, getNativeAudioNode, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeConvolverNodes = new WeakMap();\n const createConvolverNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeConvolverNode = getNativeAudioNode(proxy);\n // If the initially used nativeConvolverNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeConvolverNodeIsOwnedByContext = isOwnedByContext(nativeConvolverNode, nativeOfflineAudioContext);\n if (!nativeConvolverNodeIsOwnedByContext) {\n const options = {\n buffer: nativeConvolverNode.buffer,\n channelCount: nativeConvolverNode.channelCount,\n channelCountMode: nativeConvolverNode.channelCountMode,\n channelInterpretation: nativeConvolverNode.channelInterpretation,\n disableNormalization: !nativeConvolverNode.normalize\n };\n nativeConvolverNode = createNativeConvolverNode(nativeOfflineAudioContext, options);\n }\n renderedNativeConvolverNodes.set(nativeOfflineAudioContext, nativeConvolverNode);\n if (isNativeAudioNodeFaker(nativeConvolverNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConvolverNode.inputs[0]);\n }\n else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeConvolverNode);\n }\n return nativeConvolverNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeConvolverNode = renderedNativeConvolverNodes.get(nativeOfflineAudioContext);\n if (renderedNativeConvolverNode !== undefined) {\n return Promise.resolve(renderedNativeConvolverNode);\n }\n return createConvolverNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=convolver-node-renderer-factory.js.map","export const createCreateNativeOfflineAudioContext = (createNotSupportedError, nativeOfflineAudioContextConstructor) => {\n return (numberOfChannels, length, sampleRate) => {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n try {\n return new nativeOfflineAudioContextConstructor(numberOfChannels, length, sampleRate);\n }\n catch (err) {\n // Bug #143, #144 & #146: Safari throws a SyntaxError when numberOfChannels, length or sampleRate are invalid.\n if (err.name === 'SyntaxError') {\n throw createNotSupportedError();\n }\n throw err;\n }\n };\n};\n//# sourceMappingURL=create-native-offline-audio-context.js.map","export const createDataCloneError = () => new DOMException('', 'DataCloneError');\n//# sourceMappingURL=data-clone-error.js.map","export const detachArrayBuffer = (arrayBuffer) => {\n const { port1, port2 } = new MessageChannel();\n return new Promise((resolve) => {\n const closeAndResolve = () => {\n port2.onmessage = null;\n port1.close();\n port2.close();\n resolve();\n };\n port2.onmessage = () => closeAndResolve();\n try {\n port1.postMessage(arrayBuffer, [arrayBuffer]);\n }\n finally {\n closeAndResolve();\n }\n });\n};\n//# sourceMappingURL=detach-array-buffer.js.map","import { detachArrayBuffer } from '../helpers/detach-array-buffer';\nimport { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nexport const createDecodeAudioData = (audioBufferStore, cacheTestResult, createDataCloneError, createEncodingError, detachedArrayBuffers, getNativeContext, isNativeContext, testAudioBufferCopyChannelMethodsOutOfBoundsSupport, testPromiseSupport, wrapAudioBufferCopyChannelMethods, wrapAudioBufferCopyChannelMethodsOutOfBounds) => {\n return (anyContext, audioData) => {\n const nativeContext = isNativeContext(anyContext) ? anyContext : getNativeContext(anyContext);\n // Bug #43: Only Chrome, Edge and Opera do throw a DataCloneError.\n if (detachedArrayBuffers.has(audioData)) {\n const err = createDataCloneError();\n return Promise.reject(err);\n }\n // The audioData parameter maybe of a type which can't be added to a WeakSet.\n try {\n detachedArrayBuffers.add(audioData);\n }\n catch {\n // Ignore errors.\n }\n // Bug #21: Safari does not support promises yet.\n if (cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeContext))) {\n return nativeContext.decodeAudioData(audioData).then((audioBuffer) => {\n // Bug #133: Safari does neuter the ArrayBuffer.\n detachArrayBuffer(audioData).catch(() => {\n // Ignore errors.\n });\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n if (!cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () => testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer))) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n audioBufferStore.add(audioBuffer);\n return audioBuffer;\n });\n }\n // Bug #21: Safari does not return a Promise yet.\n return new Promise((resolve, reject) => {\n const complete = async () => {\n // Bug #133: Safari does neuter the ArrayBuffer.\n try {\n await detachArrayBuffer(audioData);\n }\n catch {\n // Ignore errors.\n }\n };\n const fail = (err) => {\n reject(err);\n complete();\n };\n // Bug #26: Safari throws a synchronous error.\n try {\n // Bug #1: Safari requires a successCallback.\n nativeContext.decodeAudioData(audioData, (audioBuffer) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n }\n audioBufferStore.add(audioBuffer);\n complete().then(() => resolve(audioBuffer));\n }, (err) => {\n // Bug #4: Safari returns null instead of an error.\n if (err === null) {\n fail(createEncodingError());\n }\n else {\n fail(err);\n }\n });\n }\n catch (err) {\n fail(err);\n }\n });\n };\n};\n//# sourceMappingURL=decode-audio-data.js.map","import { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nexport const createDecrementCycleCounter = (connectNativeAudioNodeToNativeAudioNode, cycleCounters, getAudioNodeConnections, getNativeAudioNode, getNativeAudioParam, getNativeContext, isActiveAudioNode, isNativeOfflineAudioContext) => {\n return (audioNode, count) => {\n const cycleCounter = cycleCounters.get(audioNode);\n if (cycleCounter === undefined) {\n throw new Error('Missing the expected cycle count.');\n }\n const nativeContext = getNativeContext(audioNode.context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n if (cycleCounter === count) {\n cycleCounters.delete(audioNode);\n if (!isOffline && isActiveAudioNode(audioNode)) {\n const nativeSourceAudioNode = getNativeAudioNode(audioNode);\n const { outputs } = getAudioNodeConnections(audioNode);\n for (const output of outputs) {\n if (isAudioNodeOutputConnection(output)) {\n const nativeDestinationAudioNode = getNativeAudioNode(output[0]);\n connectNativeAudioNodeToNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output[1], output[2]);\n }\n else {\n const nativeDestinationAudioParam = getNativeAudioParam(output[0]);\n nativeSourceAudioNode.connect(nativeDestinationAudioParam, output[1]);\n }\n }\n }\n }\n else {\n cycleCounters.set(audioNode, cycleCounter - count);\n }\n };\n};\n//# sourceMappingURL=decrement-cycle-counter.js.map","const DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n delayTime: 0,\n maxDelayTime: 1\n};\nexport const createDelayNodeConstructor = (audioNodeConstructor, createAudioParam, createDelayNodeRenderer, createNativeDelayNode, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class DelayNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeDelayNode = createNativeDelayNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const delayNodeRenderer = (isOffline ? createDelayNodeRenderer(mergedOptions.maxDelayTime) : null);\n super(context, false, nativeDelayNode, delayNodeRenderer);\n this._delayTime = createAudioParam(this, isOffline, nativeDelayNode.delayTime);\n setAudioNodeTailTime(this, mergedOptions.maxDelayTime);\n }\n get delayTime() {\n return this._delayTime;\n }\n };\n};\n//# sourceMappingURL=delay-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createDelayNodeRendererFactory = (connectAudioParam, createNativeDelayNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return (maxDelayTime) => {\n const renderedNativeDelayNodes = new WeakMap();\n const createDelayNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeDelayNode = getNativeAudioNode(proxy);\n // If the initially used nativeDelayNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeDelayNodeIsOwnedByContext = isOwnedByContext(nativeDelayNode, nativeOfflineAudioContext);\n if (!nativeDelayNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeDelayNode.channelCount,\n channelCountMode: nativeDelayNode.channelCountMode,\n channelInterpretation: nativeDelayNode.channelInterpretation,\n delayTime: nativeDelayNode.delayTime.value,\n maxDelayTime\n };\n nativeDelayNode = createNativeDelayNode(nativeOfflineAudioContext, options);\n }\n renderedNativeDelayNodes.set(nativeOfflineAudioContext, nativeDelayNode);\n if (!nativeDelayNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.delayTime, nativeDelayNode.delayTime);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.delayTime, nativeDelayNode.delayTime);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeDelayNode);\n return nativeDelayNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeDelayNode = renderedNativeDelayNodes.get(nativeOfflineAudioContext);\n if (renderedNativeDelayNode !== undefined) {\n return Promise.resolve(renderedNativeDelayNode);\n }\n return createDelayNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=delay-node-renderer-factory.js.map","export const createDeleteActiveInputConnectionToAudioNode = (pickElementFromSet) => {\n return (activeInputs, source, output, input) => {\n return pickElementFromSet(activeInputs[input], (activeInputConnection) => activeInputConnection[0] === source && activeInputConnection[1] === output);\n };\n};\n//# sourceMappingURL=delete-active-input-connection-to-audio-node.js.map","export const createDeleteUnrenderedAudioWorkletNode = (getUnrenderedAudioWorkletNodes) => {\n return (nativeContext, audioWorkletNode) => {\n getUnrenderedAudioWorkletNodes(nativeContext).delete(audioWorkletNode);\n };\n};\n//# sourceMappingURL=delete-unrendered-audio-worklet-node.js.map","export const isDelayNode = (audioNode) => {\n return 'delayTime' in audioNode;\n};\n//# sourceMappingURL=delay-node.js.map","import { isAudioNode } from '../guards/audio-node';\nimport { isDelayNode } from '../guards/delay-node';\nexport const createDetectCycles = (audioParamAudioNodeStore, getAudioNodeConnections, getValueForKey) => {\n return function detectCycles(chain, nextLink) {\n const audioNode = isAudioNode(nextLink) ? nextLink : getValueForKey(audioParamAudioNodeStore, nextLink);\n if (isDelayNode(audioNode)) {\n return [];\n }\n if (chain[0] === audioNode) {\n return [chain];\n }\n if (chain.includes(audioNode)) {\n return [];\n }\n const { outputs } = getAudioNodeConnections(audioNode);\n return Array.from(outputs)\n .map((outputConnection) => detectCycles([...chain, audioNode], outputConnection[0]))\n .reduce((mergedCycles, nestedCycles) => mergedCycles.concat(nestedCycles), []);\n };\n};\n//# sourceMappingURL=detect-cycles.js.map","import { isNativeAudioNode } from '../guards/native-audio-node';\nconst getOutputAudioNodeAtIndex = (createIndexSizeError, outputAudioNodes, output) => {\n const outputAudioNode = outputAudioNodes[output];\n if (outputAudioNode === undefined) {\n throw createIndexSizeError();\n }\n return outputAudioNode;\n};\nexport const createDisconnectMultipleOutputs = (createIndexSizeError) => {\n return (outputAudioNodes, destinationOrOutput = undefined, output = undefined, input = 0) => {\n if (destinationOrOutput === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect());\n }\n if (typeof destinationOrOutput === 'number') {\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, destinationOrOutput).disconnect();\n }\n if (isNativeAudioNode(destinationOrOutput)) {\n if (output === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect(destinationOrOutput));\n }\n if (input === undefined) {\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0);\n }\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0, input);\n }\n if (output === undefined) {\n return outputAudioNodes.forEach((outputAudioNode) => outputAudioNode.disconnect(destinationOrOutput));\n }\n return getOutputAudioNodeAtIndex(createIndexSizeError, outputAudioNodes, output).disconnect(destinationOrOutput, 0);\n };\n};\n//# sourceMappingURL=disconnect-multiple-outputs.js.map","const DEFAULT_OPTIONS = {\n attack: 0.003,\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n knee: 30,\n ratio: 12,\n release: 0.25,\n threshold: -24\n};\nexport const createDynamicsCompressorNodeConstructor = (audioNodeConstructor, createAudioParam, createDynamicsCompressorNodeRenderer, createNativeDynamicsCompressorNode, createNotSupportedError, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class DynamicsCompressorNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeDynamicsCompressorNode = createNativeDynamicsCompressorNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const dynamicsCompressorNodeRenderer = (isOffline ? createDynamicsCompressorNodeRenderer() : null);\n super(context, false, nativeDynamicsCompressorNode, dynamicsCompressorNodeRenderer);\n this._attack = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.attack);\n this._knee = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.knee);\n this._nativeDynamicsCompressorNode = nativeDynamicsCompressorNode;\n this._ratio = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.ratio);\n this._release = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.release);\n this._threshold = createAudioParam(this, isOffline, nativeDynamicsCompressorNode.threshold);\n setAudioNodeTailTime(this, 0.006);\n }\n get attack() {\n return this._attack;\n }\n // Bug #108: Safari allows a channelCount of three and above which is why the getter and setter needs to be overwritten here.\n get channelCount() {\n return this._nativeDynamicsCompressorNode.channelCount;\n }\n set channelCount(value) {\n const previousChannelCount = this._nativeDynamicsCompressorNode.channelCount;\n this._nativeDynamicsCompressorNode.channelCount = value;\n if (value > 2) {\n this._nativeDynamicsCompressorNode.channelCount = previousChannelCount;\n throw createNotSupportedError();\n }\n }\n /*\n * Bug #109: Only Chrome, Firefox and Opera disallow a channelCountMode of 'max' yet which is why the getter and setter needs to be\n * overwritten here.\n */\n get channelCountMode() {\n return this._nativeDynamicsCompressorNode.channelCountMode;\n }\n set channelCountMode(value) {\n const previousChannelCount = this._nativeDynamicsCompressorNode.channelCountMode;\n this._nativeDynamicsCompressorNode.channelCountMode = value;\n if (value === 'max') {\n this._nativeDynamicsCompressorNode.channelCountMode = previousChannelCount;\n throw createNotSupportedError();\n }\n }\n get knee() {\n return this._knee;\n }\n get ratio() {\n return this._ratio;\n }\n get reduction() {\n // Bug #111: Safari returns an AudioParam instead of a number.\n if (typeof this._nativeDynamicsCompressorNode.reduction.value === 'number') {\n return this._nativeDynamicsCompressorNode.reduction.value;\n }\n return this._nativeDynamicsCompressorNode.reduction;\n }\n get release() {\n return this._release;\n }\n get threshold() {\n return this._threshold;\n }\n };\n};\n//# sourceMappingURL=dynamics-compressor-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createDynamicsCompressorNodeRendererFactory = (connectAudioParam, createNativeDynamicsCompressorNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeDynamicsCompressorNodes = new WeakMap();\n const createDynamicsCompressorNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeDynamicsCompressorNode = getNativeAudioNode(proxy);\n /*\n * If the initially used nativeDynamicsCompressorNode was not constructed on the same OfflineAudioContext it needs to be\n * created again.\n */\n const nativeDynamicsCompressorNodeIsOwnedByContext = isOwnedByContext(nativeDynamicsCompressorNode, nativeOfflineAudioContext);\n if (!nativeDynamicsCompressorNodeIsOwnedByContext) {\n const options = {\n attack: nativeDynamicsCompressorNode.attack.value,\n channelCount: nativeDynamicsCompressorNode.channelCount,\n channelCountMode: nativeDynamicsCompressorNode.channelCountMode,\n channelInterpretation: nativeDynamicsCompressorNode.channelInterpretation,\n knee: nativeDynamicsCompressorNode.knee.value,\n ratio: nativeDynamicsCompressorNode.ratio.value,\n release: nativeDynamicsCompressorNode.release.value,\n threshold: nativeDynamicsCompressorNode.threshold.value\n };\n nativeDynamicsCompressorNode = createNativeDynamicsCompressorNode(nativeOfflineAudioContext, options);\n }\n renderedNativeDynamicsCompressorNodes.set(nativeOfflineAudioContext, nativeDynamicsCompressorNode);\n if (!nativeDynamicsCompressorNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.attack, nativeDynamicsCompressorNode.attack);\n await renderAutomation(nativeOfflineAudioContext, proxy.knee, nativeDynamicsCompressorNode.knee);\n await renderAutomation(nativeOfflineAudioContext, proxy.ratio, nativeDynamicsCompressorNode.ratio);\n await renderAutomation(nativeOfflineAudioContext, proxy.release, nativeDynamicsCompressorNode.release);\n await renderAutomation(nativeOfflineAudioContext, proxy.threshold, nativeDynamicsCompressorNode.threshold);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.attack, nativeDynamicsCompressorNode.attack);\n await connectAudioParam(nativeOfflineAudioContext, proxy.knee, nativeDynamicsCompressorNode.knee);\n await connectAudioParam(nativeOfflineAudioContext, proxy.ratio, nativeDynamicsCompressorNode.ratio);\n await connectAudioParam(nativeOfflineAudioContext, proxy.release, nativeDynamicsCompressorNode.release);\n await connectAudioParam(nativeOfflineAudioContext, proxy.threshold, nativeDynamicsCompressorNode.threshold);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeDynamicsCompressorNode);\n return nativeDynamicsCompressorNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeDynamicsCompressorNode = renderedNativeDynamicsCompressorNodes.get(nativeOfflineAudioContext);\n if (renderedNativeDynamicsCompressorNode !== undefined) {\n return Promise.resolve(renderedNativeDynamicsCompressorNode);\n }\n return createDynamicsCompressorNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=dynamics-compressor-node-renderer-factory.js.map","export const createEncodingError = () => new DOMException('', 'EncodingError');\n//# sourceMappingURL=encoding-error.js.map","export const createEvaluateSource = (window) => {\n return (source) => new Promise((resolve, reject) => {\n if (window === null) {\n // Bug #182 Chrome, Edge and Opera do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n return;\n }\n const head = window.document.head;\n if (head === null) {\n // Bug #182 Chrome, Edge and Opera do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n }\n else {\n const script = window.document.createElement('script');\n // @todo Safari doesn't like URLs with a type of 'application/javascript; charset=utf-8'.\n const blob = new Blob([source], { type: 'application/javascript' });\n const url = URL.createObjectURL(blob);\n const originalOnErrorHandler = window.onerror;\n const removeErrorEventListenerAndRevokeUrl = () => {\n window.onerror = originalOnErrorHandler;\n URL.revokeObjectURL(url);\n };\n window.onerror = (message, src, lineno, colno, error) => {\n // @todo Edge thinks the source is the one of the html document.\n if (src === url || (src === window.location.href && lineno === 1 && colno === 1)) {\n removeErrorEventListenerAndRevokeUrl();\n reject(error);\n return false;\n }\n if (originalOnErrorHandler !== null) {\n return originalOnErrorHandler(message, src, lineno, colno, error);\n }\n };\n script.onerror = () => {\n removeErrorEventListenerAndRevokeUrl();\n // Bug #182 Chrome, Edge and Opera do throw an instance of a SyntaxError instead of a DOMException.\n reject(new SyntaxError());\n };\n script.onload = () => {\n removeErrorEventListenerAndRevokeUrl();\n resolve();\n };\n script.src = url;\n script.type = 'module';\n head.appendChild(script);\n }\n });\n};\n//# sourceMappingURL=evaluate-source.js.map","export const createEventTargetConstructor = (wrapEventListener) => {\n return class EventTarget {\n constructor(_nativeEventTarget) {\n this._nativeEventTarget = _nativeEventTarget;\n this._listeners = new WeakMap();\n }\n addEventListener(type, listener, options) {\n if (listener !== null) {\n let wrappedEventListener = this._listeners.get(listener);\n if (wrappedEventListener === undefined) {\n wrappedEventListener = wrapEventListener(this, listener);\n if (typeof listener === 'function') {\n this._listeners.set(listener, wrappedEventListener);\n }\n }\n this._nativeEventTarget.addEventListener(type, wrappedEventListener, options);\n }\n }\n dispatchEvent(event) {\n return this._nativeEventTarget.dispatchEvent(event);\n }\n removeEventListener(type, listener, options) {\n const wrappedEventListener = listener === null ? undefined : this._listeners.get(listener);\n this._nativeEventTarget.removeEventListener(type, wrappedEventListener === undefined ? null : wrappedEventListener, options);\n }\n };\n};\n//# sourceMappingURL=event-target-constructor.js.map","export const createExposeCurrentFrameAndCurrentTime = (window) => {\n return (currentTime, sampleRate, fn) => {\n Object.defineProperties(window, {\n currentFrame: {\n configurable: true,\n get() {\n return Math.round(currentTime * sampleRate);\n }\n },\n currentTime: {\n configurable: true,\n get() {\n return currentTime;\n }\n }\n });\n try {\n return fn();\n }\n finally {\n if (window !== null) {\n delete window.currentFrame;\n delete window.currentTime;\n }\n }\n };\n};\n//# sourceMappingURL=expose-current-frame-and-current-time.js.map","export const createFetchSource = (createAbortError) => {\n return async (url) => {\n try {\n const response = await fetch(url);\n if (response.ok) {\n return [await response.text(), response.url];\n }\n }\n catch {\n // Ignore errors.\n } // tslint:disable-line:no-empty\n throw createAbortError();\n };\n};\n//# sourceMappingURL=fetch-source.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n gain: 1\n};\nexport const createGainNodeConstructor = (audioNodeConstructor, createAudioParam, createGainNodeRenderer, createNativeGainNode, getNativeContext, isNativeOfflineAudioContext) => {\n return class GainNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeGainNode = createNativeGainNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const gainNodeRenderer = (isOffline ? createGainNodeRenderer() : null);\n super(context, false, nativeGainNode, gainNodeRenderer);\n // Bug #74: Safari does not export the correct values for maxValue and minValue.\n this._gain = createAudioParam(this, isOffline, nativeGainNode.gain, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n }\n get gain() {\n return this._gain;\n }\n };\n};\n//# sourceMappingURL=gain-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createGainNodeRendererFactory = (connectAudioParam, createNativeGainNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeGainNodes = new WeakMap();\n const createGainNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeGainNode = getNativeAudioNode(proxy);\n // If the initially used nativeGainNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeGainNodeIsOwnedByContext = isOwnedByContext(nativeGainNode, nativeOfflineAudioContext);\n if (!nativeGainNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeGainNode.channelCount,\n channelCountMode: nativeGainNode.channelCountMode,\n channelInterpretation: nativeGainNode.channelInterpretation,\n gain: nativeGainNode.gain.value\n };\n nativeGainNode = createNativeGainNode(nativeOfflineAudioContext, options);\n }\n renderedNativeGainNodes.set(nativeOfflineAudioContext, nativeGainNode);\n if (!nativeGainNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.gain, nativeGainNode.gain);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.gain, nativeGainNode.gain);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeGainNode);\n return nativeGainNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeGainNode = renderedNativeGainNodes.get(nativeOfflineAudioContext);\n if (renderedNativeGainNode !== undefined) {\n return Promise.resolve(renderedNativeGainNode);\n }\n return createGainNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=gain-node-renderer-factory.js.map","export const createGetActiveAudioWorkletNodeInputs = (activeAudioWorkletNodeInputsStore, getValueForKey) => {\n return (nativeAudioWorkletNode) => getValueForKey(activeAudioWorkletNodeInputsStore, nativeAudioWorkletNode);\n};\n//# sourceMappingURL=get-active-audio-worklet-node-inputs.js.map","export const createGetAudioNodeRenderer = (getAudioNodeConnections) => {\n return (audioNode) => {\n const audioNodeConnections = getAudioNodeConnections(audioNode);\n if (audioNodeConnections.renderer === null) {\n throw new Error('Missing the renderer of the given AudioNode in the audio graph.');\n }\n return audioNodeConnections.renderer;\n };\n};\n//# sourceMappingURL=get-audio-node-renderer.js.map","export const createGetAudioNodeTailTime = (audioNodeTailTimeStore) => {\n return (audioNode) => { var _a; return (_a = audioNodeTailTimeStore.get(audioNode)) !== null && _a !== void 0 ? _a : 0; };\n};\n//# sourceMappingURL=get-audio-node-tail-time.js.map","export const createGetAudioParamRenderer = (getAudioParamConnections) => {\n return (audioParam) => {\n const audioParamConnections = getAudioParamConnections(audioParam);\n if (audioParamConnections.renderer === null) {\n throw new Error('Missing the renderer of the given AudioParam in the audio graph.');\n }\n return audioParamConnections.renderer;\n };\n};\n//# sourceMappingURL=get-audio-param-renderer.js.map","export const createGetBackupOfflineAudioContext = (backupOfflineAudioContextStore) => {\n return (nativeContext) => {\n return backupOfflineAudioContextStore.get(nativeContext);\n };\n};\n//# sourceMappingURL=get-backup-offline-audio-context.js.map","export const createInvalidStateError = () => new DOMException('', 'InvalidStateError');\n//# sourceMappingURL=invalid-state-error.js.map","import { createInvalidStateError } from './invalid-state-error';\nexport const createGetNativeContext = (contextStore) => {\n return (context) => {\n const nativeContext = contextStore.get(context);\n if (nativeContext === undefined) {\n throw createInvalidStateError();\n }\n return (nativeContext);\n };\n};\n//# sourceMappingURL=get-native-context.js.map","export const createGetOrCreateBackupOfflineAudioContext = (backupOfflineAudioContextStore, nativeOfflineAudioContextConstructor) => {\n return (nativeContext) => {\n let backupOfflineAudioContext = backupOfflineAudioContextStore.get(nativeContext);\n if (backupOfflineAudioContext !== undefined) {\n return backupOfflineAudioContext;\n }\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n // Bug #141: Safari does not support creating an OfflineAudioContext with less than 44100 Hz.\n backupOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n backupOfflineAudioContextStore.set(nativeContext, backupOfflineAudioContext);\n return backupOfflineAudioContext;\n };\n};\n//# sourceMappingURL=get-or-create-backup-offline-audio-context.js.map","export const createGetUnrenderedAudioWorkletNodes = (unrenderedAudioWorkletNodeStore) => {\n return (nativeContext) => {\n const unrenderedAudioWorkletNodes = unrenderedAudioWorkletNodeStore.get(nativeContext);\n if (unrenderedAudioWorkletNodes === undefined) {\n throw new Error('The context has no set of AudioWorkletNodes.');\n }\n return unrenderedAudioWorkletNodes;\n };\n};\n//# sourceMappingURL=get-unrendered-audio-worklet-nodes.js.map","export const createInvalidAccessError = () => new DOMException('', 'InvalidAccessError');\n//# sourceMappingURL=invalid-access-error.js.map","import { createInvalidAccessError } from '../factories/invalid-access-error';\nexport const wrapIIRFilterNodeGetFrequencyResponseMethod = (nativeIIRFilterNode) => {\n nativeIIRFilterNode.getFrequencyResponse = ((getFrequencyResponse) => {\n return (frequencyHz, magResponse, phaseResponse) => {\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n return getFrequencyResponse.call(nativeIIRFilterNode, frequencyHz, magResponse, phaseResponse);\n };\n })(nativeIIRFilterNode.getFrequencyResponse);\n};\n//# sourceMappingURL=wrap-iir-filter-node-get-frequency-response-method.js.map","import { wrapIIRFilterNodeGetFrequencyResponseMethod } from '../helpers/wrap-iir-filter-node-get-frequency-response-method';\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers'\n};\nexport const createIIRFilterNodeConstructor = (audioNodeConstructor, createNativeIIRFilterNode, createIIRFilterNodeRenderer, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class IIRFilterNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeIIRFilterNode = createNativeIIRFilterNode(nativeContext, isOffline ? null : context.baseLatency, mergedOptions);\n const iirFilterNodeRenderer = ((isOffline ? createIIRFilterNodeRenderer(mergedOptions.feedback, mergedOptions.feedforward) : null));\n super(context, false, nativeIIRFilterNode, iirFilterNodeRenderer);\n // Bug #23 & #24: FirefoxDeveloper does not throw an InvalidAccessError.\n // @todo Write a test which allows other browsers to remain unpatched.\n wrapIIRFilterNodeGetFrequencyResponseMethod(nativeIIRFilterNode);\n this._nativeIIRFilterNode = nativeIIRFilterNode;\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n getFrequencyResponse(frequencyHz, magResponse, phaseResponse) {\n return this._nativeIIRFilterNode.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);\n }\n };\n};\n//# sourceMappingURL=iir-filter-node-constructor.js.map","// This implementation as shamelessly inspired by source code of\n// tslint:disable-next-line:max-line-length\n// {@link https://chromium.googlesource.com/chromium/src.git/+/master/third_party/WebKit/Source/platform/audio/IIRFilter.cpp|Chromium's IIRFilter}.\nexport const filterBuffer = (feedback, feedbackLength, feedforward, feedforwardLength, minLength, xBuffer, yBuffer, bufferIndex, bufferLength, input, output) => {\n const inputLength = input.length;\n let i = bufferIndex;\n for (let j = 0; j < inputLength; j += 1) {\n let y = feedforward[0] * input[j];\n for (let k = 1; k < minLength; k += 1) {\n const x = (i - k) & (bufferLength - 1); // tslint:disable-line:no-bitwise\n y += feedforward[k] * xBuffer[x];\n y -= feedback[k] * yBuffer[x];\n }\n for (let k = minLength; k < feedforwardLength; k += 1) {\n y += feedforward[k] * xBuffer[(i - k) & (bufferLength - 1)]; // tslint:disable-line:no-bitwise\n }\n for (let k = minLength; k < feedbackLength; k += 1) {\n y -= feedback[k] * yBuffer[(i - k) & (bufferLength - 1)]; // tslint:disable-line:no-bitwise\n }\n xBuffer[i] = input[j];\n yBuffer[i] = y;\n i = (i + 1) & (bufferLength - 1); // tslint:disable-line:no-bitwise\n output[j] = y;\n }\n return i;\n};\n//# sourceMappingURL=filter-buffer.js.map","import { filterBuffer } from '../helpers/filter-buffer';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nconst filterFullBuffer = (renderedBuffer, nativeOfflineAudioContext, feedback, feedforward) => {\n const convertedFeedback = feedback instanceof Float64Array ? feedback : new Float64Array(feedback);\n const convertedFeedforward = feedforward instanceof Float64Array ? feedforward : new Float64Array(feedforward);\n const feedbackLength = convertedFeedback.length;\n const feedforwardLength = convertedFeedforward.length;\n const minLength = Math.min(feedbackLength, feedforwardLength);\n if (convertedFeedback[0] !== 1) {\n for (let i = 0; i < feedbackLength; i += 1) {\n convertedFeedforward[i] /= convertedFeedback[0];\n }\n for (let i = 1; i < feedforwardLength; i += 1) {\n convertedFeedback[i] /= convertedFeedback[0];\n }\n }\n const bufferLength = 32;\n const xBuffer = new Float32Array(bufferLength);\n const yBuffer = new Float32Array(bufferLength);\n const filteredBuffer = nativeOfflineAudioContext.createBuffer(renderedBuffer.numberOfChannels, renderedBuffer.length, renderedBuffer.sampleRate);\n const numberOfChannels = renderedBuffer.numberOfChannels;\n for (let i = 0; i < numberOfChannels; i += 1) {\n const input = renderedBuffer.getChannelData(i);\n const output = filteredBuffer.getChannelData(i);\n xBuffer.fill(0);\n yBuffer.fill(0);\n filterBuffer(convertedFeedback, feedbackLength, convertedFeedforward, feedforwardLength, minLength, xBuffer, yBuffer, 0, bufferLength, input, output);\n }\n return filteredBuffer;\n};\nexport const createIIRFilterNodeRendererFactory = (createNativeAudioBufferSourceNode, getNativeAudioNode, nativeOfflineAudioContextConstructor, renderInputsOfAudioNode, renderNativeOfflineAudioContext) => {\n return (feedback, feedforward) => {\n const renderedNativeAudioNodes = new WeakMap();\n let filteredBufferPromise = null;\n const createAudioNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeAudioBufferSourceNode = null;\n let nativeIIRFilterNode = getNativeAudioNode(proxy);\n // If the initially used nativeIIRFilterNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeIIRFilterNodeIsOwnedByContext = isOwnedByContext(nativeIIRFilterNode, nativeOfflineAudioContext);\n // Bug #9: Safari does not support IIRFilterNodes.\n if (nativeOfflineAudioContext.createIIRFilter === undefined) {\n nativeAudioBufferSourceNode = createNativeAudioBufferSourceNode(nativeOfflineAudioContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n }\n else if (!nativeIIRFilterNodeIsOwnedByContext) {\n // @todo TypeScript defines the parameters of createIIRFilter() as arrays of numbers.\n nativeIIRFilterNode = nativeOfflineAudioContext.createIIRFilter(feedforward, feedback);\n }\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeAudioBufferSourceNode === null ? nativeIIRFilterNode : nativeAudioBufferSourceNode);\n if (nativeAudioBufferSourceNode !== null) {\n if (filteredBufferPromise === null) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(\n // Bug #47: The AudioDestinationNode in Safari gets not initialized correctly.\n proxy.context.destination.channelCount, \n // Bug #17: Safari does not yet expose the length.\n proxy.context.length, nativeOfflineAudioContext.sampleRate);\n filteredBufferPromise = (async () => {\n await renderInputsOfAudioNode(proxy, partialOfflineAudioContext, partialOfflineAudioContext.destination);\n const renderedBuffer = await renderNativeOfflineAudioContext(partialOfflineAudioContext);\n return filterFullBuffer(renderedBuffer, nativeOfflineAudioContext, feedback, feedforward);\n })();\n }\n const filteredBuffer = await filteredBufferPromise;\n nativeAudioBufferSourceNode.buffer = filteredBuffer;\n nativeAudioBufferSourceNode.start(0);\n return nativeAudioBufferSourceNode;\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeIIRFilterNode);\n return nativeIIRFilterNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeAudioNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n if (renderedNativeAudioNode !== undefined) {\n return Promise.resolve(renderedNativeAudioNode);\n }\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=iir-filter-node-renderer-factory.js.map","import { isAudioNodeOutputConnection } from '../guards/audio-node-output-connection';\nexport const createIncrementCycleCounterFactory = (cycleCounters, disconnectNativeAudioNodeFromNativeAudioNode, getAudioNodeConnections, getNativeAudioNode, getNativeAudioParam, isActiveAudioNode) => {\n return (isOffline) => {\n return (audioNode, count) => {\n const cycleCounter = cycleCounters.get(audioNode);\n if (cycleCounter === undefined) {\n if (!isOffline && isActiveAudioNode(audioNode)) {\n const nativeSourceAudioNode = getNativeAudioNode(audioNode);\n const { outputs } = getAudioNodeConnections(audioNode);\n for (const output of outputs) {\n if (isAudioNodeOutputConnection(output)) {\n const nativeDestinationAudioNode = getNativeAudioNode(output[0]);\n disconnectNativeAudioNodeFromNativeAudioNode(nativeSourceAudioNode, nativeDestinationAudioNode, output[1], output[2]);\n }\n else {\n const nativeDestinationAudioParam = getNativeAudioParam(output[0]);\n nativeSourceAudioNode.disconnect(nativeDestinationAudioParam, output[1]);\n }\n }\n }\n cycleCounters.set(audioNode, count);\n }\n else {\n cycleCounters.set(audioNode, cycleCounter + count);\n }\n };\n };\n};\n//# sourceMappingURL=increment-cycle-counter-factory.js.map","export const createIsAnyAudioContext = (contextStore, isNativeAudioContext) => {\n return (anything) => {\n const nativeContext = contextStore.get(anything);\n return isNativeAudioContext(nativeContext) || isNativeAudioContext(anything);\n };\n};\n//# sourceMappingURL=is-any-audio-context.js.map","export const createIsAnyAudioNode = (audioNodeStore, isNativeAudioNode) => {\n return (anything) => audioNodeStore.has(anything) || isNativeAudioNode(anything);\n};\n//# sourceMappingURL=is-any-audio-node.js.map","export const createIsAnyAudioParam = (audioParamStore, isNativeAudioParam) => {\n return (anything) => audioParamStore.has(anything) || isNativeAudioParam(anything);\n};\n//# sourceMappingURL=is-any-audio-param.js.map","export const createIsAnyOfflineAudioContext = (contextStore, isNativeOfflineAudioContext) => {\n return (anything) => {\n const nativeContext = contextStore.get(anything);\n return isNativeOfflineAudioContext(nativeContext) || isNativeOfflineAudioContext(anything);\n };\n};\n//# sourceMappingURL=is-any-offline-audio-context.js.map","export const createIsNativeAudioContext = (nativeAudioContextConstructor) => {\n return (anything) => {\n return nativeAudioContextConstructor !== null && anything instanceof nativeAudioContextConstructor;\n };\n};\n//# sourceMappingURL=is-native-audio-context.js.map","export const createIsNativeAudioNode = (window) => {\n return (anything) => {\n return window !== null && typeof window.AudioNode === 'function' && anything instanceof window.AudioNode;\n };\n};\n//# sourceMappingURL=is-native-audio-node.js.map","export const createIsNativeAudioParam = (window) => {\n return (anything) => {\n return window !== null && typeof window.AudioParam === 'function' && anything instanceof window.AudioParam;\n };\n};\n//# sourceMappingURL=is-native-audio-param.js.map","export const createIsNativeContext = (isNativeAudioContext, isNativeOfflineAudioContext) => {\n return (anything) => {\n return isNativeAudioContext(anything) || isNativeOfflineAudioContext(anything);\n };\n};\n//# sourceMappingURL=is-native-context.js.map","export const createIsNativeOfflineAudioContext = (nativeOfflineAudioContextConstructor) => {\n return (anything) => {\n return nativeOfflineAudioContextConstructor !== null && anything instanceof nativeOfflineAudioContextConstructor;\n };\n};\n//# sourceMappingURL=is-native-offline-audio-context.js.map","export const createIsSecureContext = (window) => window !== null && window.isSecureContext;\n//# sourceMappingURL=is-secure-context.js.map","export const createMediaElementAudioSourceNodeConstructor = (audioNodeConstructor, createNativeMediaElementAudioSourceNode, getNativeContext, isNativeOfflineAudioContext) => {\n return class MediaElementAudioSourceNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const nativeMediaElementAudioSourceNode = createNativeMediaElementAudioSourceNode(nativeContext, options);\n // Bug #171: Safari allows to create a MediaElementAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw TypeError();\n }\n super(context, true, nativeMediaElementAudioSourceNode, null);\n this._nativeMediaElementAudioSourceNode = nativeMediaElementAudioSourceNode;\n }\n get mediaElement() {\n return this._nativeMediaElementAudioSourceNode.mediaElement;\n }\n };\n};\n//# sourceMappingURL=media-element-audio-source-node-constructor.js.map","const DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers'\n};\nexport const createMediaStreamAudioDestinationNodeConstructor = (audioNodeConstructor, createNativeMediaStreamAudioDestinationNode, getNativeContext, isNativeOfflineAudioContext) => {\n return class MediaStreamAudioDestinationNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n // Bug #173: Safari allows to create a MediaStreamAudioDestinationNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw new TypeError();\n }\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeMediaStreamAudioDestinationNode = createNativeMediaStreamAudioDestinationNode(nativeContext, mergedOptions);\n super(context, false, nativeMediaStreamAudioDestinationNode, null);\n this._nativeMediaStreamAudioDestinationNode = nativeMediaStreamAudioDestinationNode;\n }\n get stream() {\n return this._nativeMediaStreamAudioDestinationNode.stream;\n }\n };\n};\n//# sourceMappingURL=media-stream-audio-destination-node-constructor.js.map","export const createMediaStreamAudioSourceNodeConstructor = (audioNodeConstructor, createNativeMediaStreamAudioSourceNode, getNativeContext, isNativeOfflineAudioContext) => {\n return class MediaStreamAudioSourceNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const nativeMediaStreamAudioSourceNode = createNativeMediaStreamAudioSourceNode(nativeContext, options);\n // Bug #172: Safari allows to create a MediaStreamAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeContext)) {\n throw new TypeError();\n }\n super(context, true, nativeMediaStreamAudioSourceNode, null);\n this._nativeMediaStreamAudioSourceNode = nativeMediaStreamAudioSourceNode;\n }\n get mediaStream() {\n return this._nativeMediaStreamAudioSourceNode.mediaStream;\n }\n };\n};\n//# sourceMappingURL=media-stream-audio-source-node-constructor.js.map","export const createMediaStreamTrackAudioSourceNodeConstructor = (audioNodeConstructor, createNativeMediaStreamTrackAudioSourceNode, getNativeContext) => {\n return class MediaStreamTrackAudioSourceNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const nativeMediaStreamTrackAudioSourceNode = createNativeMediaStreamTrackAudioSourceNode(nativeContext, options);\n super(context, true, nativeMediaStreamTrackAudioSourceNode, null);\n }\n };\n};\n//# sourceMappingURL=media-stream-track-audio-source-node-constructor.js.map","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { isValidLatencyHint } from '../helpers/is-valid-latency-hint';\nexport const createMinimalAudioContextConstructor = (createInvalidStateError, createNotSupportedError, createUnknownError, minimalBaseAudioContextConstructor, nativeAudioContextConstructor) => {\n return class MinimalAudioContext extends minimalBaseAudioContextConstructor {\n constructor(options = {}) {\n if (nativeAudioContextConstructor === null) {\n throw new Error('Missing the native AudioContext constructor.');\n }\n let nativeAudioContext;\n try {\n nativeAudioContext = new nativeAudioContextConstructor(options);\n }\n catch (err) {\n // Bug #192 Safari does throw a SyntaxError if the sampleRate is not supported.\n if (err.code === 12 && err.message === 'sampleRate is not in range') {\n throw createNotSupportedError();\n }\n throw err;\n }\n // Bug #131 Safari returns null when there are four other AudioContexts running already.\n if (nativeAudioContext === null) {\n throw createUnknownError();\n }\n // Bug #51 Only Chrome Edge, and Opera throw an error if the given latencyHint is invalid.\n if (!isValidLatencyHint(options.latencyHint)) {\n throw new TypeError(`The provided value '${options.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);\n }\n // Bug #150 Safari does not support setting the sampleRate.\n if (options.sampleRate !== undefined && nativeAudioContext.sampleRate !== options.sampleRate) {\n throw createNotSupportedError();\n }\n super(nativeAudioContext, 2);\n const { latencyHint } = options;\n const { sampleRate } = nativeAudioContext;\n // @todo The values for 'balanced', 'interactive' and 'playback' are just copied from Chrome's implementation.\n this._baseLatency =\n typeof nativeAudioContext.baseLatency === 'number'\n ? nativeAudioContext.baseLatency\n : latencyHint === 'balanced'\n ? 512 / sampleRate\n : latencyHint === 'interactive' || latencyHint === undefined\n ? 256 / sampleRate\n : latencyHint === 'playback'\n ? 1024 / sampleRate\n : /*\n * @todo The min (256) and max (16384) values are taken from the allowed bufferSize values of a\n * ScriptProcessorNode.\n */\n (Math.max(2, Math.min(128, Math.round((latencyHint * sampleRate) / 128))) * 128) / sampleRate;\n this._nativeAudioContext = nativeAudioContext;\n // Bug #188: Safari will set the context's state to 'interrupted' in case the user switches tabs.\n if (nativeAudioContextConstructor.name === 'webkitAudioContext') {\n this._nativeGainNode = nativeAudioContext.createGain();\n this._nativeOscillatorNode = nativeAudioContext.createOscillator();\n this._nativeGainNode.gain.value = 1e-37;\n this._nativeOscillatorNode.connect(this._nativeGainNode).connect(nativeAudioContext.destination);\n this._nativeOscillatorNode.start();\n }\n else {\n this._nativeGainNode = null;\n this._nativeOscillatorNode = null;\n }\n this._state = null;\n /*\n * Bug #34: Chrome, Edge and Opera pretend to be running right away, but fire an onstatechange event when the state actually\n * changes to 'running'.\n */\n if (nativeAudioContext.state === 'running') {\n this._state = 'suspended';\n const revokeState = () => {\n if (this._state === 'suspended') {\n this._state = null;\n }\n nativeAudioContext.removeEventListener('statechange', revokeState);\n };\n nativeAudioContext.addEventListener('statechange', revokeState);\n }\n }\n get baseLatency() {\n return this._baseLatency;\n }\n get state() {\n return this._state !== null ? this._state : this._nativeAudioContext.state;\n }\n close() {\n // Bug #35: Firefox does not throw an error if the AudioContext was closed before.\n if (this.state === 'closed') {\n return this._nativeAudioContext.close().then(() => {\n throw createInvalidStateError();\n });\n }\n // Bug #34: If the state was set to suspended before it should be revoked now.\n if (this._state === 'suspended') {\n this._state = null;\n }\n return this._nativeAudioContext.close().then(() => {\n if (this._nativeGainNode !== null && this._nativeOscillatorNode !== null) {\n this._nativeOscillatorNode.stop();\n this._nativeGainNode.disconnect();\n this._nativeOscillatorNode.disconnect();\n }\n deactivateAudioGraph(this);\n });\n }\n resume() {\n if (this._state === 'suspended') {\n return new Promise((resolve, reject) => {\n const resolvePromise = () => {\n this._nativeAudioContext.removeEventListener('statechange', resolvePromise);\n if (this._nativeAudioContext.state === 'running') {\n resolve();\n }\n else {\n this.resume().then(resolve, reject);\n }\n };\n this._nativeAudioContext.addEventListener('statechange', resolvePromise);\n });\n }\n return this._nativeAudioContext.resume().catch((err) => {\n // Bug #55: Chrome, Edge and Opera do throw an InvalidAccessError instead of an InvalidStateError.\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined || err.code === 15) {\n throw createInvalidStateError();\n }\n throw err;\n });\n }\n suspend() {\n return this._nativeAudioContext.suspend().catch((err) => {\n // Bug #56: Safari invokes the catch handler but without an error.\n if (err === undefined) {\n throw createInvalidStateError();\n }\n throw err;\n });\n }\n };\n};\n//# sourceMappingURL=minimal-audio-context-constructor.js.map","import { CONTEXT_STORE } from '../globals';\nexport const createMinimalBaseAudioContextConstructor = (audioDestinationNodeConstructor, createAudioListener, eventTargetConstructor, isNativeOfflineAudioContext, unrenderedAudioWorkletNodeStore, wrapEventListener) => {\n return class MinimalBaseAudioContext extends eventTargetConstructor {\n constructor(_nativeContext, numberOfChannels) {\n super(_nativeContext);\n this._nativeContext = _nativeContext;\n CONTEXT_STORE.set(this, _nativeContext);\n if (isNativeOfflineAudioContext(_nativeContext)) {\n unrenderedAudioWorkletNodeStore.set(_nativeContext, new Set());\n }\n this._destination = new audioDestinationNodeConstructor(this, numberOfChannels);\n this._listener = createAudioListener(this, _nativeContext);\n this._onstatechange = null;\n }\n get currentTime() {\n return this._nativeContext.currentTime;\n }\n get destination() {\n return this._destination;\n }\n get listener() {\n return this._listener;\n }\n get onstatechange() {\n return this._onstatechange;\n }\n set onstatechange(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n this._nativeContext.onstatechange = wrappedListener;\n const nativeOnStateChange = this._nativeContext.onstatechange;\n this._onstatechange = nativeOnStateChange !== null && nativeOnStateChange === wrappedListener ? value : nativeOnStateChange;\n }\n get sampleRate() {\n return this._nativeContext.sampleRate;\n }\n get state() {\n return this._nativeContext.state;\n }\n };\n};\n//# sourceMappingURL=minimal-base-audio-context-constructor.js.map","export const testPromiseSupport = (nativeContext) => {\n // This 12 numbers represent the 48 bytes of an empty WAVE file with a single sample.\n const uint32Array = new Uint32Array([1179011410, 40, 1163280727, 544501094, 16, 131073, 44100, 176400, 1048580, 1635017060, 4, 0]);\n try {\n // Bug #1: Safari requires a successCallback.\n const promise = nativeContext.decodeAudioData(uint32Array.buffer, () => {\n // Ignore the success callback.\n });\n if (promise === undefined) {\n return false;\n }\n promise.catch(() => {\n // Ignore rejected errors.\n });\n return true;\n }\n catch {\n // Ignore errors.\n }\n return false;\n};\n//# sourceMappingURL=test-promise-support.js.map","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { testPromiseSupport } from '../helpers/test-promise-support';\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n};\nexport const createMinimalOfflineAudioContextConstructor = (cacheTestResult, createInvalidStateError, createNativeOfflineAudioContext, minimalBaseAudioContextConstructor, startRendering) => {\n return class MinimalOfflineAudioContext extends minimalBaseAudioContextConstructor {\n constructor(options) {\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n const nativeOfflineAudioContext = createNativeOfflineAudioContext(numberOfChannels, length, sampleRate);\n // #21 Safari does not support promises and therefore would fire the statechange event before the promise can be resolved.\n if (!cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n nativeOfflineAudioContext.addEventListener('statechange', (() => {\n let i = 0;\n const delayStateChangeEvent = (event) => {\n if (this._state === 'running') {\n if (i > 0) {\n nativeOfflineAudioContext.removeEventListener('statechange', delayStateChangeEvent);\n event.stopImmediatePropagation();\n this._waitForThePromiseToSettle(event);\n }\n else {\n i += 1;\n }\n }\n };\n return delayStateChangeEvent;\n })());\n }\n super(nativeOfflineAudioContext, numberOfChannels);\n this._length = length;\n this._nativeOfflineAudioContext = nativeOfflineAudioContext;\n this._state = null;\n }\n get length() {\n // Bug #17: Safari does not yet expose the length.\n if (this._nativeOfflineAudioContext.length === undefined) {\n return this._length;\n }\n return this._nativeOfflineAudioContext.length;\n }\n get state() {\n return this._state === null ? this._nativeOfflineAudioContext.state : this._state;\n }\n startRendering() {\n /*\n * Bug #9 & #59: It is theoretically possible that startRendering() will first render a partialOfflineAudioContext. Therefore\n * the state of the nativeOfflineAudioContext might no transition to running immediately.\n */\n if (this._state === 'running') {\n return Promise.reject(createInvalidStateError());\n }\n this._state = 'running';\n return startRendering(this.destination, this._nativeOfflineAudioContext).finally(() => {\n this._state = null;\n deactivateAudioGraph(this);\n });\n }\n _waitForThePromiseToSettle(event) {\n if (this._state === null) {\n this._nativeOfflineAudioContext.dispatchEvent(event);\n }\n else {\n setTimeout(() => this._waitForThePromiseToSettle(event));\n }\n }\n };\n};\n//# sourceMappingURL=minimal-offline-audio-context-constructor.js.map","export const createMonitorConnections = (insertElementInSet, isNativeAudioNode) => {\n return (nativeAudioNode, whenConnected, whenDisconnected) => {\n const connections = new Set();\n nativeAudioNode.connect = ((connect) => {\n // tslint:disable-next-line:invalid-void no-inferrable-types\n return (destination, output = 0, input = 0) => {\n const wasDisconnected = connections.size === 0;\n if (isNativeAudioNode(destination)) {\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n connect.call(nativeAudioNode, destination, output, input);\n insertElementInSet(connections, [destination, output, input], (connection) => connection[0] === destination && connection[1] === output && connection[2] === input, true);\n if (wasDisconnected) {\n whenConnected();\n }\n return destination;\n }\n connect.call(nativeAudioNode, destination, output);\n insertElementInSet(connections, [destination, output], (connection) => connection[0] === destination && connection[1] === output, true);\n if (wasDisconnected) {\n whenConnected();\n }\n return;\n };\n })(nativeAudioNode.connect);\n nativeAudioNode.disconnect = ((disconnect) => {\n return (destinationOrOutput, output, input) => {\n const wasConnected = connections.size > 0;\n if (destinationOrOutput === undefined) {\n disconnect.apply(nativeAudioNode);\n connections.clear();\n }\n else if (typeof destinationOrOutput === 'number') {\n // @todo TypeScript cannot infer the overloaded signature with 1 argument yet.\n disconnect.call(nativeAudioNode, destinationOrOutput);\n for (const connection of connections) {\n if (connection[1] === destinationOrOutput) {\n connections.delete(connection);\n }\n }\n }\n else {\n if (isNativeAudioNode(destinationOrOutput)) {\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n disconnect.call(nativeAudioNode, destinationOrOutput, output, input);\n }\n else {\n // @todo TypeScript cannot infer the overloaded signature with 2 arguments yet.\n disconnect.call(nativeAudioNode, destinationOrOutput, output);\n }\n for (const connection of connections) {\n if (connection[0] === destinationOrOutput &&\n (output === undefined || connection[1] === output) &&\n (input === undefined || connection[2] === input)) {\n connections.delete(connection);\n }\n }\n }\n const isDisconnected = connections.size === 0;\n if (wasConnected && isDisconnected) {\n whenDisconnected();\n }\n };\n })(nativeAudioNode.disconnect);\n return nativeAudioNode;\n };\n};\n//# sourceMappingURL=monitor-connections.js.map","export const assignNativeAudioNodeOption = (nativeAudioNode, options, option) => {\n const value = options[option];\n if (value !== undefined && value !== nativeAudioNode[option]) {\n nativeAudioNode[option] = value;\n }\n};\n//# sourceMappingURL=assign-native-audio-node-option.js.map","import { assignNativeAudioNodeOption } from './assign-native-audio-node-option';\nexport const assignNativeAudioNodeOptions = (nativeAudioNode, options) => {\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelCount');\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelCountMode');\n assignNativeAudioNodeOption(nativeAudioNode, options, 'channelInterpretation');\n};\n//# sourceMappingURL=assign-native-audio-node-options.js.map","export const testAnalyserNodeGetFloatTimeDomainDataMethodSupport = (nativeAnalyserNode) => {\n return typeof nativeAnalyserNode.getFloatTimeDomainData === 'function';\n};\n//# sourceMappingURL=test-analyser-node-get-float-time-domain-data-method-support.js.map","export const wrapAnalyserNodeGetFloatTimeDomainDataMethod = (nativeAnalyserNode) => {\n nativeAnalyserNode.getFloatTimeDomainData = (array) => {\n const byteTimeDomainData = new Uint8Array(array.length);\n nativeAnalyserNode.getByteTimeDomainData(byteTimeDomainData);\n const length = Math.max(byteTimeDomainData.length, nativeAnalyserNode.fftSize);\n for (let i = 0; i < length; i += 1) {\n array[i] = (byteTimeDomainData[i] - 128) * 0.0078125;\n }\n return array;\n };\n};\n//# sourceMappingURL=wrap-analyser-node-get-float-time-domain-data-method.js.map","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { testAnalyserNodeGetFloatTimeDomainDataMethodSupport } from '../helpers/test-analyser-node-get-float-time-domain-data-method-support';\nimport { wrapAnalyserNodeGetFloatTimeDomainDataMethod } from '../helpers/wrap-analyser-node-get-float-time-domain-data-method';\nexport const createNativeAnalyserNodeFactory = (cacheTestResult, createIndexSizeError) => {\n return (nativeContext, options) => {\n const nativeAnalyserNode = nativeContext.createAnalyser();\n // Bug #37: Firefox does not create an AnalyserNode with the default properties.\n assignNativeAudioNodeOptions(nativeAnalyserNode, options);\n // Bug #118: Safari does not throw an error if maxDecibels is not more than minDecibels.\n if (!(options.maxDecibels > options.minDecibels)) {\n throw createIndexSizeError();\n }\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'fftSize');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'maxDecibels');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'minDecibels');\n assignNativeAudioNodeOption(nativeAnalyserNode, options, 'smoothingTimeConstant');\n // Bug #36: Safari does not support getFloatTimeDomainData() yet.\n if (!cacheTestResult(testAnalyserNodeGetFloatTimeDomainDataMethodSupport, () => testAnalyserNodeGetFloatTimeDomainDataMethodSupport(nativeAnalyserNode))) {\n wrapAnalyserNodeGetFloatTimeDomainDataMethod(nativeAnalyserNode);\n }\n return nativeAnalyserNode;\n };\n};\n//# sourceMappingURL=native-analyser-node-factory.js.map","export const createNativeAudioBufferConstructor = (window) => {\n if (window === null) {\n return null;\n }\n if (window.hasOwnProperty('AudioBuffer')) {\n return window.AudioBuffer;\n }\n return null;\n};\n//# sourceMappingURL=native-audio-buffer-constructor.js.map","export const assignNativeAudioNodeAudioParamValue = (nativeAudioNode, options, audioParam) => {\n const value = options[audioParam];\n if (value !== undefined && value !== nativeAudioNode[audioParam].value) {\n nativeAudioNode[audioParam].value = value;\n }\n};\n//# sourceMappingURL=assign-native-audio-node-audio-param-value.js.map","import { createInvalidStateError } from '../factories/invalid-state-error';\nexport const wrapAudioBufferSourceNodeStartMethodConsecutiveCalls = (nativeAudioBufferSourceNode) => {\n nativeAudioBufferSourceNode.start = ((start) => {\n let isScheduled = false;\n return (when = 0, offset = 0, duration) => {\n if (isScheduled) {\n throw createInvalidStateError();\n }\n start.call(nativeAudioBufferSourceNode, when, offset, duration);\n isScheduled = true;\n };\n })(nativeAudioBufferSourceNode.start);\n};\n//# sourceMappingURL=wrap-audio-buffer-source-node-start-method-consecutive-calls.js.map","export const wrapAudioScheduledSourceNodeStartMethodNegativeParameters = (nativeAudioScheduledSourceNode) => {\n nativeAudioScheduledSourceNode.start = ((start) => {\n return (when = 0, offset = 0, duration) => {\n if ((typeof duration === 'number' && duration < 0) || offset < 0 || when < 0) {\n throw new RangeError(\"The parameters can't be negative.\");\n }\n // @todo TypeScript cannot infer the overloaded signature with 3 arguments yet.\n start.call(nativeAudioScheduledSourceNode, when, offset, duration);\n };\n })(nativeAudioScheduledSourceNode.start);\n};\n//# sourceMappingURL=wrap-audio-scheduled-source-node-start-method-negative-parameters.js.map","export const wrapAudioScheduledSourceNodeStopMethodNegativeParameters = (nativeAudioScheduledSourceNode) => {\n nativeAudioScheduledSourceNode.stop = ((stop) => {\n return (when = 0) => {\n if (when < 0) {\n throw new RangeError(\"The parameter can't be negative.\");\n }\n stop.call(nativeAudioScheduledSourceNode, when);\n };\n })(nativeAudioScheduledSourceNode.stop);\n};\n//# sourceMappingURL=wrap-audio-scheduled-source-node-stop-method-negative-parameters.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioBufferSourceNodeStartMethodConsecutiveCalls } from '../helpers/wrap-audio-buffer-source-node-start-method-consecutive-calls';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nexport const createNativeAudioBufferSourceNodeFactory = (addSilentConnection, cacheTestResult, testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport, testAudioBufferSourceNodeStartMethodOffsetClampingSupport, testAudioBufferSourceNodeStopMethodNullifiedBufferSupport, testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, wrapAudioBufferSourceNodeStartMethodOffsetClampling, wrapAudioBufferSourceNodeStopMethodNullifiedBuffer, wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls) => {\n return (nativeContext, options) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n assignNativeAudioNodeOptions(nativeAudioBufferSourceNode, options);\n assignNativeAudioNodeAudioParamValue(nativeAudioBufferSourceNode, options, 'playbackRate');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'buffer');\n // Bug #149: Safari does not yet support the detune AudioParam.\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loop');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loopEnd');\n assignNativeAudioNodeOption(nativeAudioBufferSourceNode, options, 'loopStart');\n // Bug #69: Safari does allow calls to start() of an already scheduled AudioBufferSourceNode.\n if (!cacheTestResult(testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport, () => testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport(nativeContext))) {\n wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(nativeAudioBufferSourceNode);\n }\n // Bug #154 & #155: Safari does not handle offsets which are equal to or greater than the duration of the buffer.\n if (!cacheTestResult(testAudioBufferSourceNodeStartMethodOffsetClampingSupport, () => testAudioBufferSourceNodeStartMethodOffsetClampingSupport(nativeContext))) {\n wrapAudioBufferSourceNodeStartMethodOffsetClampling(nativeAudioBufferSourceNode);\n }\n // Bug #162: Safari does throw an error when stop() is called on an AudioBufferSourceNode which has no buffer assigned to it.\n if (!cacheTestResult(testAudioBufferSourceNodeStopMethodNullifiedBufferSupport, () => testAudioBufferSourceNodeStopMethodNullifiedBufferSupport(nativeContext))) {\n wrapAudioBufferSourceNodeStopMethodNullifiedBuffer(nativeAudioBufferSourceNode, nativeContext);\n }\n // Bug #44: Safari does not throw a RangeError yet.\n if (!cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () => testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeAudioBufferSourceNode);\n }\n // Bug #19: Safari does not ignore calls to stop() of an already stopped AudioBufferSourceNode.\n if (!cacheTestResult(testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, () => testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls(nativeAudioBufferSourceNode, nativeContext);\n }\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (!cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () => testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeAudioBufferSourceNode);\n }\n // Bug #175: Safari will not fire an ended event if the AudioBufferSourceNode is unconnected.\n addSilentConnection(nativeContext, nativeAudioBufferSourceNode);\n return nativeAudioBufferSourceNode;\n };\n};\n//# sourceMappingURL=native-audio-buffer-source-node-factory.js.map","export const createNativeAudioContextConstructor = (window) => {\n if (window === null) {\n return null;\n }\n if (window.hasOwnProperty('AudioContext')) {\n return window.AudioContext;\n }\n return window.hasOwnProperty('webkitAudioContext') ? window.webkitAudioContext : null;\n};\n//# sourceMappingURL=native-audio-context-constructor.js.map","export const createNativeAudioDestinationNodeFactory = (createNativeGainNode, overwriteAccessors) => {\n return (nativeContext, channelCount, isNodeOfNativeOfflineAudioContext) => {\n const nativeAudioDestinationNode = nativeContext.destination;\n // Bug #132: Safari does not have the correct channelCount.\n if (nativeAudioDestinationNode.channelCount !== channelCount) {\n try {\n nativeAudioDestinationNode.channelCount = channelCount;\n }\n catch {\n // Bug #169: Safari throws an error on each attempt to change the channelCount.\n }\n }\n // Bug #83: Safari does not have the correct channelCountMode.\n if (isNodeOfNativeOfflineAudioContext && nativeAudioDestinationNode.channelCountMode !== 'explicit') {\n nativeAudioDestinationNode.channelCountMode = 'explicit';\n }\n // Bug #47: The AudioDestinationNode in Safari does not initialize the maxChannelCount property correctly.\n if (nativeAudioDestinationNode.maxChannelCount === 0) {\n Object.defineProperty(nativeAudioDestinationNode, 'maxChannelCount', {\n value: channelCount\n });\n }\n // Bug #168: No browser does yet have an AudioDestinationNode with an output.\n const gainNode = createNativeGainNode(nativeContext, {\n channelCount,\n channelCountMode: nativeAudioDestinationNode.channelCountMode,\n channelInterpretation: nativeAudioDestinationNode.channelInterpretation,\n gain: 1\n });\n overwriteAccessors(gainNode, 'channelCount', (get) => () => get.call(gainNode), (set) => (value) => {\n set.call(gainNode, value);\n try {\n nativeAudioDestinationNode.channelCount = value;\n }\n catch (err) {\n // Bug #169: Safari throws an error on each attempt to change the channelCount.\n if (value > nativeAudioDestinationNode.maxChannelCount) {\n throw err;\n }\n }\n });\n overwriteAccessors(gainNode, 'channelCountMode', (get) => () => get.call(gainNode), (set) => (value) => {\n set.call(gainNode, value);\n nativeAudioDestinationNode.channelCountMode = value;\n });\n overwriteAccessors(gainNode, 'channelInterpretation', (get) => () => get.call(gainNode), (set) => (value) => {\n set.call(gainNode, value);\n nativeAudioDestinationNode.channelInterpretation = value;\n });\n Object.defineProperty(gainNode, 'maxChannelCount', {\n get: () => nativeAudioDestinationNode.maxChannelCount\n });\n // @todo This should be disconnected when the context is closed.\n gainNode.connect(nativeAudioDestinationNode);\n return gainNode;\n };\n};\n//# sourceMappingURL=native-audio-destination-node.js.map","export const createNativeAudioWorkletNodeConstructor = (window) => {\n if (window === null) {\n return null;\n }\n return window.hasOwnProperty('AudioWorkletNode') ? window.AudioWorkletNode : null;\n};\n//# sourceMappingURL=native-audio-worklet-node-constructor.js.map","export const testClonabilityOfAudioWorkletNodeOptions = (audioWorkletNodeOptions) => {\n const { port1 } = new MessageChannel();\n try {\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port1.postMessage(audioWorkletNodeOptions);\n }\n finally {\n port1.close();\n }\n};\n//# sourceMappingURL=test-clonability-of-audio-worklet-node-options.js.map","import { testClonabilityOfAudioWorkletNodeOptions } from '../helpers/test-clonability-of-audio-worklet-node-options';\nexport const createNativeAudioWorkletNodeFactory = (createInvalidStateError, createNativeAudioWorkletNodeFaker, createNativeGainNode, createNotSupportedError, monitorConnections) => {\n return (nativeContext, baseLatency, nativeAudioWorkletNodeConstructor, name, processorConstructor, options) => {\n if (nativeAudioWorkletNodeConstructor !== null) {\n try {\n const nativeAudioWorkletNode = new nativeAudioWorkletNodeConstructor(nativeContext, name, options);\n const patchedEventListeners = new Map();\n let onprocessorerror = null;\n Object.defineProperties(nativeAudioWorkletNode, {\n /*\n * Bug #61: Overwriting the property accessors for channelCount and channelCountMode is necessary as long as some\n * browsers have no native implementation to achieve a consistent behavior.\n */\n channelCount: {\n get: () => options.channelCount,\n set: () => {\n throw createInvalidStateError();\n }\n },\n channelCountMode: {\n get: () => 'explicit',\n set: () => {\n throw createInvalidStateError();\n }\n },\n // Bug #156: Chrome and Edge do not yet fire an ErrorEvent.\n onprocessorerror: {\n get: () => onprocessorerror,\n set: (value) => {\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNode.removeEventListener('processorerror', onprocessorerror);\n }\n onprocessorerror = typeof value === 'function' ? value : null;\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNode.addEventListener('processorerror', onprocessorerror);\n }\n }\n }\n });\n nativeAudioWorkletNode.addEventListener = ((addEventListener) => {\n return (...args) => {\n if (args[0] === 'processorerror') {\n const unpatchedEventListener = typeof args[1] === 'function'\n ? args[1]\n : typeof args[1] === 'object' && args[1] !== null && typeof args[1].handleEvent === 'function'\n ? args[1].handleEvent\n : null;\n if (unpatchedEventListener !== null) {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n if (patchedEventListener !== undefined) {\n args[1] = patchedEventListener;\n }\n else {\n args[1] = (event) => {\n // Bug #178: Chrome, Edge and Opera do fire an event of type error.\n if (event.type === 'error') {\n Object.defineProperties(event, {\n type: { value: 'processorerror' }\n });\n unpatchedEventListener(event);\n }\n else {\n unpatchedEventListener(new ErrorEvent(args[0], { ...event }));\n }\n };\n patchedEventListeners.set(unpatchedEventListener, args[1]);\n }\n }\n }\n // Bug #178: Chrome, Edge and Opera do fire an event of type error.\n addEventListener.call(nativeAudioWorkletNode, 'error', args[1], args[2]);\n return addEventListener.call(nativeAudioWorkletNode, ...args);\n };\n })(nativeAudioWorkletNode.addEventListener);\n nativeAudioWorkletNode.removeEventListener = ((removeEventListener) => {\n return (...args) => {\n if (args[0] === 'processorerror') {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n if (patchedEventListener !== undefined) {\n patchedEventListeners.delete(args[1]);\n args[1] = patchedEventListener;\n }\n }\n // Bug #178: Chrome, Edge and Opera do fire an event of type error.\n removeEventListener.call(nativeAudioWorkletNode, 'error', args[1], args[2]);\n return removeEventListener.call(nativeAudioWorkletNode, args[0], args[1], args[2]);\n };\n })(nativeAudioWorkletNode.removeEventListener);\n /*\n * Bug #86: Chrome and Edge do not invoke the process() function if the corresponding AudioWorkletNode is unconnected but\n * has an output.\n */\n if (options.numberOfOutputs !== 0) {\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n nativeAudioWorkletNode.connect(nativeGainNode).connect(nativeContext.destination);\n const whenConnected = () => nativeGainNode.disconnect();\n const whenDisconnected = () => nativeGainNode.connect(nativeContext.destination);\n // @todo Disconnect the connection when the process() function of the AudioWorkletNode returns false.\n return monitorConnections(nativeAudioWorkletNode, whenConnected, whenDisconnected);\n }\n return nativeAudioWorkletNode;\n }\n catch (err) {\n // Bug #60: Chrome, Edge & Opera throw an InvalidStateError instead of a NotSupportedError.\n if (err.code === 11) {\n throw createNotSupportedError();\n }\n throw err;\n }\n }\n // Bug #61: Only Chrome & Opera have an implementation of the AudioWorkletNode yet.\n if (processorConstructor === undefined) {\n throw createNotSupportedError();\n }\n testClonabilityOfAudioWorkletNodeOptions(options);\n return createNativeAudioWorkletNodeFaker(nativeContext, baseLatency, processorConstructor, options);\n };\n};\n//# sourceMappingURL=native-audio-worklet-node-factory.js.map","export const computeBufferSize = (baseLatency, sampleRate) => {\n if (baseLatency === null) {\n return 512;\n }\n return Math.max(512, Math.min(16384, Math.pow(2, Math.round(Math.log2(baseLatency * sampleRate)))));\n};\n//# sourceMappingURL=compute-buffer-size.js.map","export const cloneAudioWorkletNodeOptions = (audioWorkletNodeOptions) => {\n return new Promise((resolve, reject) => {\n const { port1, port2 } = new MessageChannel();\n port1.onmessage = ({ data }) => {\n port1.close();\n port2.close();\n resolve(data);\n };\n port1.onmessageerror = ({ data }) => {\n port1.close();\n port2.close();\n reject(data);\n };\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port2.postMessage(audioWorkletNodeOptions);\n });\n};\n//# sourceMappingURL=clone-audio-worklet-node-options.js.map","import { cloneAudioWorkletNodeOptions } from './clone-audio-worklet-node-options';\nexport const createAudioWorkletProcessorPromise = async (processorConstructor, audioWorkletNodeOptions) => {\n const clonedAudioWorkletNodeOptions = await cloneAudioWorkletNodeOptions(audioWorkletNodeOptions);\n return new processorConstructor(clonedAudioWorkletNodeOptions);\n};\n//# sourceMappingURL=create-audio-worklet-processor-promise.js.map","import { NODE_TO_PROCESSOR_MAPS } from '../globals';\nimport { createAudioWorkletProcessorPromise } from './create-audio-worklet-processor-promise';\nexport const createAudioWorkletProcessor = (nativeContext, nativeAudioWorkletNode, processorConstructor, audioWorkletNodeOptions) => {\n let nodeToProcessorMap = NODE_TO_PROCESSOR_MAPS.get(nativeContext);\n if (nodeToProcessorMap === undefined) {\n nodeToProcessorMap = new WeakMap();\n NODE_TO_PROCESSOR_MAPS.set(nativeContext, nodeToProcessorMap);\n }\n const audioWorkletProcessorPromise = createAudioWorkletProcessorPromise(processorConstructor, audioWorkletNodeOptions);\n nodeToProcessorMap.set(nativeAudioWorkletNode, audioWorkletProcessorPromise);\n return audioWorkletProcessorPromise;\n};\n//# sourceMappingURL=create-audio-worklet-processor.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nimport { computeBufferSize } from '../helpers/compute-buffer-size';\nimport { copyFromChannel } from '../helpers/copy-from-channel';\nimport { copyToChannel } from '../helpers/copy-to-channel';\nimport { createAudioWorkletProcessor } from '../helpers/create-audio-worklet-processor';\nimport { createNestedArrays } from '../helpers/create-nested-arrays';\nimport { ReadOnlyMap } from '../read-only-map';\nexport const createNativeAudioWorkletNodeFakerFactory = (connectMultipleOutputs, createIndexSizeError, createInvalidStateError, createNativeChannelMergerNode, createNativeChannelSplitterNode, createNativeConstantSourceNode, createNativeGainNode, createNativeScriptProcessorNode, createNotSupportedError, disconnectMultipleOutputs, exposeCurrentFrameAndCurrentTime, getActiveAudioWorkletNodeInputs, monitorConnections) => {\n return (nativeContext, baseLatency, processorConstructor, options) => {\n if (options.numberOfInputs === 0 && options.numberOfOutputs === 0) {\n throw createNotSupportedError();\n }\n const outputChannelCount = Array.isArray(options.outputChannelCount)\n ? options.outputChannelCount\n : Array.from(options.outputChannelCount);\n // @todo Check if any of the channelCount values is greater than the implementation's maximum number of channels.\n if (outputChannelCount.some((channelCount) => channelCount < 1)) {\n throw createNotSupportedError();\n }\n if (outputChannelCount.length !== options.numberOfOutputs) {\n throw createIndexSizeError();\n }\n // Bug #61: This is not part of the standard but required for the faker to work.\n if (options.channelCountMode !== 'explicit') {\n throw createNotSupportedError();\n }\n const numberOfInputChannels = options.channelCount * options.numberOfInputs;\n const numberOfOutputChannels = outputChannelCount.reduce((sum, value) => sum + value, 0);\n const numberOfParameters = processorConstructor.parameterDescriptors === undefined ? 0 : processorConstructor.parameterDescriptors.length;\n // Bug #61: This is not part of the standard but required for the faker to work.\n if (numberOfInputChannels + numberOfParameters > 6 || numberOfOutputChannels > 6) {\n throw createNotSupportedError();\n }\n const messageChannel = new MessageChannel();\n const gainNodes = [];\n const inputChannelSplitterNodes = [];\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes.push(createNativeGainNode(nativeContext, {\n channelCount: options.channelCount,\n channelCountMode: options.channelCountMode,\n channelInterpretation: options.channelInterpretation,\n gain: 1\n }));\n inputChannelSplitterNodes.push(createNativeChannelSplitterNode(nativeContext, {\n channelCount: options.channelCount,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: options.channelCount\n }));\n }\n const constantSourceNodes = [];\n if (processorConstructor.parameterDescriptors !== undefined) {\n for (const { defaultValue, maxValue, minValue, name } of processorConstructor.parameterDescriptors) {\n const constantSourceNode = createNativeConstantSourceNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: options.parameterData[name] !== undefined\n ? options.parameterData[name]\n : defaultValue === undefined\n ? 0\n : defaultValue\n });\n Object.defineProperties(constantSourceNode.offset, {\n defaultValue: {\n get: () => (defaultValue === undefined ? 0 : defaultValue)\n },\n maxValue: {\n get: () => (maxValue === undefined ? MOST_POSITIVE_SINGLE_FLOAT : maxValue)\n },\n minValue: {\n get: () => (minValue === undefined ? MOST_NEGATIVE_SINGLE_FLOAT : minValue)\n }\n });\n constantSourceNodes.push(constantSourceNode);\n }\n }\n const inputChannelMergerNode = createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: Math.max(1, numberOfInputChannels + numberOfParameters)\n });\n const bufferSize = computeBufferSize(baseLatency, nativeContext.sampleRate);\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, bufferSize, numberOfInputChannels + numberOfParameters, \n // Bug #87: Only Firefox will fire an AudioProcessingEvent if there is no connected output.\n Math.max(1, numberOfOutputChannels));\n const outputChannelSplitterNode = createNativeChannelSplitterNode(nativeContext, {\n channelCount: Math.max(1, numberOfOutputChannels),\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: Math.max(1, numberOfOutputChannels)\n });\n const outputChannelMergerNodes = [];\n for (let i = 0; i < options.numberOfOutputs; i += 1) {\n outputChannelMergerNodes.push(createNativeChannelMergerNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: outputChannelCount[i]\n }));\n }\n for (let i = 0; i < options.numberOfInputs; i += 1) {\n gainNodes[i].connect(inputChannelSplitterNodes[i]);\n for (let j = 0; j < options.channelCount; j += 1) {\n inputChannelSplitterNodes[i].connect(inputChannelMergerNode, j, i * options.channelCount + j);\n }\n }\n const parameterMap = new ReadOnlyMap(processorConstructor.parameterDescriptors === undefined\n ? []\n : processorConstructor.parameterDescriptors.map(({ name }, index) => {\n const constantSourceNode = constantSourceNodes[index];\n constantSourceNode.connect(inputChannelMergerNode, 0, numberOfInputChannels + index);\n constantSourceNode.start(0);\n return [name, constantSourceNode.offset];\n }));\n inputChannelMergerNode.connect(scriptProcessorNode);\n let channelInterpretation = options.channelInterpretation;\n let onprocessorerror = null;\n // Bug #87: Expose at least one output to make this node connectable.\n const outputAudioNodes = options.numberOfOutputs === 0 ? [scriptProcessorNode] : outputChannelMergerNodes;\n const nativeAudioWorkletNodeFaker = {\n get bufferSize() {\n return bufferSize;\n },\n get channelCount() {\n return options.channelCount;\n },\n set channelCount(_) {\n // Bug #61: This is not part of the standard but required for the faker to work.\n throw createInvalidStateError();\n },\n get channelCountMode() {\n return options.channelCountMode;\n },\n set channelCountMode(_) {\n // Bug #61: This is not part of the standard but required for the faker to work.\n throw createInvalidStateError();\n },\n get channelInterpretation() {\n return channelInterpretation;\n },\n set channelInterpretation(value) {\n for (const gainNode of gainNodes) {\n gainNode.channelInterpretation = value;\n }\n channelInterpretation = value;\n },\n get context() {\n return scriptProcessorNode.context;\n },\n get inputs() {\n return gainNodes;\n },\n get numberOfInputs() {\n return options.numberOfInputs;\n },\n get numberOfOutputs() {\n return options.numberOfOutputs;\n },\n get onprocessorerror() {\n return onprocessorerror;\n },\n set onprocessorerror(value) {\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNodeFaker.removeEventListener('processorerror', onprocessorerror);\n }\n onprocessorerror = typeof value === 'function' ? value : null;\n if (typeof onprocessorerror === 'function') {\n nativeAudioWorkletNodeFaker.addEventListener('processorerror', onprocessorerror);\n }\n },\n get parameters() {\n return parameterMap;\n },\n get port() {\n return messageChannel.port2;\n },\n addEventListener(...args) {\n return scriptProcessorNode.addEventListener(args[0], args[1], args[2]);\n },\n connect: connectMultipleOutputs.bind(null, outputAudioNodes),\n disconnect: disconnectMultipleOutputs.bind(null, outputAudioNodes),\n dispatchEvent(...args) {\n return scriptProcessorNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args) {\n return scriptProcessorNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n const patchedEventListeners = new Map();\n messageChannel.port1.addEventListener = ((addEventListener) => {\n return (...args) => {\n if (args[0] === 'message') {\n const unpatchedEventListener = typeof args[1] === 'function'\n ? args[1]\n : typeof args[1] === 'object' && args[1] !== null && typeof args[1].handleEvent === 'function'\n ? args[1].handleEvent\n : null;\n if (unpatchedEventListener !== null) {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n if (patchedEventListener !== undefined) {\n args[1] = patchedEventListener;\n }\n else {\n args[1] = (event) => {\n exposeCurrentFrameAndCurrentTime(nativeContext.currentTime, nativeContext.sampleRate, () => unpatchedEventListener(event));\n };\n patchedEventListeners.set(unpatchedEventListener, args[1]);\n }\n }\n }\n return addEventListener.call(messageChannel.port1, args[0], args[1], args[2]);\n };\n })(messageChannel.port1.addEventListener);\n messageChannel.port1.removeEventListener = ((removeEventListener) => {\n return (...args) => {\n if (args[0] === 'message') {\n const patchedEventListener = patchedEventListeners.get(args[1]);\n if (patchedEventListener !== undefined) {\n patchedEventListeners.delete(args[1]);\n args[1] = patchedEventListener;\n }\n }\n return removeEventListener.call(messageChannel.port1, args[0], args[1], args[2]);\n };\n })(messageChannel.port1.removeEventListener);\n let onmessage = null;\n Object.defineProperty(messageChannel.port1, 'onmessage', {\n get: () => onmessage,\n set: (value) => {\n if (typeof onmessage === 'function') {\n messageChannel.port1.removeEventListener('message', onmessage);\n }\n onmessage = typeof value === 'function' ? value : null;\n if (typeof onmessage === 'function') {\n messageChannel.port1.addEventListener('message', onmessage);\n messageChannel.port1.start();\n }\n }\n });\n processorConstructor.prototype.port = messageChannel.port1;\n let audioWorkletProcessor = null;\n const audioWorkletProcessorPromise = createAudioWorkletProcessor(nativeContext, nativeAudioWorkletNodeFaker, processorConstructor, options);\n audioWorkletProcessorPromise.then((dWrkltPrcssr) => (audioWorkletProcessor = dWrkltPrcssr));\n const inputs = createNestedArrays(options.numberOfInputs, options.channelCount);\n const outputs = createNestedArrays(options.numberOfOutputs, outputChannelCount);\n const parameters = processorConstructor.parameterDescriptors === undefined\n ? []\n : processorConstructor.parameterDescriptors.reduce((prmtrs, { name }) => ({ ...prmtrs, [name]: new Float32Array(128) }), {});\n let isActive = true;\n const disconnectOutputsGraph = () => {\n if (options.numberOfOutputs > 0) {\n scriptProcessorNode.disconnect(outputChannelSplitterNode);\n }\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < options.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.disconnect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n };\n const activeInputIndexes = new Map();\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer, outputBuffer }) => {\n if (audioWorkletProcessor !== null) {\n const activeInputs = getActiveAudioWorkletNodeInputs(nativeAudioWorkletNodeFaker);\n for (let i = 0; i < bufferSize; i += 128) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < options.channelCount; k += 1) {\n copyFromChannel(inputBuffer, inputs[j], k, k, i);\n }\n }\n if (processorConstructor.parameterDescriptors !== undefined) {\n processorConstructor.parameterDescriptors.forEach(({ name }, index) => {\n copyFromChannel(inputBuffer, parameters, name, numberOfInputChannels + index, i);\n });\n }\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n // The byteLength will be 0 when the ArrayBuffer was transferred.\n if (outputs[j][k].byteLength === 0) {\n outputs[j][k] = new Float32Array(128);\n }\n }\n }\n try {\n const potentiallyEmptyInputs = inputs.map((input, index) => {\n const activeInput = activeInputs[index];\n if (activeInput.size > 0) {\n activeInputIndexes.set(index, bufferSize / 128);\n return input;\n }\n const count = activeInputIndexes.get(index);\n if (count === undefined) {\n return [];\n }\n if (input.every((channelData) => channelData.every((sample) => sample === 0))) {\n if (count === 1) {\n activeInputIndexes.delete(index);\n }\n else {\n activeInputIndexes.set(index, count - 1);\n }\n }\n return input;\n });\n const activeSourceFlag = exposeCurrentFrameAndCurrentTime(nativeContext.currentTime + i / nativeContext.sampleRate, nativeContext.sampleRate, () => audioWorkletProcessor.process(potentiallyEmptyInputs, outputs, parameters));\n isActive = activeSourceFlag;\n for (let j = 0, outputChannelSplitterNodeOutput = 0; j < options.numberOfOutputs; j += 1) {\n for (let k = 0; k < outputChannelCount[j]; k += 1) {\n copyToChannel(outputBuffer, outputs[j], k, outputChannelSplitterNodeOutput + k, i);\n }\n outputChannelSplitterNodeOutput += outputChannelCount[j];\n }\n }\n catch (error) {\n isActive = false;\n nativeAudioWorkletNodeFaker.dispatchEvent(new ErrorEvent('processorerror', {\n colno: error.colno,\n filename: error.filename,\n lineno: error.lineno,\n message: error.message\n }));\n }\n if (!isActive) {\n for (let j = 0; j < options.numberOfInputs; j += 1) {\n gainNodes[j].disconnect(inputChannelSplitterNodes[j]);\n for (let k = 0; k < options.channelCount; k += 1) {\n inputChannelSplitterNodes[i].disconnect(inputChannelMergerNode, k, j * options.channelCount + k);\n }\n }\n if (processorConstructor.parameterDescriptors !== undefined) {\n const length = processorConstructor.parameterDescriptors.length;\n for (let j = 0; j < length; j += 1) {\n const constantSourceNode = constantSourceNodes[j];\n constantSourceNode.disconnect(inputChannelMergerNode, 0, numberOfInputChannels + j);\n constantSourceNode.stop();\n }\n }\n inputChannelMergerNode.disconnect(scriptProcessorNode);\n scriptProcessorNode.onaudioprocess = null; // tslint:disable-line:deprecation\n if (isConnected) {\n disconnectOutputsGraph();\n }\n else {\n disconnectFakeGraph();\n }\n break;\n }\n }\n }\n };\n let isConnected = false;\n // Bug #87: Only Firefox will fire an AudioProcessingEvent if there is no connected output.\n const nativeGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n const connectFakeGraph = () => scriptProcessorNode.connect(nativeGainNode).connect(nativeContext.destination);\n const disconnectFakeGraph = () => {\n scriptProcessorNode.disconnect(nativeGainNode);\n nativeGainNode.disconnect();\n };\n const whenConnected = () => {\n if (isActive) {\n disconnectFakeGraph();\n if (options.numberOfOutputs > 0) {\n scriptProcessorNode.connect(outputChannelSplitterNode);\n }\n for (let i = 0, outputChannelSplitterNodeOutput = 0; i < options.numberOfOutputs; i += 1) {\n const outputChannelMergerNode = outputChannelMergerNodes[i];\n for (let j = 0; j < outputChannelCount[i]; j += 1) {\n outputChannelSplitterNode.connect(outputChannelMergerNode, outputChannelSplitterNodeOutput + j, j);\n }\n outputChannelSplitterNodeOutput += outputChannelCount[i];\n }\n }\n isConnected = true;\n };\n const whenDisconnected = () => {\n if (isActive) {\n connectFakeGraph();\n disconnectOutputsGraph();\n }\n isConnected = false;\n };\n connectFakeGraph();\n return monitorConnections(nativeAudioWorkletNodeFaker, whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=native-audio-worklet-node-faker-factory.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeBiquadFilterNode = (nativeContext, options) => {\n const nativeBiquadFilterNode = nativeContext.createBiquadFilter();\n assignNativeAudioNodeOptions(nativeBiquadFilterNode, options);\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'Q');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'detune');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'frequency');\n assignNativeAudioNodeAudioParamValue(nativeBiquadFilterNode, options, 'gain');\n assignNativeAudioNodeOption(nativeBiquadFilterNode, options, 'type');\n return nativeBiquadFilterNode;\n};\n//# sourceMappingURL=native-biquad-filter-node.js.map","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeChannelMergerNodeFactory = (nativeAudioContextConstructor, wrapChannelMergerNode) => {\n return (nativeContext, options) => {\n const nativeChannelMergerNode = nativeContext.createChannelMerger(options.numberOfInputs);\n /*\n * Bug #20: Safari requires a connection of any kind to treat the input signal correctly.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the existence of\n * the webkitAudioContext is used as a workaround here.\n */\n if (nativeAudioContextConstructor !== null && nativeAudioContextConstructor.name === 'webkitAudioContext') {\n wrapChannelMergerNode(nativeContext, nativeChannelMergerNode);\n }\n assignNativeAudioNodeOptions(nativeChannelMergerNode, options);\n return nativeChannelMergerNode;\n };\n};\n//# sourceMappingURL=native-channel-merger-node-factory.js.map","import { createInvalidStateError } from '../factories/invalid-state-error';\nexport const wrapChannelSplitterNode = (channelSplitterNode) => {\n const channelCount = channelSplitterNode.numberOfOutputs;\n // Bug #97: Safari does not throw an error when attempting to change the channelCount to something other than its initial value.\n Object.defineProperty(channelSplitterNode, 'channelCount', {\n get: () => channelCount,\n set: (value) => {\n if (value !== channelCount) {\n throw createInvalidStateError();\n }\n }\n });\n // Bug #30: Safari does not throw an error when attempting to change the channelCountMode to something other than explicit.\n Object.defineProperty(channelSplitterNode, 'channelCountMode', {\n get: () => 'explicit',\n set: (value) => {\n if (value !== 'explicit') {\n throw createInvalidStateError();\n }\n }\n });\n // Bug #32: Safari does not throw an error when attempting to change the channelInterpretation to something other than discrete.\n Object.defineProperty(channelSplitterNode, 'channelInterpretation', {\n get: () => 'discrete',\n set: (value) => {\n if (value !== 'discrete') {\n throw createInvalidStateError();\n }\n }\n });\n};\n//# sourceMappingURL=wrap-channel-splitter-node.js.map","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapChannelSplitterNode } from '../helpers/wrap-channel-splitter-node';\nexport const createNativeChannelSplitterNode = (nativeContext, options) => {\n const nativeChannelSplitterNode = nativeContext.createChannelSplitter(options.numberOfOutputs);\n // Bug #96: Safari does not have the correct channelCount.\n // Bug #29: Safari does not have the correct channelCountMode.\n // Bug #31: Safari does not have the correct channelInterpretation.\n assignNativeAudioNodeOptions(nativeChannelSplitterNode, options);\n // Bug #29, #30, #31, #32, #96 & #97: Only Chrome, Edge, Firefox & Opera partially support the spec yet.\n wrapChannelSplitterNode(nativeChannelSplitterNode);\n return nativeChannelSplitterNode;\n};\n//# sourceMappingURL=native-channel-splitter-node.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nexport const createNativeConstantSourceNodeFactory = (addSilentConnection, cacheTestResult, createNativeConstantSourceNodeFaker, testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, testAudioScheduledSourceNodeStopMethodNegativeParametersSupport) => {\n return (nativeContext, options) => {\n // Bug #62: Safari does not support ConstantSourceNodes.\n if (nativeContext.createConstantSource === undefined) {\n return createNativeConstantSourceNodeFaker(nativeContext, options);\n }\n const nativeConstantSourceNode = nativeContext.createConstantSource();\n assignNativeAudioNodeOptions(nativeConstantSourceNode, options);\n assignNativeAudioNodeAudioParamValue(nativeConstantSourceNode, options, 'offset');\n // Bug #44: Safari does not throw a RangeError yet.\n if (!cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () => testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeConstantSourceNode);\n }\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (!cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () => testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeConstantSourceNode);\n }\n // Bug #175: Safari will not fire an ended event if the ConstantSourceNode is unconnected.\n addSilentConnection(nativeContext, nativeConstantSourceNode);\n return nativeConstantSourceNode;\n };\n};\n//# sourceMappingURL=native-constant-source-node-factory.js.map","export const interceptConnections = (original, interceptor) => {\n original.connect = interceptor.connect.bind(interceptor);\n original.disconnect = interceptor.disconnect.bind(interceptor);\n return original;\n};\n//# sourceMappingURL=intercept-connections.js.map","import { interceptConnections } from '../helpers/intercept-connections';\nexport const createNativeConstantSourceNodeFakerFactory = (addSilentConnection, createNativeAudioBufferSourceNode, createNativeGainNode, monitorConnections) => {\n return (nativeContext, { offset, ...audioNodeOptions }) => {\n const audioBuffer = nativeContext.createBuffer(1, 2, 44100);\n const audioBufferSourceNode = createNativeAudioBufferSourceNode(nativeContext, {\n buffer: null,\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n playbackRate: 1\n });\n const gainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: offset });\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n const channelData = audioBuffer.getChannelData(0);\n // Bug #95: Safari does not play or loop one sample buffers.\n channelData[0] = 1;\n channelData[1] = 1;\n audioBufferSourceNode.buffer = audioBuffer;\n audioBufferSourceNode.loop = true;\n const nativeConstantSourceNodeFaker = {\n get bufferSize() {\n return undefined;\n },\n get channelCount() {\n return gainNode.channelCount;\n },\n set channelCount(value) {\n gainNode.channelCount = value;\n },\n get channelCountMode() {\n return gainNode.channelCountMode;\n },\n set channelCountMode(value) {\n gainNode.channelCountMode = value;\n },\n get channelInterpretation() {\n return gainNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n gainNode.channelInterpretation = value;\n },\n get context() {\n return gainNode.context;\n },\n get inputs() {\n return [];\n },\n get numberOfInputs() {\n return audioBufferSourceNode.numberOfInputs;\n },\n get numberOfOutputs() {\n return gainNode.numberOfOutputs;\n },\n get offset() {\n return gainNode.gain;\n },\n get onended() {\n return audioBufferSourceNode.onended;\n },\n set onended(value) {\n audioBufferSourceNode.onended = value;\n },\n addEventListener(...args) {\n return audioBufferSourceNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args) {\n return audioBufferSourceNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args) {\n return audioBufferSourceNode.removeEventListener(args[0], args[1], args[2]);\n },\n start(when = 0) {\n audioBufferSourceNode.start.call(audioBufferSourceNode, when);\n },\n stop(when = 0) {\n audioBufferSourceNode.stop.call(audioBufferSourceNode, when);\n }\n };\n const whenConnected = () => audioBufferSourceNode.connect(gainNode);\n const whenDisconnected = () => audioBufferSourceNode.disconnect(gainNode);\n // Bug #175: Safari will not fire an ended event if the AudioBufferSourceNode is unconnected.\n addSilentConnection(nativeContext, audioBufferSourceNode);\n return monitorConnections(interceptConnections(nativeConstantSourceNodeFaker, gainNode), whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=native-constant-source-node-faker-factory.js.map","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeConvolverNodeFactory = (createNotSupportedError, overwriteAccessors) => {\n return (nativeContext, options) => {\n const nativeConvolverNode = nativeContext.createConvolver();\n assignNativeAudioNodeOptions(nativeConvolverNode, options);\n // The normalize property needs to be set before setting the buffer.\n if (options.disableNormalization === nativeConvolverNode.normalize) {\n nativeConvolverNode.normalize = !options.disableNormalization;\n }\n assignNativeAudioNodeOption(nativeConvolverNode, options, 'buffer');\n // Bug #113: Safari does allow to set the channelCount to a value larger than 2.\n if (options.channelCount > 2) {\n throw createNotSupportedError();\n }\n overwriteAccessors(nativeConvolverNode, 'channelCount', (get) => () => get.call(nativeConvolverNode), (set) => (value) => {\n if (value > 2) {\n throw createNotSupportedError();\n }\n return set.call(nativeConvolverNode, value);\n });\n // Bug #114: Safari allows to set the channelCountMode to 'max'.\n if (options.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n overwriteAccessors(nativeConvolverNode, 'channelCountMode', (get) => () => get.call(nativeConvolverNode), (set) => (value) => {\n if (value === 'max') {\n throw createNotSupportedError();\n }\n return set.call(nativeConvolverNode, value);\n });\n return nativeConvolverNode;\n };\n};\n//# sourceMappingURL=native-convolver-node-factory.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeDelayNode = (nativeContext, options) => {\n const nativeDelayNode = nativeContext.createDelay(options.maxDelayTime);\n assignNativeAudioNodeOptions(nativeDelayNode, options);\n assignNativeAudioNodeAudioParamValue(nativeDelayNode, options, 'delayTime');\n return nativeDelayNode;\n};\n//# sourceMappingURL=native-delay-node.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeDynamicsCompressorNodeFactory = (createNotSupportedError) => {\n return (nativeContext, options) => {\n const nativeDynamicsCompressorNode = nativeContext.createDynamicsCompressor();\n assignNativeAudioNodeOptions(nativeDynamicsCompressorNode, options);\n // Bug #108: Safari allows a channelCount of three and above.\n if (options.channelCount > 2) {\n throw createNotSupportedError();\n }\n // Bug #109: Only Chrome, Firefox and Opera disallow a channelCountMode of 'max'.\n if (options.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'attack');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'knee');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'ratio');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'release');\n assignNativeAudioNodeAudioParamValue(nativeDynamicsCompressorNode, options, 'threshold');\n return nativeDynamicsCompressorNode;\n };\n};\n//# sourceMappingURL=native-dynamics-compressor-node-factory.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeGainNode = (nativeContext, options) => {\n const nativeGainNode = nativeContext.createGain();\n assignNativeAudioNodeOptions(nativeGainNode, options);\n assignNativeAudioNodeAudioParamValue(nativeGainNode, options, 'gain');\n return nativeGainNode;\n};\n//# sourceMappingURL=native-gain-node.js.map","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeIIRFilterNodeFactory = (createNativeIIRFilterNodeFaker) => {\n return (nativeContext, baseLatency, options) => {\n // Bug #9: Safari does not support IIRFilterNodes.\n if (nativeContext.createIIRFilter === undefined) {\n return createNativeIIRFilterNodeFaker(nativeContext, baseLatency, options);\n }\n // @todo TypeScript defines the parameters of createIIRFilter() as arrays of numbers.\n const nativeIIRFilterNode = nativeContext.createIIRFilter(options.feedforward, options.feedback);\n assignNativeAudioNodeOptions(nativeIIRFilterNode, options);\n return nativeIIRFilterNode;\n };\n};\n//# sourceMappingURL=native-iir-filter-node-factory.js.map","import { computeBufferSize } from '../helpers/compute-buffer-size';\nimport { filterBuffer } from '../helpers/filter-buffer';\nimport { interceptConnections } from '../helpers/intercept-connections';\nfunction divide(a, b) {\n const denominator = b[0] * b[0] + b[1] * b[1];\n return [(a[0] * b[0] + a[1] * b[1]) / denominator, (a[1] * b[0] - a[0] * b[1]) / denominator];\n}\nfunction multiply(a, b) {\n return [a[0] * b[0] - a[1] * b[1], a[0] * b[1] + a[1] * b[0]];\n}\nfunction evaluatePolynomial(coefficient, z) {\n let result = [0, 0];\n for (let i = coefficient.length - 1; i >= 0; i -= 1) {\n result = multiply(result, z);\n result[0] += coefficient[i];\n }\n return result;\n}\nexport const createNativeIIRFilterNodeFakerFactory = (createInvalidAccessError, createInvalidStateError, createNativeScriptProcessorNode, createNotSupportedError) => {\n return (nativeContext, baseLatency, { channelCount, channelCountMode, channelInterpretation, feedback, feedforward }) => {\n const bufferSize = computeBufferSize(baseLatency, nativeContext.sampleRate);\n const convertedFeedback = feedback instanceof Float64Array ? feedback : new Float64Array(feedback);\n const convertedFeedforward = feedforward instanceof Float64Array ? feedforward : new Float64Array(feedforward);\n const feedbackLength = convertedFeedback.length;\n const feedforwardLength = convertedFeedforward.length;\n const minLength = Math.min(feedbackLength, feedforwardLength);\n if (feedbackLength === 0 || feedbackLength > 20) {\n throw createNotSupportedError();\n }\n if (convertedFeedback[0] === 0) {\n throw createInvalidStateError();\n }\n if (feedforwardLength === 0 || feedforwardLength > 20) {\n throw createNotSupportedError();\n }\n if (convertedFeedforward[0] === 0) {\n throw createInvalidStateError();\n }\n if (convertedFeedback[0] !== 1) {\n for (let i = 0; i < feedforwardLength; i += 1) {\n convertedFeedforward[i] /= convertedFeedback[0];\n }\n for (let i = 1; i < feedbackLength; i += 1) {\n convertedFeedback[i] /= convertedFeedback[0];\n }\n }\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, bufferSize, channelCount, channelCount);\n scriptProcessorNode.channelCount = channelCount;\n scriptProcessorNode.channelCountMode = channelCountMode;\n scriptProcessorNode.channelInterpretation = channelInterpretation;\n const bufferLength = 32;\n const bufferIndexes = [];\n const xBuffers = [];\n const yBuffers = [];\n for (let i = 0; i < channelCount; i += 1) {\n bufferIndexes.push(0);\n const xBuffer = new Float32Array(bufferLength);\n const yBuffer = new Float32Array(bufferLength);\n xBuffer.fill(0);\n yBuffer.fill(0);\n xBuffers.push(xBuffer);\n yBuffers.push(yBuffer);\n }\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = (event) => {\n const inputBuffer = event.inputBuffer;\n const outputBuffer = event.outputBuffer;\n const numberOfChannels = inputBuffer.numberOfChannels;\n for (let i = 0; i < numberOfChannels; i += 1) {\n const input = inputBuffer.getChannelData(i);\n const output = outputBuffer.getChannelData(i);\n bufferIndexes[i] = filterBuffer(convertedFeedback, feedbackLength, convertedFeedforward, feedforwardLength, minLength, xBuffers[i], yBuffers[i], bufferIndexes[i], bufferLength, input, output);\n }\n };\n const nyquist = nativeContext.sampleRate / 2;\n const nativeIIRFilterNodeFaker = {\n get bufferSize() {\n return bufferSize;\n },\n get channelCount() {\n return scriptProcessorNode.channelCount;\n },\n set channelCount(value) {\n scriptProcessorNode.channelCount = value;\n },\n get channelCountMode() {\n return scriptProcessorNode.channelCountMode;\n },\n set channelCountMode(value) {\n scriptProcessorNode.channelCountMode = value;\n },\n get channelInterpretation() {\n return scriptProcessorNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n scriptProcessorNode.channelInterpretation = value;\n },\n get context() {\n return scriptProcessorNode.context;\n },\n get inputs() {\n return [scriptProcessorNode];\n },\n get numberOfInputs() {\n return scriptProcessorNode.numberOfInputs;\n },\n get numberOfOutputs() {\n return scriptProcessorNode.numberOfOutputs;\n },\n addEventListener(...args) {\n // @todo Dissallow adding an audioprocess listener.\n return scriptProcessorNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args) {\n return scriptProcessorNode.dispatchEvent(args[0]);\n },\n getFrequencyResponse(frequencyHz, magResponse, phaseResponse) {\n if (frequencyHz.length !== magResponse.length || magResponse.length !== phaseResponse.length) {\n throw createInvalidAccessError();\n }\n const length = frequencyHz.length;\n for (let i = 0; i < length; i += 1) {\n const omega = -Math.PI * (frequencyHz[i] / nyquist);\n const z = [Math.cos(omega), Math.sin(omega)];\n const numerator = evaluatePolynomial(convertedFeedforward, z);\n const denominator = evaluatePolynomial(convertedFeedback, z);\n const response = divide(numerator, denominator);\n magResponse[i] = Math.sqrt(response[0] * response[0] + response[1] * response[1]);\n phaseResponse[i] = Math.atan2(response[1], response[0]);\n }\n },\n removeEventListener(...args) {\n return scriptProcessorNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n return interceptConnections(nativeIIRFilterNodeFaker, scriptProcessorNode);\n };\n};\n//# sourceMappingURL=native-iir-filter-node-faker-factory.js.map","export const createNativeMediaElementAudioSourceNode = (nativeAudioContext, options) => {\n return nativeAudioContext.createMediaElementSource(options.mediaElement);\n};\n//# sourceMappingURL=native-media-element-audio-source-node.js.map","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeMediaStreamAudioDestinationNode = (nativeAudioContext, options) => {\n const nativeMediaStreamAudioDestinationNode = nativeAudioContext.createMediaStreamDestination();\n assignNativeAudioNodeOptions(nativeMediaStreamAudioDestinationNode, options);\n // Bug #174: Safari does expose a wrong numberOfOutputs.\n if (nativeMediaStreamAudioDestinationNode.numberOfOutputs === 1) {\n Object.defineProperty(nativeMediaStreamAudioDestinationNode, 'numberOfOutputs', { get: () => 0 });\n }\n return nativeMediaStreamAudioDestinationNode;\n};\n//# sourceMappingURL=native-media-stream-audio-destination-node.js.map","export const createNativeMediaStreamAudioSourceNode = (nativeAudioContext, { mediaStream }) => {\n const audioStreamTracks = mediaStream.getAudioTracks();\n /*\n * Bug #151: Safari does not use the audio track as input anymore if it gets removed from the mediaStream after construction.\n * Bug #159: Safari picks the first audio track if the MediaStream has more than one audio track.\n */\n audioStreamTracks.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));\n const filteredAudioStreamTracks = audioStreamTracks.slice(0, 1);\n const nativeMediaStreamAudioSourceNode = nativeAudioContext.createMediaStreamSource(new MediaStream(filteredAudioStreamTracks));\n /*\n * Bug #151 & #159: The given mediaStream gets reconstructed before it gets passed to the native node which is why the accessor needs\n * to be overwritten as it would otherwise expose the reconstructed version.\n */\n Object.defineProperty(nativeMediaStreamAudioSourceNode, 'mediaStream', { value: mediaStream });\n return nativeMediaStreamAudioSourceNode;\n};\n//# sourceMappingURL=native-media-stream-audio-source-node.js.map","export const createNativeMediaStreamTrackAudioSourceNodeFactory = (createInvalidStateError, isNativeOfflineAudioContext) => {\n return (nativeAudioContext, { mediaStreamTrack }) => {\n // Bug #121: Only Firefox does yet support the MediaStreamTrackAudioSourceNode.\n if (typeof nativeAudioContext.createMediaStreamTrackSource === 'function') {\n return nativeAudioContext.createMediaStreamTrackSource(mediaStreamTrack);\n }\n const mediaStream = new MediaStream([mediaStreamTrack]);\n const nativeMediaStreamAudioSourceNode = nativeAudioContext.createMediaStreamSource(mediaStream);\n // Bug #120: Firefox does not throw an error if the mediaStream has no audio track.\n if (mediaStreamTrack.kind !== 'audio') {\n throw createInvalidStateError();\n }\n // Bug #172: Safari allows to create a MediaStreamAudioSourceNode with an OfflineAudioContext.\n if (isNativeOfflineAudioContext(nativeAudioContext)) {\n throw new TypeError();\n }\n return nativeMediaStreamAudioSourceNode;\n };\n};\n//# sourceMappingURL=native-media-stream-track-audio-source-node-factory.js.map","export const createNativeOfflineAudioContextConstructor = (window) => {\n if (window === null) {\n return null;\n }\n if (window.hasOwnProperty('OfflineAudioContext')) {\n return window.OfflineAudioContext;\n }\n return window.hasOwnProperty('webkitOfflineAudioContext') ? window.webkitOfflineAudioContext : null;\n};\n//# sourceMappingURL=native-offline-audio-context-constructor.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { wrapAudioScheduledSourceNodeStartMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-start-method-negative-parameters';\nimport { wrapAudioScheduledSourceNodeStopMethodNegativeParameters } from '../helpers/wrap-audio-scheduled-source-node-stop-method-negative-parameters';\nexport const createNativeOscillatorNodeFactory = (addSilentConnection, cacheTestResult, testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls) => {\n return (nativeContext, options) => {\n const nativeOscillatorNode = nativeContext.createOscillator();\n assignNativeAudioNodeOptions(nativeOscillatorNode, options);\n assignNativeAudioNodeAudioParamValue(nativeOscillatorNode, options, 'detune');\n assignNativeAudioNodeAudioParamValue(nativeOscillatorNode, options, 'frequency');\n if (options.periodicWave !== undefined) {\n nativeOscillatorNode.setPeriodicWave(options.periodicWave);\n }\n else {\n assignNativeAudioNodeOption(nativeOscillatorNode, options, 'type');\n }\n // Bug #44: Only Chrome, Edge & Opera throw a RangeError yet.\n if (!cacheTestResult(testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, () => testAudioScheduledSourceNodeStartMethodNegativeParametersSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStartMethodNegativeParameters(nativeOscillatorNode);\n }\n // Bug #19: Safari does not ignore calls to stop() of an already stopped AudioBufferSourceNode.\n if (!cacheTestResult(testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, () => testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls(nativeOscillatorNode, nativeContext);\n }\n // Bug #44: Only Firefox does not throw a RangeError yet.\n if (!cacheTestResult(testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, () => testAudioScheduledSourceNodeStopMethodNegativeParametersSupport(nativeContext))) {\n wrapAudioScheduledSourceNodeStopMethodNegativeParameters(nativeOscillatorNode);\n }\n // Bug #175: Safari will not fire an ended event if the OscillatorNode is unconnected.\n addSilentConnection(nativeContext, nativeOscillatorNode);\n return nativeOscillatorNode;\n };\n};\n//# sourceMappingURL=native-oscillator-node-factory.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativePannerNodeFactory = (createNativePannerNodeFaker) => {\n return (nativeContext, options) => {\n const nativePannerNode = nativeContext.createPanner();\n // Bug #124: Safari does not support modifying the orientation and the position with AudioParams.\n if (nativePannerNode.orientationX === undefined) {\n return createNativePannerNodeFaker(nativeContext, options);\n }\n assignNativeAudioNodeOptions(nativePannerNode, options);\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationX');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationY');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'orientationZ');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionX');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionY');\n assignNativeAudioNodeAudioParamValue(nativePannerNode, options, 'positionZ');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneInnerAngle');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneOuterAngle');\n assignNativeAudioNodeOption(nativePannerNode, options, 'coneOuterGain');\n assignNativeAudioNodeOption(nativePannerNode, options, 'distanceModel');\n assignNativeAudioNodeOption(nativePannerNode, options, 'maxDistance');\n assignNativeAudioNodeOption(nativePannerNode, options, 'panningModel');\n assignNativeAudioNodeOption(nativePannerNode, options, 'refDistance');\n assignNativeAudioNodeOption(nativePannerNode, options, 'rolloffFactor');\n return nativePannerNode;\n };\n};\n//# sourceMappingURL=native-panner-node-factory.js.map","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { interceptConnections } from '../helpers/intercept-connections';\nexport const createNativePannerNodeFakerFactory = (connectNativeAudioNodeToNativeAudioNode, createInvalidStateError, createNativeChannelMergerNode, createNativeGainNode, createNativeScriptProcessorNode, createNativeWaveShaperNode, createNotSupportedError, disconnectNativeAudioNodeFromNativeAudioNode, getFirstSample, monitorConnections) => {\n return (nativeContext, { coneInnerAngle, coneOuterAngle, coneOuterGain, distanceModel, maxDistance, orientationX, orientationY, orientationZ, panningModel, positionX, positionY, positionZ, refDistance, rolloffFactor, ...audioNodeOptions }) => {\n const pannerNode = nativeContext.createPanner();\n // Bug #125: Safari does not throw an error yet.\n if (audioNodeOptions.channelCount > 2) {\n throw createNotSupportedError();\n }\n // Bug #126: Safari does not throw an error yet.\n if (audioNodeOptions.channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n assignNativeAudioNodeOptions(pannerNode, audioNodeOptions);\n const SINGLE_CHANNEL_OPTIONS = {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete'\n };\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n ...SINGLE_CHANNEL_OPTIONS,\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n });\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const orientationXGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 1 });\n const orientationYGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const orientationZGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionXGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionYGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const positionZGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeContext, 256, 6, 1);\n const waveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_OPTIONS,\n curve: new Float32Array([1, 1]),\n oversample: 'none'\n });\n let lastOrientation = [orientationX, orientationY, orientationZ];\n let lastPosition = [positionX, positionY, positionZ];\n const buffer = new Float32Array(1);\n // tslint:disable-next-line:deprecation\n scriptProcessorNode.onaudioprocess = ({ inputBuffer }) => {\n const orientation = [\n getFirstSample(inputBuffer, buffer, 0),\n getFirstSample(inputBuffer, buffer, 1),\n getFirstSample(inputBuffer, buffer, 2)\n ];\n if (orientation.some((value, index) => value !== lastOrientation[index])) {\n pannerNode.setOrientation(...orientation); // tslint:disable-line:deprecation\n lastOrientation = orientation;\n }\n const positon = [\n getFirstSample(inputBuffer, buffer, 3),\n getFirstSample(inputBuffer, buffer, 4),\n getFirstSample(inputBuffer, buffer, 5)\n ];\n if (positon.some((value, index) => value !== lastPosition[index])) {\n pannerNode.setPosition(...positon); // tslint:disable-line:deprecation\n lastPosition = positon;\n }\n };\n Object.defineProperty(orientationYGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(orientationZGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionXGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionYGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(positionZGainNode.gain, 'defaultValue', { get: () => 0 });\n const nativePannerNodeFaker = {\n get bufferSize() {\n return undefined;\n },\n get channelCount() {\n return pannerNode.channelCount;\n },\n set channelCount(value) {\n // Bug #125: Safari does not throw an error yet.\n if (value > 2) {\n throw createNotSupportedError();\n }\n inputGainNode.channelCount = value;\n pannerNode.channelCount = value;\n },\n get channelCountMode() {\n return pannerNode.channelCountMode;\n },\n set channelCountMode(value) {\n // Bug #126: Safari does not throw an error yet.\n if (value === 'max') {\n throw createNotSupportedError();\n }\n inputGainNode.channelCountMode = value;\n pannerNode.channelCountMode = value;\n },\n get channelInterpretation() {\n return pannerNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n pannerNode.channelInterpretation = value;\n },\n get coneInnerAngle() {\n return pannerNode.coneInnerAngle;\n },\n set coneInnerAngle(value) {\n pannerNode.coneInnerAngle = value;\n },\n get coneOuterAngle() {\n return pannerNode.coneOuterAngle;\n },\n set coneOuterAngle(value) {\n pannerNode.coneOuterAngle = value;\n },\n get coneOuterGain() {\n return pannerNode.coneOuterGain;\n },\n set coneOuterGain(value) {\n // Bug #127: Safari does not throw an InvalidStateError yet.\n if (value < 0 || value > 1) {\n throw createInvalidStateError();\n }\n pannerNode.coneOuterGain = value;\n },\n get context() {\n return pannerNode.context;\n },\n get distanceModel() {\n return pannerNode.distanceModel;\n },\n set distanceModel(value) {\n pannerNode.distanceModel = value;\n },\n get inputs() {\n return [inputGainNode];\n },\n get maxDistance() {\n return pannerNode.maxDistance;\n },\n set maxDistance(value) {\n // Bug #128: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n pannerNode.maxDistance = value;\n },\n get numberOfInputs() {\n return pannerNode.numberOfInputs;\n },\n get numberOfOutputs() {\n return pannerNode.numberOfOutputs;\n },\n get orientationX() {\n return orientationXGainNode.gain;\n },\n get orientationY() {\n return orientationYGainNode.gain;\n },\n get orientationZ() {\n return orientationZGainNode.gain;\n },\n get panningModel() {\n return pannerNode.panningModel;\n },\n set panningModel(value) {\n pannerNode.panningModel = value;\n },\n get positionX() {\n return positionXGainNode.gain;\n },\n get positionY() {\n return positionYGainNode.gain;\n },\n get positionZ() {\n return positionZGainNode.gain;\n },\n get refDistance() {\n return pannerNode.refDistance;\n },\n set refDistance(value) {\n // Bug #129: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n pannerNode.refDistance = value;\n },\n get rolloffFactor() {\n return pannerNode.rolloffFactor;\n },\n set rolloffFactor(value) {\n // Bug #130: Safari does not throw an error yet.\n if (value < 0) {\n throw new RangeError();\n }\n pannerNode.rolloffFactor = value;\n },\n addEventListener(...args) {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args) {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args) {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n if (coneInnerAngle !== nativePannerNodeFaker.coneInnerAngle) {\n nativePannerNodeFaker.coneInnerAngle = coneInnerAngle;\n }\n if (coneOuterAngle !== nativePannerNodeFaker.coneOuterAngle) {\n nativePannerNodeFaker.coneOuterAngle = coneOuterAngle;\n }\n if (coneOuterGain !== nativePannerNodeFaker.coneOuterGain) {\n nativePannerNodeFaker.coneOuterGain = coneOuterGain;\n }\n if (distanceModel !== nativePannerNodeFaker.distanceModel) {\n nativePannerNodeFaker.distanceModel = distanceModel;\n }\n if (maxDistance !== nativePannerNodeFaker.maxDistance) {\n nativePannerNodeFaker.maxDistance = maxDistance;\n }\n if (orientationX !== nativePannerNodeFaker.orientationX.value) {\n nativePannerNodeFaker.orientationX.value = orientationX;\n }\n if (orientationY !== nativePannerNodeFaker.orientationY.value) {\n nativePannerNodeFaker.orientationY.value = orientationY;\n }\n if (orientationZ !== nativePannerNodeFaker.orientationZ.value) {\n nativePannerNodeFaker.orientationZ.value = orientationZ;\n }\n if (panningModel !== nativePannerNodeFaker.panningModel) {\n nativePannerNodeFaker.panningModel = panningModel;\n }\n if (positionX !== nativePannerNodeFaker.positionX.value) {\n nativePannerNodeFaker.positionX.value = positionX;\n }\n if (positionY !== nativePannerNodeFaker.positionY.value) {\n nativePannerNodeFaker.positionY.value = positionY;\n }\n if (positionZ !== nativePannerNodeFaker.positionZ.value) {\n nativePannerNodeFaker.positionZ.value = positionZ;\n }\n if (refDistance !== nativePannerNodeFaker.refDistance) {\n nativePannerNodeFaker.refDistance = refDistance;\n }\n if (rolloffFactor !== nativePannerNodeFaker.rolloffFactor) {\n nativePannerNodeFaker.rolloffFactor = rolloffFactor;\n }\n if (lastOrientation[0] !== 1 || lastOrientation[1] !== 0 || lastOrientation[2] !== 0) {\n pannerNode.setOrientation(...lastOrientation); // tslint:disable-line:deprecation\n }\n if (lastPosition[0] !== 0 || lastPosition[1] !== 0 || lastPosition[2] !== 0) {\n pannerNode.setPosition(...lastPosition); // tslint:disable-line:deprecation\n }\n const whenConnected = () => {\n inputGainNode.connect(pannerNode);\n // Bug #119: Safari does not fully support the WaveShaperNode.\n connectNativeAudioNodeToNativeAudioNode(inputGainNode, waveShaperNode, 0, 0);\n waveShaperNode.connect(orientationXGainNode).connect(channelMergerNode, 0, 0);\n waveShaperNode.connect(orientationYGainNode).connect(channelMergerNode, 0, 1);\n waveShaperNode.connect(orientationZGainNode).connect(channelMergerNode, 0, 2);\n waveShaperNode.connect(positionXGainNode).connect(channelMergerNode, 0, 3);\n waveShaperNode.connect(positionYGainNode).connect(channelMergerNode, 0, 4);\n waveShaperNode.connect(positionZGainNode).connect(channelMergerNode, 0, 5);\n channelMergerNode.connect(scriptProcessorNode).connect(nativeContext.destination);\n };\n const whenDisconnected = () => {\n inputGainNode.disconnect(pannerNode);\n // Bug #119: Safari does not fully support the WaveShaperNode.\n disconnectNativeAudioNodeFromNativeAudioNode(inputGainNode, waveShaperNode, 0, 0);\n waveShaperNode.disconnect(orientationXGainNode);\n orientationXGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(orientationYGainNode);\n orientationYGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(orientationZGainNode);\n orientationZGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionXGainNode);\n positionXGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionYGainNode);\n positionYGainNode.disconnect(channelMergerNode);\n waveShaperNode.disconnect(positionZGainNode);\n positionZGainNode.disconnect(channelMergerNode);\n channelMergerNode.disconnect(scriptProcessorNode);\n scriptProcessorNode.disconnect(nativeContext.destination);\n };\n return monitorConnections(interceptConnections(nativePannerNodeFaker, pannerNode), whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=native-panner-node-faker-factory.js.map","export const createNativePeriodicWaveFactory = (createIndexSizeError) => {\n return (nativeContext, { disableNormalization, imag, real }) => {\n // Bug #180: Safari does not allow to use ordinary arrays.\n const convertedImag = imag instanceof Float32Array ? imag : new Float32Array(imag);\n const convertedReal = real instanceof Float32Array ? real : new Float32Array(real);\n const nativePeriodicWave = nativeContext.createPeriodicWave(convertedReal, convertedImag, { disableNormalization });\n // Bug #181: Safari does not throw an IndexSizeError so far if the given arrays have less than two values.\n if (Array.from(imag).length < 2) {\n throw createIndexSizeError();\n }\n return nativePeriodicWave;\n };\n};\n//# sourceMappingURL=native-periodic-wave-factory.js.map","export const createNativeScriptProcessorNode = (nativeContext, bufferSize, numberOfInputChannels, numberOfOutputChannels) => {\n return nativeContext.createScriptProcessor(bufferSize, numberOfInputChannels, numberOfOutputChannels); // tslint:disable-line deprecation\n};\n//# sourceMappingURL=native-script-processor-node.js.map","import { assignNativeAudioNodeAudioParamValue } from '../helpers/assign-native-audio-node-audio-param-value';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeStereoPannerNodeFactory = (createNativeStereoPannerNodeFaker, createNotSupportedError) => {\n return (nativeContext, options) => {\n const channelCountMode = options.channelCountMode;\n /*\n * Bug #105: The channelCountMode of 'clamped-max' should be supported. However it is not possible to write a polyfill for Safari\n * which supports it and therefore it can't be supported at all.\n */\n if (channelCountMode === 'clamped-max') {\n throw createNotSupportedError();\n }\n // Bug #105: Safari does not support the StereoPannerNode.\n if (nativeContext.createStereoPanner === undefined) {\n return createNativeStereoPannerNodeFaker(nativeContext, options);\n }\n const nativeStereoPannerNode = nativeContext.createStereoPanner();\n assignNativeAudioNodeOptions(nativeStereoPannerNode, options);\n assignNativeAudioNodeAudioParamValue(nativeStereoPannerNode, options, 'pan');\n /*\n * Bug #105: The channelCountMode of 'clamped-max' should be supported. However it is not possible to write a polyfill for Safari\n * which supports it and therefore it can't be supported at all.\n */\n Object.defineProperty(nativeStereoPannerNode, 'channelCountMode', {\n get: () => channelCountMode,\n set: (value) => {\n if (value !== channelCountMode) {\n throw createNotSupportedError();\n }\n }\n });\n return nativeStereoPannerNode;\n };\n};\n//# sourceMappingURL=native-stereo-panner-node-factory.js.map","import { interceptConnections } from '../helpers/intercept-connections';\nexport const createNativeStereoPannerNodeFakerFactory = (createNativeChannelMergerNode, createNativeChannelSplitterNode, createNativeGainNode, createNativeWaveShaperNode, createNotSupportedError, monitorConnections) => {\n // The curve has a size of 14bit plus 1 value to have an exact representation for zero. This value has been determined experimentally.\n const CURVE_SIZE = 16385;\n const DC_CURVE = new Float32Array([1, 1]);\n const HALF_PI = Math.PI / 2;\n const SINGLE_CHANNEL_OPTIONS = { channelCount: 1, channelCountMode: 'explicit', channelInterpretation: 'discrete' };\n const SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS = { ...SINGLE_CHANNEL_OPTIONS, oversample: 'none' };\n const buildInternalGraphForMono = (nativeContext, inputGainNode, panGainNode, channelMergerNode) => {\n const leftWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightWaveShaperCurve = new Float32Array(CURVE_SIZE);\n for (let i = 0; i < CURVE_SIZE; i += 1) {\n const x = (i / (CURVE_SIZE - 1)) * HALF_PI;\n leftWaveShaperCurve[i] = Math.cos(x);\n rightWaveShaperCurve[i] = Math.sin(x);\n }\n const leftGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftWaveShaperNode = (createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: leftWaveShaperCurve }));\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const panWaveShaperNode = (createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: DC_CURVE }));\n const rightGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightWaveShaperNode = (createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: rightWaveShaperCurve }));\n return {\n connectGraph() {\n inputGainNode.connect(leftGainNode);\n inputGainNode.connect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n inputGainNode.connect(rightGainNode);\n panWaveShaperNode.connect(panGainNode);\n panGainNode.connect(leftWaveShaperNode.inputs === undefined ? leftWaveShaperNode : leftWaveShaperNode.inputs[0]);\n panGainNode.connect(rightWaveShaperNode.inputs === undefined ? rightWaveShaperNode : rightWaveShaperNode.inputs[0]);\n leftWaveShaperNode.connect(leftGainNode.gain);\n rightWaveShaperNode.connect(rightGainNode.gain);\n leftGainNode.connect(channelMergerNode, 0, 0);\n rightGainNode.connect(channelMergerNode, 0, 1);\n },\n disconnectGraph() {\n inputGainNode.disconnect(leftGainNode);\n inputGainNode.disconnect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n inputGainNode.disconnect(rightGainNode);\n panWaveShaperNode.disconnect(panGainNode);\n panGainNode.disconnect(leftWaveShaperNode.inputs === undefined ? leftWaveShaperNode : leftWaveShaperNode.inputs[0]);\n panGainNode.disconnect(rightWaveShaperNode.inputs === undefined ? rightWaveShaperNode : rightWaveShaperNode.inputs[0]);\n leftWaveShaperNode.disconnect(leftGainNode.gain);\n rightWaveShaperNode.disconnect(rightGainNode.gain);\n leftGainNode.disconnect(channelMergerNode, 0, 0);\n rightGainNode.disconnect(channelMergerNode, 0, 1);\n }\n };\n };\n const buildInternalGraphForStereo = (nativeContext, inputGainNode, panGainNode, channelMergerNode) => {\n const leftInputForLeftOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const leftInputForRightOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightInputForLeftOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const rightInputForRightOutputWaveShaperCurve = new Float32Array(CURVE_SIZE);\n const centerIndex = Math.floor(CURVE_SIZE / 2);\n for (let i = 0; i < CURVE_SIZE; i += 1) {\n if (i > centerIndex) {\n const x = ((i - centerIndex) / (CURVE_SIZE - 1 - centerIndex)) * HALF_PI;\n leftInputForLeftOutputWaveShaperCurve[i] = Math.cos(x);\n leftInputForRightOutputWaveShaperCurve[i] = Math.sin(x);\n rightInputForLeftOutputWaveShaperCurve[i] = 0;\n rightInputForRightOutputWaveShaperCurve[i] = 1;\n }\n else {\n const x = (i / (CURVE_SIZE - 1 - centerIndex)) * HALF_PI;\n leftInputForLeftOutputWaveShaperCurve[i] = 1;\n leftInputForRightOutputWaveShaperCurve[i] = 0;\n rightInputForLeftOutputWaveShaperCurve[i] = Math.cos(x);\n rightInputForRightOutputWaveShaperCurve[i] = Math.sin(x);\n }\n }\n const channelSplitterNode = createNativeChannelSplitterNode(nativeContext, {\n channelCount: 2,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n numberOfOutputs: 2\n });\n const leftInputForLeftOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftInputForLeftOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: leftInputForLeftOutputWaveShaperCurve\n });\n const leftInputForRightOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const leftInputForRightOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: leftInputForRightOutputWaveShaperCurve\n });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const panWaveShaperNode = (createNativeWaveShaperNode(nativeContext, { ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS, curve: DC_CURVE }));\n const rightInputForLeftOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightInputForLeftOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: rightInputForLeftOutputWaveShaperCurve\n });\n const rightInputForRightOutputGainNode = createNativeGainNode(nativeContext, { ...SINGLE_CHANNEL_OPTIONS, gain: 0 });\n // Bug #119: Safari does not fully support the WaveShaperNode.\n const rightInputForRightOutputWaveShaperNode = createNativeWaveShaperNode(nativeContext, {\n ...SINGLE_CHANNEL_WAVE_SHAPER_OPTIONS,\n curve: rightInputForRightOutputWaveShaperCurve\n });\n return {\n connectGraph() {\n inputGainNode.connect(channelSplitterNode);\n inputGainNode.connect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n channelSplitterNode.connect(leftInputForLeftOutputGainNode, 0);\n channelSplitterNode.connect(leftInputForRightOutputGainNode, 0);\n channelSplitterNode.connect(rightInputForLeftOutputGainNode, 1);\n channelSplitterNode.connect(rightInputForRightOutputGainNode, 1);\n panWaveShaperNode.connect(panGainNode);\n panGainNode.connect(leftInputForLeftOutputWaveShaperNode.inputs === undefined\n ? leftInputForLeftOutputWaveShaperNode\n : leftInputForLeftOutputWaveShaperNode.inputs[0]);\n panGainNode.connect(leftInputForRightOutputWaveShaperNode.inputs === undefined\n ? leftInputForRightOutputWaveShaperNode\n : leftInputForRightOutputWaveShaperNode.inputs[0]);\n panGainNode.connect(rightInputForLeftOutputWaveShaperNode.inputs === undefined\n ? rightInputForLeftOutputWaveShaperNode\n : rightInputForLeftOutputWaveShaperNode.inputs[0]);\n panGainNode.connect(rightInputForRightOutputWaveShaperNode.inputs === undefined\n ? rightInputForRightOutputWaveShaperNode\n : rightInputForRightOutputWaveShaperNode.inputs[0]);\n leftInputForLeftOutputWaveShaperNode.connect(leftInputForLeftOutputGainNode.gain);\n leftInputForRightOutputWaveShaperNode.connect(leftInputForRightOutputGainNode.gain);\n rightInputForLeftOutputWaveShaperNode.connect(rightInputForLeftOutputGainNode.gain);\n rightInputForRightOutputWaveShaperNode.connect(rightInputForRightOutputGainNode.gain);\n leftInputForLeftOutputGainNode.connect(channelMergerNode, 0, 0);\n rightInputForLeftOutputGainNode.connect(channelMergerNode, 0, 0);\n leftInputForRightOutputGainNode.connect(channelMergerNode, 0, 1);\n rightInputForRightOutputGainNode.connect(channelMergerNode, 0, 1);\n },\n disconnectGraph() {\n inputGainNode.disconnect(channelSplitterNode);\n inputGainNode.disconnect(panWaveShaperNode.inputs === undefined ? panWaveShaperNode : panWaveShaperNode.inputs[0]);\n channelSplitterNode.disconnect(leftInputForLeftOutputGainNode, 0);\n channelSplitterNode.disconnect(leftInputForRightOutputGainNode, 0);\n channelSplitterNode.disconnect(rightInputForLeftOutputGainNode, 1);\n channelSplitterNode.disconnect(rightInputForRightOutputGainNode, 1);\n panWaveShaperNode.disconnect(panGainNode);\n panGainNode.disconnect(leftInputForLeftOutputWaveShaperNode.inputs === undefined\n ? leftInputForLeftOutputWaveShaperNode\n : leftInputForLeftOutputWaveShaperNode.inputs[0]);\n panGainNode.disconnect(leftInputForRightOutputWaveShaperNode.inputs === undefined\n ? leftInputForRightOutputWaveShaperNode\n : leftInputForRightOutputWaveShaperNode.inputs[0]);\n panGainNode.disconnect(rightInputForLeftOutputWaveShaperNode.inputs === undefined\n ? rightInputForLeftOutputWaveShaperNode\n : rightInputForLeftOutputWaveShaperNode.inputs[0]);\n panGainNode.disconnect(rightInputForRightOutputWaveShaperNode.inputs === undefined\n ? rightInputForRightOutputWaveShaperNode\n : rightInputForRightOutputWaveShaperNode.inputs[0]);\n leftInputForLeftOutputWaveShaperNode.disconnect(leftInputForLeftOutputGainNode.gain);\n leftInputForRightOutputWaveShaperNode.disconnect(leftInputForRightOutputGainNode.gain);\n rightInputForLeftOutputWaveShaperNode.disconnect(rightInputForLeftOutputGainNode.gain);\n rightInputForRightOutputWaveShaperNode.disconnect(rightInputForRightOutputGainNode.gain);\n leftInputForLeftOutputGainNode.disconnect(channelMergerNode, 0, 0);\n rightInputForLeftOutputGainNode.disconnect(channelMergerNode, 0, 0);\n leftInputForRightOutputGainNode.disconnect(channelMergerNode, 0, 1);\n rightInputForRightOutputGainNode.disconnect(channelMergerNode, 0, 1);\n }\n };\n };\n const buildInternalGraph = (nativeContext, channelCount, inputGainNode, panGainNode, channelMergerNode) => {\n if (channelCount === 1) {\n return buildInternalGraphForMono(nativeContext, inputGainNode, panGainNode, channelMergerNode);\n }\n if (channelCount === 2) {\n return buildInternalGraphForStereo(nativeContext, inputGainNode, panGainNode, channelMergerNode);\n }\n throw createNotSupportedError();\n };\n return (nativeContext, { channelCount, channelCountMode, pan, ...audioNodeOptions }) => {\n if (channelCountMode === 'max') {\n throw createNotSupportedError();\n }\n const channelMergerNode = createNativeChannelMergerNode(nativeContext, {\n ...audioNodeOptions,\n channelCount: 1,\n channelCountMode,\n numberOfInputs: 2\n });\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, channelCount, channelCountMode, gain: 1 });\n const panGainNode = createNativeGainNode(nativeContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: pan\n });\n let { connectGraph, disconnectGraph } = buildInternalGraph(nativeContext, channelCount, inputGainNode, panGainNode, channelMergerNode);\n Object.defineProperty(panGainNode.gain, 'defaultValue', { get: () => 0 });\n Object.defineProperty(panGainNode.gain, 'maxValue', { get: () => 1 });\n Object.defineProperty(panGainNode.gain, 'minValue', { get: () => -1 });\n const nativeStereoPannerNodeFakerFactory = {\n get bufferSize() {\n return undefined;\n },\n get channelCount() {\n return inputGainNode.channelCount;\n },\n set channelCount(value) {\n if (inputGainNode.channelCount !== value) {\n if (isConnected) {\n disconnectGraph();\n }\n ({ connectGraph, disconnectGraph } = buildInternalGraph(nativeContext, value, inputGainNode, panGainNode, channelMergerNode));\n if (isConnected) {\n connectGraph();\n }\n }\n inputGainNode.channelCount = value;\n },\n get channelCountMode() {\n return inputGainNode.channelCountMode;\n },\n set channelCountMode(value) {\n if (value === 'clamped-max' || value === 'max') {\n throw createNotSupportedError();\n }\n inputGainNode.channelCountMode = value;\n },\n get channelInterpretation() {\n return inputGainNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n },\n get context() {\n return inputGainNode.context;\n },\n get inputs() {\n return [inputGainNode];\n },\n get numberOfInputs() {\n return inputGainNode.numberOfInputs;\n },\n get numberOfOutputs() {\n return inputGainNode.numberOfOutputs;\n },\n get pan() {\n return panGainNode.gain;\n },\n addEventListener(...args) {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args) {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args) {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n let isConnected = false;\n const whenConnected = () => {\n connectGraph();\n isConnected = true;\n };\n const whenDisconnected = () => {\n disconnectGraph();\n isConnected = false;\n };\n return monitorConnections(interceptConnections(nativeStereoPannerNodeFakerFactory, channelMergerNode), whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=native-stereo-panner-node-faker-factory.js.map","import { assignNativeAudioNodeOption } from '../helpers/assign-native-audio-node-option';\nimport { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nexport const createNativeWaveShaperNodeFactory = (createConnectedNativeAudioBufferSourceNode, createInvalidStateError, createNativeWaveShaperNodeFaker, isDCCurve, monitorConnections, nativeAudioContextConstructor, overwriteAccessors) => {\n return (nativeContext, options) => {\n const nativeWaveShaperNode = nativeContext.createWaveShaper();\n /*\n * Bug #119: Safari does not correctly map the values.\n * @todo Unfortunately there is no way to test for this behavior in a synchronous fashion which is why testing for the existence of\n * the webkitAudioContext is used as a workaround here. Testing for the automationRate property is necessary because this workaround\n * isn't necessary anymore since v14.0.2 of Safari.\n */\n if (nativeAudioContextConstructor !== null &&\n nativeAudioContextConstructor.name === 'webkitAudioContext' &&\n nativeContext.createGain().gain.automationRate === undefined) {\n return createNativeWaveShaperNodeFaker(nativeContext, options);\n }\n assignNativeAudioNodeOptions(nativeWaveShaperNode, options);\n const curve = options.curve === null || options.curve instanceof Float32Array ? options.curve : new Float32Array(options.curve);\n // Bug #104: Chrome, Edge and Opera will throw an InvalidAccessError when the curve has less than two samples.\n if (curve !== null && curve.length < 2) {\n throw createInvalidStateError();\n }\n // Only values of type Float32Array can be assigned to the curve property.\n assignNativeAudioNodeOption(nativeWaveShaperNode, { curve }, 'curve');\n assignNativeAudioNodeOption(nativeWaveShaperNode, options, 'oversample');\n let disconnectNativeAudioBufferSourceNode = null;\n let isConnected = false;\n overwriteAccessors(nativeWaveShaperNode, 'curve', (get) => () => get.call(nativeWaveShaperNode), (set) => (value) => {\n set.call(nativeWaveShaperNode, value);\n if (isConnected) {\n if (isDCCurve(value) && disconnectNativeAudioBufferSourceNode === null) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, nativeWaveShaperNode);\n }\n else if (!isDCCurve(value) && disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n }\n return value;\n });\n const whenConnected = () => {\n isConnected = true;\n if (isDCCurve(nativeWaveShaperNode.curve)) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, nativeWaveShaperNode);\n }\n };\n const whenDisconnected = () => {\n isConnected = false;\n if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n };\n return monitorConnections(nativeWaveShaperNode, whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=native-wave-shaper-node-factory.js.map","import { assignNativeAudioNodeOptions } from '../helpers/assign-native-audio-node-options';\nimport { interceptConnections } from '../helpers/intercept-connections';\nexport const createNativeWaveShaperNodeFakerFactory = (createConnectedNativeAudioBufferSourceNode, createInvalidStateError, createNativeGainNode, isDCCurve, monitorConnections) => {\n return (nativeContext, { curve, oversample, ...audioNodeOptions }) => {\n const negativeWaveShaperNode = nativeContext.createWaveShaper();\n const positiveWaveShaperNode = nativeContext.createWaveShaper();\n assignNativeAudioNodeOptions(negativeWaveShaperNode, audioNodeOptions);\n assignNativeAudioNodeOptions(positiveWaveShaperNode, audioNodeOptions);\n const inputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const invertGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: -1 });\n const outputGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: 1 });\n const revertGainNode = createNativeGainNode(nativeContext, { ...audioNodeOptions, gain: -1 });\n let disconnectNativeAudioBufferSourceNode = null;\n let isConnected = false;\n let unmodifiedCurve = null;\n const nativeWaveShaperNodeFaker = {\n get bufferSize() {\n return undefined;\n },\n get channelCount() {\n return negativeWaveShaperNode.channelCount;\n },\n set channelCount(value) {\n inputGainNode.channelCount = value;\n invertGainNode.channelCount = value;\n negativeWaveShaperNode.channelCount = value;\n outputGainNode.channelCount = value;\n positiveWaveShaperNode.channelCount = value;\n revertGainNode.channelCount = value;\n },\n get channelCountMode() {\n return negativeWaveShaperNode.channelCountMode;\n },\n set channelCountMode(value) {\n inputGainNode.channelCountMode = value;\n invertGainNode.channelCountMode = value;\n negativeWaveShaperNode.channelCountMode = value;\n outputGainNode.channelCountMode = value;\n positiveWaveShaperNode.channelCountMode = value;\n revertGainNode.channelCountMode = value;\n },\n get channelInterpretation() {\n return negativeWaveShaperNode.channelInterpretation;\n },\n set channelInterpretation(value) {\n inputGainNode.channelInterpretation = value;\n invertGainNode.channelInterpretation = value;\n negativeWaveShaperNode.channelInterpretation = value;\n outputGainNode.channelInterpretation = value;\n positiveWaveShaperNode.channelInterpretation = value;\n revertGainNode.channelInterpretation = value;\n },\n get context() {\n return negativeWaveShaperNode.context;\n },\n get curve() {\n return unmodifiedCurve;\n },\n set curve(value) {\n // Bug #102: Safari does not throw an InvalidStateError when the curve has less than two samples.\n if (value !== null && value.length < 2) {\n throw createInvalidStateError();\n }\n if (value === null) {\n negativeWaveShaperNode.curve = value;\n positiveWaveShaperNode.curve = value;\n }\n else {\n const curveLength = value.length;\n const negativeCurve = new Float32Array(curveLength + 2 - (curveLength % 2));\n const positiveCurve = new Float32Array(curveLength + 2 - (curveLength % 2));\n negativeCurve[0] = value[0];\n positiveCurve[0] = -value[curveLength - 1];\n const length = Math.ceil((curveLength + 1) / 2);\n const centerIndex = (curveLength + 1) / 2 - 1;\n for (let i = 1; i < length; i += 1) {\n const theoreticIndex = (i / length) * centerIndex;\n const lowerIndex = Math.floor(theoreticIndex);\n const upperIndex = Math.ceil(theoreticIndex);\n negativeCurve[i] =\n lowerIndex === upperIndex\n ? value[lowerIndex]\n : (1 - (theoreticIndex - lowerIndex)) * value[lowerIndex] +\n (1 - (upperIndex - theoreticIndex)) * value[upperIndex];\n positiveCurve[i] =\n lowerIndex === upperIndex\n ? -value[curveLength - 1 - lowerIndex]\n : -((1 - (theoreticIndex - lowerIndex)) * value[curveLength - 1 - lowerIndex]) -\n (1 - (upperIndex - theoreticIndex)) * value[curveLength - 1 - upperIndex];\n }\n negativeCurve[length] = curveLength % 2 === 1 ? value[length - 1] : (value[length - 2] + value[length - 1]) / 2;\n negativeWaveShaperNode.curve = negativeCurve;\n positiveWaveShaperNode.curve = positiveCurve;\n }\n unmodifiedCurve = value;\n if (isConnected) {\n if (isDCCurve(unmodifiedCurve) && disconnectNativeAudioBufferSourceNode === null) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, inputGainNode);\n }\n else if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n }\n },\n get inputs() {\n return [inputGainNode];\n },\n get numberOfInputs() {\n return negativeWaveShaperNode.numberOfInputs;\n },\n get numberOfOutputs() {\n return negativeWaveShaperNode.numberOfOutputs;\n },\n get oversample() {\n return negativeWaveShaperNode.oversample;\n },\n set oversample(value) {\n negativeWaveShaperNode.oversample = value;\n positiveWaveShaperNode.oversample = value;\n },\n addEventListener(...args) {\n return inputGainNode.addEventListener(args[0], args[1], args[2]);\n },\n dispatchEvent(...args) {\n return inputGainNode.dispatchEvent(args[0]);\n },\n removeEventListener(...args) {\n return inputGainNode.removeEventListener(args[0], args[1], args[2]);\n }\n };\n if (curve !== null) {\n // Only values of type Float32Array can be assigned to the curve property.\n nativeWaveShaperNodeFaker.curve = curve instanceof Float32Array ? curve : new Float32Array(curve);\n }\n if (oversample !== nativeWaveShaperNodeFaker.oversample) {\n nativeWaveShaperNodeFaker.oversample = oversample;\n }\n const whenConnected = () => {\n inputGainNode.connect(negativeWaveShaperNode).connect(outputGainNode);\n inputGainNode.connect(invertGainNode).connect(positiveWaveShaperNode).connect(revertGainNode).connect(outputGainNode);\n isConnected = true;\n if (isDCCurve(unmodifiedCurve)) {\n disconnectNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNode(nativeContext, inputGainNode);\n }\n };\n const whenDisconnected = () => {\n inputGainNode.disconnect(negativeWaveShaperNode);\n negativeWaveShaperNode.disconnect(outputGainNode);\n inputGainNode.disconnect(invertGainNode);\n invertGainNode.disconnect(positiveWaveShaperNode);\n positiveWaveShaperNode.disconnect(revertGainNode);\n revertGainNode.disconnect(outputGainNode);\n isConnected = false;\n if (disconnectNativeAudioBufferSourceNode !== null) {\n disconnectNativeAudioBufferSourceNode();\n disconnectNativeAudioBufferSourceNode = null;\n }\n };\n return monitorConnections(interceptConnections(nativeWaveShaperNodeFaker, outputGainNode), whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=native-wave-shaper-node-faker-factory.js.map","export const createNotSupportedError = () => new DOMException('', 'NotSupportedError');\n//# sourceMappingURL=not-supported-error.js.map","import { deactivateAudioGraph } from '../helpers/deactivate-audio-graph';\nimport { testPromiseSupport } from '../helpers/test-promise-support';\nconst DEFAULT_OPTIONS = {\n numberOfChannels: 1\n};\nexport const createOfflineAudioContextConstructor = (baseAudioContextConstructor, cacheTestResult, createInvalidStateError, createNativeOfflineAudioContext, startRendering) => {\n return class OfflineAudioContext extends baseAudioContextConstructor {\n constructor(a, b, c) {\n let options;\n if (typeof a === 'number' && b !== undefined && c !== undefined) {\n options = { length: b, numberOfChannels: a, sampleRate: c };\n }\n else if (typeof a === 'object') {\n options = a;\n }\n else {\n throw new Error('The given parameters are not valid.');\n }\n const { length, numberOfChannels, sampleRate } = { ...DEFAULT_OPTIONS, ...options };\n const nativeOfflineAudioContext = createNativeOfflineAudioContext(numberOfChannels, length, sampleRate);\n // #21 Safari does not support promises and therefore would fire the statechange event before the promise can be resolved.\n if (!cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n nativeOfflineAudioContext.addEventListener('statechange', (() => {\n let i = 0;\n const delayStateChangeEvent = (event) => {\n if (this._state === 'running') {\n if (i > 0) {\n nativeOfflineAudioContext.removeEventListener('statechange', delayStateChangeEvent);\n event.stopImmediatePropagation();\n this._waitForThePromiseToSettle(event);\n }\n else {\n i += 1;\n }\n }\n };\n return delayStateChangeEvent;\n })());\n }\n super(nativeOfflineAudioContext, numberOfChannels);\n this._length = length;\n this._nativeOfflineAudioContext = nativeOfflineAudioContext;\n this._state = null;\n }\n get length() {\n // Bug #17: Safari does not yet expose the length.\n if (this._nativeOfflineAudioContext.length === undefined) {\n return this._length;\n }\n return this._nativeOfflineAudioContext.length;\n }\n get state() {\n return this._state === null ? this._nativeOfflineAudioContext.state : this._state;\n }\n startRendering() {\n /*\n * Bug #9 & #59: It is theoretically possible that startRendering() will first render a partialOfflineAudioContext. Therefore\n * the state of the nativeOfflineAudioContext might no transition to running immediately.\n */\n if (this._state === 'running') {\n return Promise.reject(createInvalidStateError());\n }\n this._state = 'running';\n return startRendering(this.destination, this._nativeOfflineAudioContext).finally(() => {\n this._state = null;\n deactivateAudioGraph(this);\n });\n }\n _waitForThePromiseToSettle(event) {\n if (this._state === null) {\n this._nativeOfflineAudioContext.dispatchEvent(event);\n }\n else {\n setTimeout(() => this._waitForThePromiseToSettle(event));\n }\n }\n };\n};\n//# sourceMappingURL=offline-audio-context-constructor.js.map","import { isActiveAudioNode } from '../helpers/is-active-audio-node';\nimport { setInternalStateToActive } from '../helpers/set-internal-state-to-active';\nimport { setInternalStateToPassive } from '../helpers/set-internal-state-to-passive';\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n detune: 0,\n frequency: 440,\n periodicWave: undefined,\n type: 'sine'\n};\nexport const createOscillatorNodeConstructor = (audioNodeConstructor, createAudioParam, createNativeOscillatorNode, createOscillatorNodeRenderer, getNativeContext, isNativeOfflineAudioContext, wrapEventListener) => {\n return class OscillatorNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeOscillatorNode = createNativeOscillatorNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const oscillatorNodeRenderer = (isOffline ? createOscillatorNodeRenderer() : null);\n const nyquist = context.sampleRate / 2;\n super(context, false, nativeOscillatorNode, oscillatorNodeRenderer);\n // Bug #81: Firefox & Safari do not export the correct values for maxValue and minValue.\n this._detune = createAudioParam(this, isOffline, nativeOscillatorNode.detune, 153600, -153600);\n // Bug #76: Safari does not export the correct values for maxValue and minValue.\n this._frequency = createAudioParam(this, isOffline, nativeOscillatorNode.frequency, nyquist, -nyquist);\n this._nativeOscillatorNode = nativeOscillatorNode;\n this._onended = null;\n this._oscillatorNodeRenderer = oscillatorNodeRenderer;\n if (this._oscillatorNodeRenderer !== null && mergedOptions.periodicWave !== undefined) {\n this._oscillatorNodeRenderer.periodicWave =\n mergedOptions.periodicWave;\n }\n }\n get detune() {\n return this._detune;\n }\n get frequency() {\n return this._frequency;\n }\n get onended() {\n return this._onended;\n }\n set onended(value) {\n const wrappedListener = typeof value === 'function' ? wrapEventListener(this, value) : null;\n this._nativeOscillatorNode.onended = wrappedListener;\n const nativeOnEnded = this._nativeOscillatorNode.onended;\n this._onended = nativeOnEnded !== null && nativeOnEnded === wrappedListener ? value : nativeOnEnded;\n }\n get type() {\n return this._nativeOscillatorNode.type;\n }\n set type(value) {\n this._nativeOscillatorNode.type = value;\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.periodicWave = null;\n }\n }\n setPeriodicWave(periodicWave) {\n this._nativeOscillatorNode.setPeriodicWave(periodicWave);\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.periodicWave = periodicWave;\n }\n }\n start(when = 0) {\n this._nativeOscillatorNode.start(when);\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.start = when;\n }\n if (this.context.state !== 'closed') {\n setInternalStateToActive(this);\n const resetInternalStateToPassive = () => {\n this._nativeOscillatorNode.removeEventListener('ended', resetInternalStateToPassive);\n if (isActiveAudioNode(this)) {\n setInternalStateToPassive(this);\n }\n };\n this._nativeOscillatorNode.addEventListener('ended', resetInternalStateToPassive);\n }\n }\n stop(when = 0) {\n this._nativeOscillatorNode.stop(when);\n if (this._oscillatorNodeRenderer !== null) {\n this._oscillatorNodeRenderer.stop = when;\n }\n }\n };\n};\n//# sourceMappingURL=oscillator-node-constructor.js.map","import { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createOscillatorNodeRendererFactory = (connectAudioParam, createNativeOscillatorNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeOscillatorNodes = new WeakMap();\n let periodicWave = null;\n let start = null;\n let stop = null;\n const createOscillatorNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeOscillatorNode = getNativeAudioNode(proxy);\n // If the initially used nativeOscillatorNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeOscillatorNodeIsOwnedByContext = isOwnedByContext(nativeOscillatorNode, nativeOfflineAudioContext);\n if (!nativeOscillatorNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeOscillatorNode.channelCount,\n channelCountMode: nativeOscillatorNode.channelCountMode,\n channelInterpretation: nativeOscillatorNode.channelInterpretation,\n detune: nativeOscillatorNode.detune.value,\n frequency: nativeOscillatorNode.frequency.value,\n periodicWave: periodicWave === null ? undefined : periodicWave,\n type: nativeOscillatorNode.type\n };\n nativeOscillatorNode = createNativeOscillatorNode(nativeOfflineAudioContext, options);\n if (start !== null) {\n nativeOscillatorNode.start(start);\n }\n if (stop !== null) {\n nativeOscillatorNode.stop(stop);\n }\n }\n renderedNativeOscillatorNodes.set(nativeOfflineAudioContext, nativeOscillatorNode);\n if (!nativeOscillatorNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.detune, nativeOscillatorNode.detune);\n await renderAutomation(nativeOfflineAudioContext, proxy.frequency, nativeOscillatorNode.frequency);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.detune, nativeOscillatorNode.detune);\n await connectAudioParam(nativeOfflineAudioContext, proxy.frequency, nativeOscillatorNode.frequency);\n }\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeOscillatorNode);\n return nativeOscillatorNode;\n };\n return {\n set periodicWave(value) {\n periodicWave = value;\n },\n set start(value) {\n start = value;\n },\n set stop(value) {\n stop = value;\n },\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeOscillatorNode = renderedNativeOscillatorNodes.get(nativeOfflineAudioContext);\n if (renderedNativeOscillatorNode !== undefined) {\n return Promise.resolve(renderedNativeOscillatorNode);\n }\n return createOscillatorNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=oscillator-node-renderer-factory.js.map","import { MOST_NEGATIVE_SINGLE_FLOAT, MOST_POSITIVE_SINGLE_FLOAT } from '../constants';\nconst DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'clamped-max',\n channelInterpretation: 'speakers',\n coneInnerAngle: 360,\n coneOuterAngle: 360,\n coneOuterGain: 0,\n distanceModel: 'inverse',\n maxDistance: 10000,\n orientationX: 1,\n orientationY: 0,\n orientationZ: 0,\n panningModel: 'equalpower',\n positionX: 0,\n positionY: 0,\n positionZ: 0,\n refDistance: 1,\n rolloffFactor: 1\n};\nexport const createPannerNodeConstructor = (audioNodeConstructor, createAudioParam, createNativePannerNode, createPannerNodeRenderer, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class PannerNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativePannerNode = createNativePannerNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const pannerNodeRenderer = (isOffline ? createPannerNodeRenderer() : null);\n super(context, false, nativePannerNode, pannerNodeRenderer);\n this._nativePannerNode = nativePannerNode;\n // Bug #74: Safari does not export the correct values for maxValue and minValue.\n this._orientationX = createAudioParam(this, isOffline, nativePannerNode.orientationX, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n this._orientationY = createAudioParam(this, isOffline, nativePannerNode.orientationY, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n this._orientationZ = createAudioParam(this, isOffline, nativePannerNode.orientationZ, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n this._positionX = createAudioParam(this, isOffline, nativePannerNode.positionX, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n this._positionY = createAudioParam(this, isOffline, nativePannerNode.positionY, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n this._positionZ = createAudioParam(this, isOffline, nativePannerNode.positionZ, MOST_POSITIVE_SINGLE_FLOAT, MOST_NEGATIVE_SINGLE_FLOAT);\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n get coneInnerAngle() {\n return this._nativePannerNode.coneInnerAngle;\n }\n set coneInnerAngle(value) {\n this._nativePannerNode.coneInnerAngle = value;\n }\n get coneOuterAngle() {\n return this._nativePannerNode.coneOuterAngle;\n }\n set coneOuterAngle(value) {\n this._nativePannerNode.coneOuterAngle = value;\n }\n get coneOuterGain() {\n return this._nativePannerNode.coneOuterGain;\n }\n set coneOuterGain(value) {\n this._nativePannerNode.coneOuterGain = value;\n }\n get distanceModel() {\n return this._nativePannerNode.distanceModel;\n }\n set distanceModel(value) {\n this._nativePannerNode.distanceModel = value;\n }\n get maxDistance() {\n return this._nativePannerNode.maxDistance;\n }\n set maxDistance(value) {\n this._nativePannerNode.maxDistance = value;\n }\n get orientationX() {\n return this._orientationX;\n }\n get orientationY() {\n return this._orientationY;\n }\n get orientationZ() {\n return this._orientationZ;\n }\n get panningModel() {\n return this._nativePannerNode.panningModel;\n }\n set panningModel(value) {\n this._nativePannerNode.panningModel = value;\n }\n get positionX() {\n return this._positionX;\n }\n get positionY() {\n return this._positionY;\n }\n get positionZ() {\n return this._positionZ;\n }\n get refDistance() {\n return this._nativePannerNode.refDistance;\n }\n set refDistance(value) {\n this._nativePannerNode.refDistance = value;\n }\n get rolloffFactor() {\n return this._nativePannerNode.rolloffFactor;\n }\n set rolloffFactor(value) {\n this._nativePannerNode.rolloffFactor = value;\n }\n };\n};\n//# sourceMappingURL=panner-node-constructor.js.map","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createPannerNodeRendererFactory = (connectAudioParam, createNativeChannelMergerNode, createNativeConstantSourceNode, createNativeGainNode, createNativePannerNode, getNativeAudioNode, nativeOfflineAudioContextConstructor, renderAutomation, renderInputsOfAudioNode, renderNativeOfflineAudioContext) => {\n return () => {\n const renderedNativeAudioNodes = new WeakMap();\n let renderedBufferPromise = null;\n const createAudioNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeGainNode = null;\n let nativePannerNode = getNativeAudioNode(proxy);\n const commonAudioNodeOptions = {\n channelCount: nativePannerNode.channelCount,\n channelCountMode: nativePannerNode.channelCountMode,\n channelInterpretation: nativePannerNode.channelInterpretation\n };\n const commonNativePannerNodeOptions = {\n ...commonAudioNodeOptions,\n coneInnerAngle: nativePannerNode.coneInnerAngle,\n coneOuterAngle: nativePannerNode.coneOuterAngle,\n coneOuterGain: nativePannerNode.coneOuterGain,\n distanceModel: nativePannerNode.distanceModel,\n maxDistance: nativePannerNode.maxDistance,\n panningModel: nativePannerNode.panningModel,\n refDistance: nativePannerNode.refDistance,\n rolloffFactor: nativePannerNode.rolloffFactor\n };\n // If the initially used nativePannerNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativePannerNodeIsOwnedByContext = isOwnedByContext(nativePannerNode, nativeOfflineAudioContext);\n // Bug #124: Safari does not support modifying the orientation and the position with AudioParams.\n if ('bufferSize' in nativePannerNode) {\n nativeGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n }\n else if (!nativePannerNodeIsOwnedByContext) {\n const options = {\n ...commonNativePannerNodeOptions,\n orientationX: nativePannerNode.orientationX.value,\n orientationY: nativePannerNode.orientationY.value,\n orientationZ: nativePannerNode.orientationZ.value,\n positionX: nativePannerNode.positionX.value,\n positionY: nativePannerNode.positionY.value,\n positionZ: nativePannerNode.positionZ.value\n };\n nativePannerNode = createNativePannerNode(nativeOfflineAudioContext, options);\n }\n renderedNativeAudioNodes.set(nativeOfflineAudioContext, nativeGainNode === null ? nativePannerNode : nativeGainNode);\n if (nativeGainNode !== null) {\n if (renderedBufferPromise === null) {\n if (nativeOfflineAudioContextConstructor === null) {\n throw new Error('Missing the native OfflineAudioContext constructor.');\n }\n const partialOfflineAudioContext = new nativeOfflineAudioContextConstructor(6, \n // Bug #17: Safari does not yet expose the length.\n proxy.context.length, nativeOfflineAudioContext.sampleRate);\n const nativeChannelMergerNode = createNativeChannelMergerNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n numberOfInputs: 6\n });\n nativeChannelMergerNode.connect(partialOfflineAudioContext.destination);\n renderedBufferPromise = (async () => {\n const nativeConstantSourceNodes = await Promise.all([\n proxy.orientationX,\n proxy.orientationY,\n proxy.orientationZ,\n proxy.positionX,\n proxy.positionY,\n proxy.positionZ\n ].map(async (audioParam, index) => {\n const nativeConstantSourceNode = createNativeConstantSourceNode(partialOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n offset: index === 0 ? 1 : 0\n });\n await renderAutomation(partialOfflineAudioContext, audioParam, nativeConstantSourceNode.offset);\n return nativeConstantSourceNode;\n }));\n for (let i = 0; i < 6; i += 1) {\n nativeConstantSourceNodes[i].connect(nativeChannelMergerNode, 0, i);\n nativeConstantSourceNodes[i].start(0);\n }\n return renderNativeOfflineAudioContext(partialOfflineAudioContext);\n })();\n }\n const renderedBuffer = await renderedBufferPromise;\n const inputGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, inputGainNode);\n const channelDatas = [];\n for (let i = 0; i < renderedBuffer.numberOfChannels; i += 1) {\n channelDatas.push(renderedBuffer.getChannelData(i));\n }\n let lastOrientation = [channelDatas[0][0], channelDatas[1][0], channelDatas[2][0]];\n let lastPosition = [channelDatas[3][0], channelDatas[4][0], channelDatas[5][0]];\n let gateGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 1 });\n let partialPannerNode = createNativePannerNode(nativeOfflineAudioContext, {\n ...commonNativePannerNodeOptions,\n orientationX: lastOrientation[0],\n orientationY: lastOrientation[1],\n orientationZ: lastOrientation[2],\n positionX: lastPosition[0],\n positionY: lastPosition[1],\n positionZ: lastPosition[2]\n });\n inputGainNode.connect(gateGainNode).connect(partialPannerNode.inputs[0]);\n partialPannerNode.connect(nativeGainNode);\n for (let i = 128; i < renderedBuffer.length; i += 128) {\n const orientation = [channelDatas[0][i], channelDatas[1][i], channelDatas[2][i]];\n const positon = [channelDatas[3][i], channelDatas[4][i], channelDatas[5][i]];\n if (orientation.some((value, index) => value !== lastOrientation[index]) ||\n positon.some((value, index) => value !== lastPosition[index])) {\n lastOrientation = orientation;\n lastPosition = positon;\n const currentTime = i / nativeOfflineAudioContext.sampleRate;\n gateGainNode.gain.setValueAtTime(0, currentTime);\n gateGainNode = createNativeGainNode(nativeOfflineAudioContext, { ...commonAudioNodeOptions, gain: 0 });\n partialPannerNode = createNativePannerNode(nativeOfflineAudioContext, {\n ...commonNativePannerNodeOptions,\n orientationX: lastOrientation[0],\n orientationY: lastOrientation[1],\n orientationZ: lastOrientation[2],\n positionX: lastPosition[0],\n positionY: lastPosition[1],\n positionZ: lastPosition[2]\n });\n gateGainNode.gain.setValueAtTime(1, currentTime);\n inputGainNode.connect(gateGainNode).connect(partialPannerNode.inputs[0]);\n partialPannerNode.connect(nativeGainNode);\n }\n }\n return nativeGainNode;\n }\n if (!nativePannerNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationX, nativePannerNode.orientationX);\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationY, nativePannerNode.orientationY);\n await renderAutomation(nativeOfflineAudioContext, proxy.orientationZ, nativePannerNode.orientationZ);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionX, nativePannerNode.positionX);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionY, nativePannerNode.positionY);\n await renderAutomation(nativeOfflineAudioContext, proxy.positionZ, nativePannerNode.positionZ);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationX, nativePannerNode.orientationX);\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationY, nativePannerNode.orientationY);\n await connectAudioParam(nativeOfflineAudioContext, proxy.orientationZ, nativePannerNode.orientationZ);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionX, nativePannerNode.positionX);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionY, nativePannerNode.positionY);\n await connectAudioParam(nativeOfflineAudioContext, proxy.positionZ, nativePannerNode.positionZ);\n }\n if (isNativeAudioNodeFaker(nativePannerNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativePannerNode.inputs[0]);\n }\n else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativePannerNode);\n }\n return nativePannerNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeGainNodeOrNativePannerNode = renderedNativeAudioNodes.get(nativeOfflineAudioContext);\n if (renderedNativeGainNodeOrNativePannerNode !== undefined) {\n return Promise.resolve(renderedNativeGainNodeOrNativePannerNode);\n }\n return createAudioNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=panner-node-renderer-factory.js.map","const DEFAULT_OPTIONS = {\n disableNormalization: false\n};\nexport const createPeriodicWaveConstructor = (createNativePeriodicWave, getNativeContext, periodicWaveStore, sanitizePeriodicWaveOptions) => {\n return class PeriodicWave {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = sanitizePeriodicWaveOptions({ ...DEFAULT_OPTIONS, ...options });\n const periodicWave = createNativePeriodicWave(nativeContext, mergedOptions);\n periodicWaveStore.add(periodicWave);\n // This does violate all good pratices but it is used here to simplify the handling of periodic waves.\n return periodicWave;\n }\n static [Symbol.hasInstance](instance) {\n return ((instance !== null && typeof instance === 'object' && Object.getPrototypeOf(instance) === PeriodicWave.prototype) ||\n periodicWaveStore.has(instance));\n }\n };\n};\n//# sourceMappingURL=periodic-wave-constructor.js.map","export const createRenderAutomation = (getAudioParamRenderer, renderInputsOfAudioParam) => {\n return (nativeOfflineAudioContext, audioParam, nativeAudioParam) => {\n const audioParamRenderer = getAudioParamRenderer(audioParam);\n audioParamRenderer.replay(nativeAudioParam);\n return renderInputsOfAudioParam(audioParam, nativeOfflineAudioContext, nativeAudioParam);\n };\n};\n//# sourceMappingURL=render-automation.js.map","export const createRenderInputsOfAudioNode = (getAudioNodeConnections, getAudioNodeRenderer, isPartOfACycle) => {\n return async (audioNode, nativeOfflineAudioContext, nativeAudioNode) => {\n const audioNodeConnections = getAudioNodeConnections(audioNode);\n await Promise.all(audioNodeConnections.activeInputs\n .map((connections, input) => Array.from(connections).map(async ([source, output]) => {\n const audioNodeRenderer = getAudioNodeRenderer(source);\n const renderedNativeAudioNode = await audioNodeRenderer.render(source, nativeOfflineAudioContext);\n const destination = audioNode.context.destination;\n if (!isPartOfACycle(source) && (audioNode !== destination || !isPartOfACycle(audioNode))) {\n renderedNativeAudioNode.connect(nativeAudioNode, output, input);\n }\n }))\n .reduce((allRenderingPromises, renderingPromises) => [...allRenderingPromises, ...renderingPromises], []));\n };\n};\n//# sourceMappingURL=render-inputs-of-audio-node.js.map","export const createRenderInputsOfAudioParam = (getAudioNodeRenderer, getAudioParamConnections, isPartOfACycle) => {\n return async (audioParam, nativeOfflineAudioContext, nativeAudioParam) => {\n const audioParamConnections = getAudioParamConnections(audioParam);\n await Promise.all(Array.from(audioParamConnections.activeInputs).map(async ([source, output]) => {\n const audioNodeRenderer = getAudioNodeRenderer(source);\n const renderedNativeAudioNode = await audioNodeRenderer.render(source, nativeOfflineAudioContext);\n if (!isPartOfACycle(source)) {\n renderedNativeAudioNode.connect(nativeAudioParam, output);\n }\n }));\n };\n};\n//# sourceMappingURL=render-inputs-of-audio-param.js.map","import { testPromiseSupport } from '../helpers/test-promise-support';\nexport const createRenderNativeOfflineAudioContext = (cacheTestResult, createNativeGainNode, createNativeScriptProcessorNode, testOfflineAudioContextCurrentTimeSupport) => {\n return (nativeOfflineAudioContext) => {\n // Bug #21: Safari does not support promises yet.\n if (cacheTestResult(testPromiseSupport, () => testPromiseSupport(nativeOfflineAudioContext))) {\n // Bug #158: Chrome and Edge do not advance currentTime if it is not accessed while rendering the audio.\n return Promise.resolve(cacheTestResult(testOfflineAudioContextCurrentTimeSupport, testOfflineAudioContextCurrentTimeSupport)).then((isOfflineAudioContextCurrentTimeSupported) => {\n if (!isOfflineAudioContextCurrentTimeSupported) {\n const scriptProcessorNode = createNativeScriptProcessorNode(nativeOfflineAudioContext, 512, 0, 1);\n nativeOfflineAudioContext.oncomplete = () => {\n scriptProcessorNode.onaudioprocess = null; // tslint:disable-line:deprecation\n scriptProcessorNode.disconnect();\n };\n scriptProcessorNode.onaudioprocess = () => nativeOfflineAudioContext.currentTime; // tslint:disable-line:deprecation\n scriptProcessorNode.connect(nativeOfflineAudioContext.destination);\n }\n return nativeOfflineAudioContext.startRendering();\n });\n }\n return new Promise((resolve) => {\n // Bug #48: Safari does not render an OfflineAudioContext without any connected node.\n const gainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n nativeOfflineAudioContext.oncomplete = (event) => {\n gainNode.disconnect();\n resolve(event.renderedBuffer);\n };\n gainNode.connect(nativeOfflineAudioContext.destination);\n nativeOfflineAudioContext.startRendering();\n });\n };\n};\n//# sourceMappingURL=render-native-offline-audio-context.js.map","export const createSetActiveAudioWorkletNodeInputs = (activeAudioWorkletNodeInputsStore) => {\n return (nativeAudioWorkletNode, activeInputs) => {\n activeAudioWorkletNodeInputsStore.set(nativeAudioWorkletNode, activeInputs);\n };\n};\n//# sourceMappingURL=set-active-audio-worklet-node-inputs.js.map","export const createSetAudioNodeTailTime = (audioNodeTailTimeStore) => {\n return (audioNode, tailTime) => audioNodeTailTimeStore.set(audioNode, tailTime);\n};\n//# sourceMappingURL=set-audio-node-tail-time.js.map","import { wrapAudioBufferGetChannelDataMethod } from '../helpers/wrap-audio-buffer-get-channel-data-method';\nexport const createStartRendering = (audioBufferStore, cacheTestResult, getAudioNodeRenderer, getUnrenderedAudioWorkletNodes, renderNativeOfflineAudioContext, testAudioBufferCopyChannelMethodsOutOfBoundsSupport, wrapAudioBufferCopyChannelMethods, wrapAudioBufferCopyChannelMethodsOutOfBounds) => {\n return (destination, nativeOfflineAudioContext) => getAudioNodeRenderer(destination)\n .render(destination, nativeOfflineAudioContext)\n /*\n * Bug #86 & #87: Invoking the renderer of an AudioWorkletNode might be necessary if it has no direct or indirect connection to the\n * destination.\n */\n .then(() => Promise.all(Array.from(getUnrenderedAudioWorkletNodes(nativeOfflineAudioContext)).map((audioWorkletNode) => getAudioNodeRenderer(audioWorkletNode).render(audioWorkletNode, nativeOfflineAudioContext))))\n .then(() => renderNativeOfflineAudioContext(nativeOfflineAudioContext))\n .then((audioBuffer) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n // Bug #100: Safari does throw a wrong error when calling getChannelData() with an out-of-bounds value.\n if (typeof audioBuffer.copyFromChannel !== 'function') {\n wrapAudioBufferCopyChannelMethods(audioBuffer);\n wrapAudioBufferGetChannelDataMethod(audioBuffer);\n // Bug #157: Firefox does not allow the bufferOffset to be out-of-bounds.\n }\n else if (!cacheTestResult(testAudioBufferCopyChannelMethodsOutOfBoundsSupport, () => testAudioBufferCopyChannelMethodsOutOfBoundsSupport(audioBuffer))) {\n wrapAudioBufferCopyChannelMethodsOutOfBounds(audioBuffer);\n }\n audioBufferStore.add(audioBuffer);\n return audioBuffer;\n });\n};\n//# sourceMappingURL=start-rendering.js.map","const DEFAULT_OPTIONS = {\n channelCount: 2,\n /*\n * Bug #105: The channelCountMode should be 'clamped-max' according to the spec but is set to 'explicit' to achieve consistent\n * behavior.\n */\n channelCountMode: 'explicit',\n channelInterpretation: 'speakers',\n pan: 0\n};\nexport const createStereoPannerNodeConstructor = (audioNodeConstructor, createAudioParam, createNativeStereoPannerNode, createStereoPannerNodeRenderer, getNativeContext, isNativeOfflineAudioContext) => {\n return class StereoPannerNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeStereoPannerNode = createNativeStereoPannerNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const stereoPannerNodeRenderer = (isOffline ? createStereoPannerNodeRenderer() : null);\n super(context, false, nativeStereoPannerNode, stereoPannerNodeRenderer);\n this._pan = createAudioParam(this, isOffline, nativeStereoPannerNode.pan);\n }\n get pan() {\n return this._pan;\n }\n };\n};\n//# sourceMappingURL=stereo-panner-node-constructor.js.map","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createStereoPannerNodeRendererFactory = (connectAudioParam, createNativeStereoPannerNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeStereoPannerNodes = new WeakMap();\n const createStereoPannerNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeStereoPannerNode = getNativeAudioNode(proxy);\n /*\n * If the initially used nativeStereoPannerNode was not constructed on the same OfflineAudioContext it needs to be created\n * again.\n */\n const nativeStereoPannerNodeIsOwnedByContext = isOwnedByContext(nativeStereoPannerNode, nativeOfflineAudioContext);\n if (!nativeStereoPannerNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeStereoPannerNode.channelCount,\n channelCountMode: nativeStereoPannerNode.channelCountMode,\n channelInterpretation: nativeStereoPannerNode.channelInterpretation,\n pan: nativeStereoPannerNode.pan.value\n };\n nativeStereoPannerNode = createNativeStereoPannerNode(nativeOfflineAudioContext, options);\n }\n renderedNativeStereoPannerNodes.set(nativeOfflineAudioContext, nativeStereoPannerNode);\n if (!nativeStereoPannerNodeIsOwnedByContext) {\n await renderAutomation(nativeOfflineAudioContext, proxy.pan, nativeStereoPannerNode.pan);\n }\n else {\n await connectAudioParam(nativeOfflineAudioContext, proxy.pan, nativeStereoPannerNode.pan);\n }\n if (isNativeAudioNodeFaker(nativeStereoPannerNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeStereoPannerNode.inputs[0]);\n }\n else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeStereoPannerNode);\n }\n return nativeStereoPannerNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeStereoPannerNode = renderedNativeStereoPannerNodes.get(nativeOfflineAudioContext);\n if (renderedNativeStereoPannerNode !== undefined) {\n return Promise.resolve(renderedNativeStereoPannerNode);\n }\n return createStereoPannerNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=stereo-panner-node-renderer-factory.js.map","// Bug #33: Safari exposes an AudioBuffer but it can't be used as a constructor.\nexport const createTestAudioBufferConstructorSupport = (nativeAudioBufferConstructor) => {\n return () => {\n if (nativeAudioBufferConstructor === null) {\n return false;\n }\n try {\n new nativeAudioBufferConstructor({ length: 1, sampleRate: 44100 }); // tslint:disable-line:no-unused-expression\n }\n catch {\n return false;\n }\n return true;\n };\n};\n//# sourceMappingURL=test-audio-buffer-constructor-support.js.map","// Bug #179: Firefox does not allow to transfer any buffer which has been passed to the process() method as an argument.\nexport const createTestAudioWorkletProcessorPostMessageSupport = (nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor) => {\n return async () => {\n // Bug #61: If there is no native AudioWorkletNode it gets faked and therefore it is no problem if the it doesn't exist.\n if (nativeAudioWorkletNodeConstructor === null) {\n return true;\n }\n if (nativeOfflineAudioContextConstructor === null) {\n return false;\n }\n const blob = new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor(\"a\",A)'], {\n type: 'application/javascript; charset=utf-8'\n });\n // Bug #141: Safari does not support creating an OfflineAudioContext with less than 44100 Hz.\n const offlineAudioContext = new nativeOfflineAudioContextConstructor(1, 128, 44100);\n const url = URL.createObjectURL(blob);\n let isEmittingMessageEvents = false;\n let isEmittingProcessorErrorEvents = false;\n try {\n await offlineAudioContext.audioWorklet.addModule(url);\n const audioWorkletNode = new nativeAudioWorkletNodeConstructor(offlineAudioContext, 'a', { numberOfOutputs: 0 });\n const oscillator = offlineAudioContext.createOscillator();\n audioWorkletNode.port.onmessage = () => (isEmittingMessageEvents = true);\n audioWorkletNode.onprocessorerror = () => (isEmittingProcessorErrorEvents = true);\n oscillator.connect(audioWorkletNode);\n oscillator.start(0);\n await offlineAudioContext.startRendering();\n }\n catch {\n // Ignore errors.\n }\n finally {\n URL.revokeObjectURL(url);\n }\n return isEmittingMessageEvents && !isEmittingProcessorErrorEvents;\n };\n};\n//# sourceMappingURL=test-audio-worklet-processor-post-message-support.js.map","export const createTestOfflineAudioContextCurrentTimeSupport = (createNativeGainNode, nativeOfflineAudioContextConstructor) => {\n return () => {\n if (nativeOfflineAudioContextConstructor === null) {\n return Promise.resolve(false);\n }\n const nativeOfflineAudioContext = new nativeOfflineAudioContextConstructor(1, 1, 44100);\n // Bug #48: Safari does not render an OfflineAudioContext without any connected node.\n const gainNode = createNativeGainNode(nativeOfflineAudioContext, {\n channelCount: 1,\n channelCountMode: 'explicit',\n channelInterpretation: 'discrete',\n gain: 0\n });\n // Bug #21: Safari does not support promises yet.\n return new Promise((resolve) => {\n nativeOfflineAudioContext.oncomplete = () => {\n gainNode.disconnect();\n resolve(nativeOfflineAudioContext.currentTime !== 0);\n };\n nativeOfflineAudioContext.startRendering();\n });\n };\n};\n//# sourceMappingURL=test-offline-audio-context-current-time-support.js.map","export const createUnknownError = () => new DOMException('', 'UnknownError');\n//# sourceMappingURL=unknown-error.js.map","const DEFAULT_OPTIONS = {\n channelCount: 2,\n channelCountMode: 'max',\n channelInterpretation: 'speakers',\n curve: null,\n oversample: 'none'\n};\nexport const createWaveShaperNodeConstructor = (audioNodeConstructor, createInvalidStateError, createNativeWaveShaperNode, createWaveShaperNodeRenderer, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime) => {\n return class WaveShaperNode extends audioNodeConstructor {\n constructor(context, options) {\n const nativeContext = getNativeContext(context);\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options };\n const nativeWaveShaperNode = createNativeWaveShaperNode(nativeContext, mergedOptions);\n const isOffline = isNativeOfflineAudioContext(nativeContext);\n const waveShaperNodeRenderer = (isOffline ? createWaveShaperNodeRenderer() : null);\n // @todo Add a mechanism to only switch a WaveShaperNode to active while it is connected.\n super(context, true, nativeWaveShaperNode, waveShaperNodeRenderer);\n this._isCurveNullified = false;\n this._nativeWaveShaperNode = nativeWaveShaperNode;\n // @todo Determine a meaningful tail-time instead of just using one second.\n setAudioNodeTailTime(this, 1);\n }\n get curve() {\n if (this._isCurveNullified) {\n return null;\n }\n return this._nativeWaveShaperNode.curve;\n }\n set curve(value) {\n // Bug #103: Safari does not allow to set the curve to null.\n if (value === null) {\n this._isCurveNullified = true;\n this._nativeWaveShaperNode.curve = new Float32Array([0, 0]);\n }\n else {\n // Bug #102: Safari does not throw an InvalidStateError when the curve has less than two samples.\n // Bug #104: Chrome, Edge and Opera will throw an InvalidAccessError when the curve has less than two samples.\n if (value.length < 2) {\n throw createInvalidStateError();\n }\n this._isCurveNullified = false;\n this._nativeWaveShaperNode.curve = value;\n }\n }\n get oversample() {\n return this._nativeWaveShaperNode.oversample;\n }\n set oversample(value) {\n this._nativeWaveShaperNode.oversample = value;\n }\n };\n};\n//# sourceMappingURL=wave-shaper-node-constructor.js.map","import { isNativeAudioNodeFaker } from '../guards/native-audio-node-faker';\nimport { isOwnedByContext } from '../helpers/is-owned-by-context';\nexport const createWaveShaperNodeRendererFactory = (createNativeWaveShaperNode, getNativeAudioNode, renderInputsOfAudioNode) => {\n return () => {\n const renderedNativeWaveShaperNodes = new WeakMap();\n const createWaveShaperNode = async (proxy, nativeOfflineAudioContext) => {\n let nativeWaveShaperNode = getNativeAudioNode(proxy);\n // If the initially used nativeWaveShaperNode was not constructed on the same OfflineAudioContext it needs to be created again.\n const nativeWaveShaperNodeIsOwnedByContext = isOwnedByContext(nativeWaveShaperNode, nativeOfflineAudioContext);\n if (!nativeWaveShaperNodeIsOwnedByContext) {\n const options = {\n channelCount: nativeWaveShaperNode.channelCount,\n channelCountMode: nativeWaveShaperNode.channelCountMode,\n channelInterpretation: nativeWaveShaperNode.channelInterpretation,\n curve: nativeWaveShaperNode.curve,\n oversample: nativeWaveShaperNode.oversample\n };\n nativeWaveShaperNode = createNativeWaveShaperNode(nativeOfflineAudioContext, options);\n }\n renderedNativeWaveShaperNodes.set(nativeOfflineAudioContext, nativeWaveShaperNode);\n if (isNativeAudioNodeFaker(nativeWaveShaperNode)) {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeWaveShaperNode.inputs[0]);\n }\n else {\n await renderInputsOfAudioNode(proxy, nativeOfflineAudioContext, nativeWaveShaperNode);\n }\n return nativeWaveShaperNode;\n };\n return {\n render(proxy, nativeOfflineAudioContext) {\n const renderedNativeWaveShaperNode = renderedNativeWaveShaperNodes.get(nativeOfflineAudioContext);\n if (renderedNativeWaveShaperNode !== undefined) {\n return Promise.resolve(renderedNativeWaveShaperNode);\n }\n return createWaveShaperNode(proxy, nativeOfflineAudioContext);\n }\n };\n };\n};\n//# sourceMappingURL=wave-shaper-node-renderer-factory.js.map","export const createWindow = () => (typeof window === 'undefined' ? null : window);\n//# sourceMappingURL=window.js.map","export const createWrapAudioBufferCopyChannelMethods = (convertNumberToUnsignedLong, createIndexSizeError) => {\n return (audioBuffer) => {\n audioBuffer.copyFromChannel = (destination, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n if (channelNumber >= audioBuffer.numberOfChannels) {\n throw createIndexSizeError();\n }\n const audioBufferLength = audioBuffer.length;\n const channelData = audioBuffer.getChannelData(channelNumber);\n const destinationLength = destination.length;\n for (let i = bufferOffset < 0 ? -bufferOffset : 0; i + bufferOffset < audioBufferLength && i < destinationLength; i += 1) {\n destination[i] = channelData[i + bufferOffset];\n }\n };\n audioBuffer.copyToChannel = (source, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n if (channelNumber >= audioBuffer.numberOfChannels) {\n throw createIndexSizeError();\n }\n const audioBufferLength = audioBuffer.length;\n const channelData = audioBuffer.getChannelData(channelNumber);\n const sourceLength = source.length;\n for (let i = bufferOffset < 0 ? -bufferOffset : 0; i + bufferOffset < audioBufferLength && i < sourceLength; i += 1) {\n channelData[i + bufferOffset] = source[i];\n }\n };\n };\n};\n//# sourceMappingURL=wrap-audio-buffer-copy-channel-methods.js.map","export const createWrapAudioBufferCopyChannelMethodsOutOfBounds = (convertNumberToUnsignedLong) => {\n return (audioBuffer) => {\n audioBuffer.copyFromChannel = ((copyFromChannel) => {\n return (destination, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n if (bufferOffset < audioBuffer.length) {\n return copyFromChannel.call(audioBuffer, destination, channelNumber, bufferOffset);\n }\n };\n })(audioBuffer.copyFromChannel);\n audioBuffer.copyToChannel = ((copyToChannel) => {\n return (source, channelNumberAsNumber, bufferOffsetAsNumber = 0) => {\n const bufferOffset = convertNumberToUnsignedLong(bufferOffsetAsNumber);\n const channelNumber = convertNumberToUnsignedLong(channelNumberAsNumber);\n if (bufferOffset < audioBuffer.length) {\n return copyToChannel.call(audioBuffer, source, channelNumber, bufferOffset);\n }\n };\n })(audioBuffer.copyToChannel);\n };\n};\n//# sourceMappingURL=wrap-audio-buffer-copy-channel-methods-out-of-bounds.js.map","export const createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer = (overwriteAccessors) => {\n return (nativeAudioBufferSourceNode, nativeContext) => {\n const nullifiedBuffer = nativeContext.createBuffer(1, 1, 44100);\n if (nativeAudioBufferSourceNode.buffer === null) {\n nativeAudioBufferSourceNode.buffer = nullifiedBuffer;\n }\n overwriteAccessors(nativeAudioBufferSourceNode, 'buffer', (get) => () => {\n const value = get.call(nativeAudioBufferSourceNode);\n return value === nullifiedBuffer ? null : value;\n }, (set) => (value) => {\n return set.call(nativeAudioBufferSourceNode, value === null ? nullifiedBuffer : value);\n });\n };\n};\n//# sourceMappingURL=wrap-audio-buffer-source-node-stop-method-nullified-buffer.js.map","export const createWrapChannelMergerNode = (createInvalidStateError, monitorConnections) => {\n return (nativeContext, channelMergerNode) => {\n // Bug #15: Safari does not return the default properties.\n channelMergerNode.channelCount = 1;\n channelMergerNode.channelCountMode = 'explicit';\n // Bug #16: Safari does not throw an error when setting a different channelCount or channelCountMode.\n Object.defineProperty(channelMergerNode, 'channelCount', {\n get: () => 1,\n set: () => {\n throw createInvalidStateError();\n }\n });\n Object.defineProperty(channelMergerNode, 'channelCountMode', {\n get: () => 'explicit',\n set: () => {\n throw createInvalidStateError();\n }\n });\n // Bug #20: Safari requires a connection of any kind to treat the input signal correctly.\n const audioBufferSourceNode = nativeContext.createBufferSource();\n const whenConnected = () => {\n const length = channelMergerNode.numberOfInputs;\n for (let i = 0; i < length; i += 1) {\n audioBufferSourceNode.connect(channelMergerNode, 0, i);\n }\n };\n const whenDisconnected = () => audioBufferSourceNode.disconnect(channelMergerNode);\n monitorConnections(channelMergerNode, whenConnected, whenDisconnected);\n };\n};\n//# sourceMappingURL=wrap-channel-merger-node.js.map","export const getFirstSample = (audioBuffer, buffer, channelNumber) => {\n // Bug #5: Safari does not support copyFromChannel() and copyToChannel().\n if (audioBuffer.copyFromChannel === undefined) {\n return audioBuffer.getChannelData(channelNumber)[0];\n }\n audioBuffer.copyFromChannel(buffer, channelNumber);\n return buffer[0];\n};\n//# sourceMappingURL=get-first-sample.js.map","export const isDCCurve = (curve) => {\n if (curve === null) {\n return false;\n }\n const length = curve.length;\n if (length % 2 !== 0) {\n return curve[Math.floor(length / 2)] !== 0;\n }\n return curve[length / 2 - 1] + curve[length / 2] !== 0;\n};\n//# sourceMappingURL=is-dc-curve.js.map","export const overwriteAccessors = (object, property, createGetter, createSetter) => {\n let prototype = object;\n while (!prototype.hasOwnProperty(property)) {\n prototype = Object.getPrototypeOf(prototype);\n }\n const { get, set } = Object.getOwnPropertyDescriptor(prototype, property);\n Object.defineProperty(object, property, { get: createGetter(get), set: createSetter(set) });\n};\n//# sourceMappingURL=overwrite-accessors.js.map","export const sanitizeAudioWorkletNodeOptions = (options) => {\n return {\n ...options,\n outputChannelCount: options.outputChannelCount !== undefined\n ? options.outputChannelCount\n : options.numberOfInputs === 1 && options.numberOfOutputs === 1\n ? /*\n * Bug #61: This should be the computedNumberOfChannels, but unfortunately that is almost impossible to fake. That's why\n * the channelCountMode is required to be 'explicit' as long as there is not a native implementation in every browser. That\n * makes sure the computedNumberOfChannels is equivilant to the channelCount which makes it much easier to compute.\n */\n [options.channelCount]\n : Array.from({ length: options.numberOfOutputs }, () => 1)\n };\n};\n//# sourceMappingURL=sanitize-audio-worklet-node-options.js.map","export const sanitizeChannelSplitterOptions = (options) => {\n return { ...options, channelCount: options.numberOfOutputs };\n};\n//# sourceMappingURL=sanitize-channel-splitter-options.js.map","export const sanitizePeriodicWaveOptions = (options) => {\n const { imag, real } = options;\n if (imag === undefined) {\n if (real === undefined) {\n return { ...options, imag: [0, 0], real: [0, 0] };\n }\n return { ...options, imag: Array.from(real, () => 0), real };\n }\n if (real === undefined) {\n return { ...options, imag, real: Array.from(imag, () => 0) };\n }\n return { ...options, imag, real };\n};\n//# sourceMappingURL=sanitize-periodic-wave-options.js.map","export const setValueAtTimeUntilPossible = (audioParam, value, startTime) => {\n try {\n audioParam.setValueAtTime(value, startTime);\n }\n catch (err) {\n if (err.code !== 9) {\n throw err;\n }\n setValueAtTimeUntilPossible(audioParam, value, startTime + 1e-7);\n }\n};\n//# sourceMappingURL=set-value-at-time-until-possible.js.map","export const testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport = (nativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n nativeAudioBufferSourceNode.start();\n try {\n nativeAudioBufferSourceNode.start();\n }\n catch {\n return true;\n }\n return false;\n};\n//# sourceMappingURL=test-audio-buffer-source-node-start-method-consecutive-calls-support.js.map","export const testAudioBufferSourceNodeStartMethodOffsetClampingSupport = (nativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n const nativeAudioBuffer = nativeContext.createBuffer(1, 1, 44100);\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n try {\n nativeAudioBufferSourceNode.start(0, 1);\n }\n catch {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=test-audio-buffer-source-node-start-method-offset-clamping-support.js.map","export const testAudioBufferSourceNodeStopMethodNullifiedBufferSupport = (nativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n nativeAudioBufferSourceNode.start();\n try {\n nativeAudioBufferSourceNode.stop();\n }\n catch {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=test-audio-buffer-source-node-stop-method-nullified-buffer-support.js.map","export const testAudioScheduledSourceNodeStartMethodNegativeParametersSupport = (nativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createOscillator();\n try {\n nativeAudioBufferSourceNode.start(-1);\n }\n catch (err) {\n return err instanceof RangeError;\n }\n return false;\n};\n//# sourceMappingURL=test-audio-scheduled-source-node-start-method-negative-parameters-support.js.map","export const testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport = (nativeContext) => {\n const nativeAudioBuffer = nativeContext.createBuffer(1, 1, 44100);\n const nativeAudioBufferSourceNode = nativeContext.createBufferSource();\n nativeAudioBufferSourceNode.buffer = nativeAudioBuffer;\n nativeAudioBufferSourceNode.start();\n nativeAudioBufferSourceNode.stop();\n try {\n nativeAudioBufferSourceNode.stop();\n return true;\n }\n catch {\n return false;\n }\n};\n//# sourceMappingURL=test-audio-scheduled-source-node-stop-method-consecutive-calls-support.js.map","export const testAudioScheduledSourceNodeStopMethodNegativeParametersSupport = (nativeContext) => {\n const nativeAudioBufferSourceNode = nativeContext.createOscillator();\n try {\n nativeAudioBufferSourceNode.stop(-1);\n }\n catch (err) {\n return err instanceof RangeError;\n }\n return false;\n};\n//# sourceMappingURL=test-audio-scheduled-source-node-stop-method-negative-parameters-support.js.map","export const testAudioWorkletNodeOptionsClonability = (audioWorkletNodeOptions) => {\n const { port1, port2 } = new MessageChannel();\n try {\n // This will throw an error if the audioWorkletNodeOptions are not clonable.\n port1.postMessage(audioWorkletNodeOptions);\n }\n finally {\n port1.close();\n port2.close();\n }\n};\n//# sourceMappingURL=test-audio-worklet-node-options-clonability.js.map","export const wrapAudioBufferSourceNodeStartMethodOffsetClamping = (nativeAudioBufferSourceNode) => {\n nativeAudioBufferSourceNode.start = ((start) => {\n return (when = 0, offset = 0, duration) => {\n const buffer = nativeAudioBufferSourceNode.buffer;\n // Bug #154: Safari does not clamp the offset if it is equal to or greater than the duration of the buffer.\n const clampedOffset = buffer === null ? offset : Math.min(buffer.duration, offset);\n // Bug #155: Safari does not handle the offset correctly if it would cause the buffer to be not be played at all.\n if (buffer !== null && clampedOffset > buffer.duration - 0.5 / nativeAudioBufferSourceNode.context.sampleRate) {\n start.call(nativeAudioBufferSourceNode, when, 0, 0);\n }\n else {\n start.call(nativeAudioBufferSourceNode, when, clampedOffset, duration);\n }\n };\n })(nativeAudioBufferSourceNode.start);\n};\n//# sourceMappingURL=wrap-audio-buffer-source-node-start-method-offset-clamping.js.map","import { interceptConnections } from './intercept-connections';\nexport const wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls = (nativeAudioScheduledSourceNode, nativeContext) => {\n const nativeGainNode = nativeContext.createGain();\n nativeAudioScheduledSourceNode.connect(nativeGainNode);\n const disconnectGainNode = ((disconnect) => {\n return () => {\n // @todo TypeScript cannot infer the overloaded signature with 1 argument yet.\n disconnect.call(nativeAudioScheduledSourceNode, nativeGainNode);\n nativeAudioScheduledSourceNode.removeEventListener('ended', disconnectGainNode);\n };\n })(nativeAudioScheduledSourceNode.disconnect);\n nativeAudioScheduledSourceNode.addEventListener('ended', disconnectGainNode);\n interceptConnections(nativeAudioScheduledSourceNode, nativeGainNode);\n nativeAudioScheduledSourceNode.stop = ((stop) => {\n let isStopped = false;\n return (when = 0) => {\n if (isStopped) {\n try {\n stop.call(nativeAudioScheduledSourceNode, when);\n }\n catch {\n nativeGainNode.gain.setValueAtTime(0, when);\n }\n }\n else {\n stop.call(nativeAudioScheduledSourceNode, when);\n isStopped = true;\n }\n };\n })(nativeAudioScheduledSourceNode.stop);\n};\n//# sourceMappingURL=wrap-audio-scheduled-source-node-stop-method-consecutive-calls.js.map","export const wrapEventListener = (target, eventListener) => {\n return (event) => {\n const descriptor = { value: target };\n Object.defineProperties(event, {\n currentTarget: descriptor,\n target: descriptor\n });\n if (typeof eventListener === 'function') {\n return eventListener.call(target, event);\n }\n return eventListener.handleEvent.call(target, event);\n };\n};\n//# sourceMappingURL=wrap-event-listener.js.map","import { createCancelAndHoldAutomationEvent, createCancelScheduledValuesAutomationEvent, createExponentialRampToValueAutomationEvent, createLinearRampToValueAutomationEvent, createSetTargetAutomationEvent, createSetValueAutomationEvent, createSetValueCurveAutomationEvent } from 'automation-events';\nimport { createAbortError } from './factories/abort-error';\nimport { createAddActiveInputConnectionToAudioNode } from './factories/add-active-input-connection-to-audio-node';\nimport { createAddAudioNodeConnections } from './factories/add-audio-node-connections';\nimport { createAddAudioParamConnections } from './factories/add-audio-param-connections';\nimport { createAddAudioWorkletModule } from './factories/add-audio-worklet-module';\nimport { createAddConnectionToAudioNode } from './factories/add-connection-to-audio-node';\nimport { createAddPassiveInputConnectionToAudioNode } from './factories/add-passive-input-connection-to-audio-node';\nimport { createAddSilentConnection } from './factories/add-silent-connection';\nimport { createAddUnrenderedAudioWorkletNode } from './factories/add-unrendered-audio-worklet-node';\nimport { createAnalyserNodeConstructor } from './factories/analyser-node-constructor';\nimport { createAnalyserNodeRendererFactory } from './factories/analyser-node-renderer-factory';\nimport { createAudioBufferConstructor } from './factories/audio-buffer-constructor';\nimport { createAudioBufferSourceNodeConstructor } from './factories/audio-buffer-source-node-constructor';\nimport { createAudioBufferSourceNodeRendererFactory } from './factories/audio-buffer-source-node-renderer-factory';\nimport { createAudioContextConstructor } from './factories/audio-context-constructor';\nimport { createAudioDestinationNodeConstructor } from './factories/audio-destination-node-constructor';\nimport { createAudioDestinationNodeRenderer } from './factories/audio-destination-node-renderer-factory';\nimport { createAudioListenerFactory } from './factories/audio-listener-factory';\nimport { createAudioNodeConstructor } from './factories/audio-node-constructor';\nimport { createAudioParamFactory } from './factories/audio-param-factory';\nimport { createAudioParamRenderer } from './factories/audio-param-renderer';\nimport { createAudioWorkletNodeConstructor } from './factories/audio-worklet-node-constructor';\nimport { createAudioWorkletNodeRendererFactory } from './factories/audio-worklet-node-renderer-factory';\nimport { createBaseAudioContextConstructor } from './factories/base-audio-context-constructor';\nimport { createBiquadFilterNodeConstructor } from './factories/biquad-filter-node-constructor';\nimport { createBiquadFilterNodeRendererFactory } from './factories/biquad-filter-node-renderer-factory';\nimport { createCacheTestResult } from './factories/cache-test-result';\nimport { createChannelMergerNodeConstructor } from './factories/channel-merger-node-constructor';\nimport { createChannelMergerNodeRendererFactory } from './factories/channel-merger-node-renderer-factory';\nimport { createChannelSplitterNodeConstructor } from './factories/channel-splitter-node-constructor';\nimport { createChannelSplitterNodeRendererFactory } from './factories/channel-splitter-node-renderer-factory';\nimport { createConnectAudioParam } from './factories/connect-audio-param';\nimport { createConnectMultipleOutputs } from './factories/connect-multiple-outputs';\nimport { createConnectedNativeAudioBufferSourceNodeFactory } from './factories/connected-native-audio-buffer-source-node-factory';\nimport { createConstantSourceNodeConstructor } from './factories/constant-source-node-constructor';\nimport { createConstantSourceNodeRendererFactory } from './factories/constant-source-node-renderer-factory';\nimport { createConvertNumberToUnsignedLong } from './factories/convert-number-to-unsigned-long';\nimport { createConvolverNodeConstructor } from './factories/convolver-node-constructor';\nimport { createConvolverNodeRendererFactory } from './factories/convolver-node-renderer-factory';\nimport { createCreateNativeOfflineAudioContext } from './factories/create-native-offline-audio-context';\nimport { createDataCloneError } from './factories/data-clone-error';\nimport { createDecodeAudioData } from './factories/decode-audio-data';\nimport { createDecrementCycleCounter } from './factories/decrement-cycle-counter';\nimport { createDelayNodeConstructor } from './factories/delay-node-constructor';\nimport { createDelayNodeRendererFactory } from './factories/delay-node-renderer-factory';\nimport { createDeleteActiveInputConnectionToAudioNode } from './factories/delete-active-input-connection-to-audio-node';\nimport { createDeleteUnrenderedAudioWorkletNode } from './factories/delete-unrendered-audio-worklet-node';\nimport { createDetectCycles } from './factories/detect-cycles';\nimport { createDisconnectMultipleOutputs } from './factories/disconnect-multiple-outputs';\nimport { createDynamicsCompressorNodeConstructor } from './factories/dynamics-compressor-node-constructor';\nimport { createDynamicsCompressorNodeRendererFactory } from './factories/dynamics-compressor-node-renderer-factory';\nimport { createEncodingError } from './factories/encoding-error';\nimport { createEvaluateSource } from './factories/evaluate-source';\nimport { createEventTargetConstructor } from './factories/event-target-constructor';\nimport { createExposeCurrentFrameAndCurrentTime } from './factories/expose-current-frame-and-current-time';\nimport { createFetchSource } from './factories/fetch-source';\nimport { createGainNodeConstructor } from './factories/gain-node-constructor';\nimport { createGainNodeRendererFactory } from './factories/gain-node-renderer-factory';\nimport { createGetActiveAudioWorkletNodeInputs } from './factories/get-active-audio-worklet-node-inputs';\nimport { createGetAudioNodeRenderer } from './factories/get-audio-node-renderer';\nimport { createGetAudioNodeTailTime } from './factories/get-audio-node-tail-time';\nimport { createGetAudioParamRenderer } from './factories/get-audio-param-renderer';\nimport { createGetBackupOfflineAudioContext } from './factories/get-backup-offline-audio-context';\nimport { createGetNativeContext } from './factories/get-native-context';\nimport { createGetOrCreateBackupOfflineAudioContext } from './factories/get-or-create-backup-offline-audio-context';\nimport { createGetUnrenderedAudioWorkletNodes } from './factories/get-unrendered-audio-worklet-nodes';\nimport { createIIRFilterNodeConstructor } from './factories/iir-filter-node-constructor';\nimport { createIIRFilterNodeRendererFactory } from './factories/iir-filter-node-renderer-factory';\nimport { createIncrementCycleCounterFactory } from './factories/increment-cycle-counter-factory';\nimport { createIndexSizeError } from './factories/index-size-error';\nimport { createInvalidAccessError } from './factories/invalid-access-error';\nimport { createInvalidStateError } from './factories/invalid-state-error';\nimport { createIsAnyAudioContext } from './factories/is-any-audio-context';\nimport { createIsAnyAudioNode } from './factories/is-any-audio-node';\nimport { createIsAnyAudioParam } from './factories/is-any-audio-param';\nimport { createIsAnyOfflineAudioContext } from './factories/is-any-offline-audio-context';\nimport { createIsNativeAudioContext } from './factories/is-native-audio-context';\nimport { createIsNativeAudioNode } from './factories/is-native-audio-node';\nimport { createIsNativeAudioParam } from './factories/is-native-audio-param';\nimport { createIsNativeContext } from './factories/is-native-context';\nimport { createIsNativeOfflineAudioContext } from './factories/is-native-offline-audio-context';\nimport { createIsSecureContext } from './factories/is-secure-context';\nimport { createIsSupportedPromise } from './factories/is-supported-promise';\nimport { createMediaElementAudioSourceNodeConstructor } from './factories/media-element-audio-source-node-constructor';\nimport { createMediaStreamAudioDestinationNodeConstructor } from './factories/media-stream-audio-destination-node-constructor';\nimport { createMediaStreamAudioSourceNodeConstructor } from './factories/media-stream-audio-source-node-constructor';\nimport { createMediaStreamTrackAudioSourceNodeConstructor } from './factories/media-stream-track-audio-source-node-constructor';\nimport { createMinimalAudioContextConstructor } from './factories/minimal-audio-context-constructor';\nimport { createMinimalBaseAudioContextConstructor } from './factories/minimal-base-audio-context-constructor';\nimport { createMinimalOfflineAudioContextConstructor } from './factories/minimal-offline-audio-context-constructor';\nimport { createMonitorConnections } from './factories/monitor-connections';\nimport { createNativeAnalyserNodeFactory } from './factories/native-analyser-node-factory';\nimport { createNativeAudioBufferConstructor } from './factories/native-audio-buffer-constructor';\nimport { createNativeAudioBufferSourceNodeFactory } from './factories/native-audio-buffer-source-node-factory';\nimport { createNativeAudioContextConstructor } from './factories/native-audio-context-constructor';\nimport { createNativeAudioDestinationNodeFactory } from './factories/native-audio-destination-node';\nimport { createNativeAudioWorkletNodeConstructor } from './factories/native-audio-worklet-node-constructor';\nimport { createNativeAudioWorkletNodeFactory } from './factories/native-audio-worklet-node-factory';\nimport { createNativeAudioWorkletNodeFakerFactory } from './factories/native-audio-worklet-node-faker-factory';\nimport { createNativeBiquadFilterNode } from './factories/native-biquad-filter-node';\nimport { createNativeChannelMergerNodeFactory } from './factories/native-channel-merger-node-factory';\nimport { createNativeChannelSplitterNode } from './factories/native-channel-splitter-node';\nimport { createNativeConstantSourceNodeFactory } from './factories/native-constant-source-node-factory';\nimport { createNativeConstantSourceNodeFakerFactory } from './factories/native-constant-source-node-faker-factory';\nimport { createNativeConvolverNodeFactory } from './factories/native-convolver-node-factory';\nimport { createNativeDelayNode } from './factories/native-delay-node';\nimport { createNativeDynamicsCompressorNodeFactory } from './factories/native-dynamics-compressor-node-factory';\nimport { createNativeGainNode } from './factories/native-gain-node';\nimport { createNativeIIRFilterNodeFactory } from './factories/native-iir-filter-node-factory';\nimport { createNativeIIRFilterNodeFakerFactory } from './factories/native-iir-filter-node-faker-factory';\nimport { createNativeMediaElementAudioSourceNode } from './factories/native-media-element-audio-source-node';\nimport { createNativeMediaStreamAudioDestinationNode } from './factories/native-media-stream-audio-destination-node';\nimport { createNativeMediaStreamAudioSourceNode } from './factories/native-media-stream-audio-source-node';\nimport { createNativeMediaStreamTrackAudioSourceNodeFactory } from './factories/native-media-stream-track-audio-source-node-factory';\nimport { createNativeOfflineAudioContextConstructor } from './factories/native-offline-audio-context-constructor';\nimport { createNativeOscillatorNodeFactory } from './factories/native-oscillator-node-factory';\nimport { createNativePannerNodeFactory } from './factories/native-panner-node-factory';\nimport { createNativePannerNodeFakerFactory } from './factories/native-panner-node-faker-factory';\nimport { createNativePeriodicWaveFactory } from './factories/native-periodic-wave-factory';\nimport { createNativeScriptProcessorNode } from './factories/native-script-processor-node';\nimport { createNativeStereoPannerNodeFactory } from './factories/native-stereo-panner-node-factory';\nimport { createNativeStereoPannerNodeFakerFactory } from './factories/native-stereo-panner-node-faker-factory';\nimport { createNativeWaveShaperNodeFactory } from './factories/native-wave-shaper-node-factory';\nimport { createNativeWaveShaperNodeFakerFactory } from './factories/native-wave-shaper-node-faker-factory';\nimport { createNotSupportedError } from './factories/not-supported-error';\nimport { createOfflineAudioContextConstructor } from './factories/offline-audio-context-constructor';\nimport { createOscillatorNodeConstructor } from './factories/oscillator-node-constructor';\nimport { createOscillatorNodeRendererFactory } from './factories/oscillator-node-renderer-factory';\nimport { createPannerNodeConstructor } from './factories/panner-node-constructor';\nimport { createPannerNodeRendererFactory } from './factories/panner-node-renderer-factory';\nimport { createPeriodicWaveConstructor } from './factories/periodic-wave-constructor';\nimport { createRenderAutomation } from './factories/render-automation';\nimport { createRenderInputsOfAudioNode } from './factories/render-inputs-of-audio-node';\nimport { createRenderInputsOfAudioParam } from './factories/render-inputs-of-audio-param';\nimport { createRenderNativeOfflineAudioContext } from './factories/render-native-offline-audio-context';\nimport { createSetActiveAudioWorkletNodeInputs } from './factories/set-active-audio-worklet-node-inputs';\nimport { createSetAudioNodeTailTime } from './factories/set-audio-node-tail-time';\nimport { createStartRendering } from './factories/start-rendering';\nimport { createStereoPannerNodeConstructor } from './factories/stereo-panner-node-constructor';\nimport { createStereoPannerNodeRendererFactory } from './factories/stereo-panner-node-renderer-factory';\nimport { createTestAudioBufferConstructorSupport } from './factories/test-audio-buffer-constructor-support';\nimport { createTestAudioBufferCopyChannelMethodsSubarraySupport } from './factories/test-audio-buffer-copy-channel-methods-subarray-support';\nimport { createTestAudioContextCloseMethodSupport } from './factories/test-audio-context-close-method-support';\nimport { createTestAudioContextDecodeAudioDataMethodTypeErrorSupport } from './factories/test-audio-context-decode-audio-data-method-type-error-support';\nimport { createTestAudioContextOptionsSupport } from './factories/test-audio-context-options-support';\nimport { createTestAudioNodeConnectMethodSupport } from './factories/test-audio-node-connect-method-support';\nimport { createTestAudioWorkletProcessorNoOutputsSupport } from './factories/test-audio-worklet-processor-no-outputs-support';\nimport { createTestAudioWorkletProcessorPostMessageSupport } from './factories/test-audio-worklet-processor-post-message-support';\nimport { createTestChannelMergerNodeChannelCountSupport } from './factories/test-channel-merger-node-channel-count-support';\nimport { createTestConstantSourceNodeAccurateSchedulingSupport } from './factories/test-constant-source-node-accurate-scheduling-support';\nimport { createTestConvolverNodeBufferReassignabilitySupport } from './factories/test-convolver-node-buffer-reassignability-support';\nimport { createTestConvolverNodeChannelCountSupport } from './factories/test-convolver-node-channel-count-support';\nimport { createTestIsSecureContextSupport } from './factories/test-is-secure-context-support';\nimport { createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport } from './factories/test-media-stream-audio-source-node-media-stream-without-audio-track-support';\nimport { createTestOfflineAudioContextCurrentTimeSupport } from './factories/test-offline-audio-context-current-time-support';\nimport { createTestStereoPannerNodeDefaultValueSupport } from './factories/test-stereo-panner-node-default-value-support';\nimport { createUnknownError } from './factories/unknown-error';\nimport { createWaveShaperNodeConstructor } from './factories/wave-shaper-node-constructor';\nimport { createWaveShaperNodeRendererFactory } from './factories/wave-shaper-node-renderer-factory';\nimport { createWindow } from './factories/window';\nimport { createWrapAudioBufferCopyChannelMethods } from './factories/wrap-audio-buffer-copy-channel-methods';\nimport { createWrapAudioBufferCopyChannelMethodsOutOfBounds } from './factories/wrap-audio-buffer-copy-channel-methods-out-of-bounds';\nimport { createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer } from './factories/wrap-audio-buffer-source-node-stop-method-nullified-buffer';\nimport { createWrapChannelMergerNode } from './factories/wrap-channel-merger-node';\nimport { AUDIO_NODE_CONNECTIONS_STORE, AUDIO_NODE_STORE, AUDIO_PARAM_CONNECTIONS_STORE, AUDIO_PARAM_STORE, CONTEXT_STORE, CYCLE_COUNTERS } from './globals';\nimport { connectNativeAudioNodeToNativeAudioNode } from './helpers/connect-native-audio-node-to-native-audio-node';\nimport { disconnectNativeAudioNodeFromNativeAudioNode } from './helpers/disconnect-native-audio-node-from-native-audio-node';\nimport { getAudioNodeConnections } from './helpers/get-audio-node-connections';\nimport { getAudioParamConnections } from './helpers/get-audio-param-connections';\nimport { getEventListenersOfAudioNode } from './helpers/get-event-listeners-of-audio-node';\nimport { getFirstSample } from './helpers/get-first-sample';\nimport { getNativeAudioNode } from './helpers/get-native-audio-node';\nimport { getNativeAudioParam } from './helpers/get-native-audio-param';\nimport { getValueForKey } from './helpers/get-value-for-key';\nimport { insertElementInSet } from './helpers/insert-element-in-set';\nimport { isActiveAudioNode } from './helpers/is-active-audio-node';\nimport { isDCCurve } from './helpers/is-dc-curve';\nimport { isPartOfACycle } from './helpers/is-part-of-a-cycle';\nimport { isPassiveAudioNode } from './helpers/is-passive-audio-node';\nimport { overwriteAccessors } from './helpers/overwrite-accessors';\nimport { pickElementFromSet } from './helpers/pick-element-from-set';\nimport { sanitizeAudioWorkletNodeOptions } from './helpers/sanitize-audio-worklet-node-options';\nimport { sanitizeChannelSplitterOptions } from './helpers/sanitize-channel-splitter-options';\nimport { sanitizePeriodicWaveOptions } from './helpers/sanitize-periodic-wave-options';\nimport { setValueAtTimeUntilPossible } from './helpers/set-value-at-time-until-possible';\nimport { testAudioBufferCopyChannelMethodsOutOfBoundsSupport } from './helpers/test-audio-buffer-copy-channel-methods-out-of-bounds-support';\nimport { testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport } from './helpers/test-audio-buffer-source-node-start-method-consecutive-calls-support';\nimport { testAudioBufferSourceNodeStartMethodOffsetClampingSupport } from './helpers/test-audio-buffer-source-node-start-method-offset-clamping-support';\nimport { testAudioBufferSourceNodeStopMethodNullifiedBufferSupport } from './helpers/test-audio-buffer-source-node-stop-method-nullified-buffer-support';\nimport { testAudioScheduledSourceNodeStartMethodNegativeParametersSupport } from './helpers/test-audio-scheduled-source-node-start-method-negative-parameters-support';\nimport { testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport } from './helpers/test-audio-scheduled-source-node-stop-method-consecutive-calls-support';\nimport { testAudioScheduledSourceNodeStopMethodNegativeParametersSupport } from './helpers/test-audio-scheduled-source-node-stop-method-negative-parameters-support';\nimport { testAudioWorkletNodeOptionsClonability } from './helpers/test-audio-worklet-node-options-clonability';\nimport { testDomExceptionConstructorSupport } from './helpers/test-dom-exception-constructor-support';\nimport { testPromiseSupport } from './helpers/test-promise-support';\nimport { testTransferablesSupport } from './helpers/test-transferables-support';\nimport { wrapAudioBufferSourceNodeStartMethodOffsetClamping } from './helpers/wrap-audio-buffer-source-node-start-method-offset-clamping';\nimport { wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls } from './helpers/wrap-audio-scheduled-source-node-stop-method-consecutive-calls';\nimport { wrapEventListener } from './helpers/wrap-event-listener';\n/*\n * @todo Explicitly referencing the barrel file seems to be necessary when enabling the\n * isolatedModules compiler option.\n */\nexport * from './interfaces/index';\nexport * from './types/index';\nconst addActiveInputConnectionToAudioNode = createAddActiveInputConnectionToAudioNode(insertElementInSet);\nconst addPassiveInputConnectionToAudioNode = createAddPassiveInputConnectionToAudioNode(insertElementInSet);\nconst deleteActiveInputConnectionToAudioNode = createDeleteActiveInputConnectionToAudioNode(pickElementFromSet);\nconst audioNodeTailTimeStore = new WeakMap();\nconst getAudioNodeTailTime = createGetAudioNodeTailTime(audioNodeTailTimeStore);\nconst cacheTestResult = createCacheTestResult(new Map(), new WeakMap());\nconst window = createWindow();\nconst createNativeAnalyserNode = createNativeAnalyserNodeFactory(cacheTestResult, createIndexSizeError);\nconst getAudioNodeRenderer = createGetAudioNodeRenderer(getAudioNodeConnections);\nconst renderInputsOfAudioNode = createRenderInputsOfAudioNode(getAudioNodeConnections, getAudioNodeRenderer, isPartOfACycle);\nconst createAnalyserNodeRenderer = createAnalyserNodeRendererFactory(createNativeAnalyserNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst getNativeContext = createGetNativeContext(CONTEXT_STORE);\nconst nativeOfflineAudioContextConstructor = createNativeOfflineAudioContextConstructor(window);\nconst isNativeOfflineAudioContext = createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor);\nconst audioParamAudioNodeStore = new WeakMap();\nconst eventTargetConstructor = createEventTargetConstructor(wrapEventListener);\nconst nativeAudioContextConstructor = createNativeAudioContextConstructor(window);\nconst isNativeAudioContext = createIsNativeAudioContext(nativeAudioContextConstructor);\nconst isNativeAudioNode = createIsNativeAudioNode(window);\nconst isNativeAudioParam = createIsNativeAudioParam(window);\nconst nativeAudioWorkletNodeConstructor = createNativeAudioWorkletNodeConstructor(window);\nconst audioNodeConstructor = createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE), createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode, addPassiveInputConnectionToAudioNode, connectNativeAudioNodeToNativeAudioNode, deleteActiveInputConnectionToAudioNode, disconnectNativeAudioNodeFromNativeAudioNode, getAudioNodeConnections, getAudioNodeTailTime, getEventListenersOfAudioNode, getNativeAudioNode, insertElementInSet, isActiveAudioNode, isPartOfACycle, isPassiveAudioNode), cacheTestResult, createIncrementCycleCounterFactory(CYCLE_COUNTERS, disconnectNativeAudioNodeFromNativeAudioNode, getAudioNodeConnections, getNativeAudioNode, getNativeAudioParam, isActiveAudioNode), createIndexSizeError, createInvalidAccessError, createNotSupportedError, createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode, CYCLE_COUNTERS, getAudioNodeConnections, getNativeAudioNode, getNativeAudioParam, getNativeContext, isActiveAudioNode, isNativeOfflineAudioContext), createDetectCycles(audioParamAudioNodeStore, getAudioNodeConnections, getValueForKey), eventTargetConstructor, getNativeContext, isNativeAudioContext, isNativeAudioNode, isNativeAudioParam, isNativeOfflineAudioContext, nativeAudioWorkletNodeConstructor);\nconst analyserNodeConstructor = createAnalyserNodeConstructor(audioNodeConstructor, createAnalyserNodeRenderer, createIndexSizeError, createNativeAnalyserNode, getNativeContext, isNativeOfflineAudioContext);\nexport { analyserNodeConstructor as AnalyserNode };\nconst audioBufferStore = new WeakSet();\nconst nativeAudioBufferConstructor = createNativeAudioBufferConstructor(window);\nconst convertNumberToUnsignedLong = createConvertNumberToUnsignedLong(new Uint32Array(1));\nconst wrapAudioBufferCopyChannelMethods = createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong, createIndexSizeError);\nconst wrapAudioBufferCopyChannelMethodsOutOfBounds = createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong);\nconst audioBufferConstructor = createAudioBufferConstructor(audioBufferStore, cacheTestResult, createNotSupportedError, nativeAudioBufferConstructor, nativeOfflineAudioContextConstructor, createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor), wrapAudioBufferCopyChannelMethods, wrapAudioBufferCopyChannelMethodsOutOfBounds);\nexport { audioBufferConstructor as AudioBuffer };\nconst addSilentConnection = createAddSilentConnection(createNativeGainNode);\nconst renderInputsOfAudioParam = createRenderInputsOfAudioParam(getAudioNodeRenderer, getAudioParamConnections, isPartOfACycle);\nconst connectAudioParam = createConnectAudioParam(renderInputsOfAudioParam);\nconst createNativeAudioBufferSourceNode = createNativeAudioBufferSourceNodeFactory(addSilentConnection, cacheTestResult, testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport, testAudioBufferSourceNodeStartMethodOffsetClampingSupport, testAudioBufferSourceNodeStopMethodNullifiedBufferSupport, testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, wrapAudioBufferSourceNodeStartMethodOffsetClamping, createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors), wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls);\nconst renderAutomation = createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections), renderInputsOfAudioParam);\nconst createAudioBufferSourceNodeRenderer = createAudioBufferSourceNodeRendererFactory(connectAudioParam, createNativeAudioBufferSourceNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst createAudioParam = createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE), audioParamAudioNodeStore, AUDIO_PARAM_STORE, createAudioParamRenderer, createCancelAndHoldAutomationEvent, createCancelScheduledValuesAutomationEvent, createExponentialRampToValueAutomationEvent, createLinearRampToValueAutomationEvent, createSetTargetAutomationEvent, createSetValueAutomationEvent, createSetValueCurveAutomationEvent, nativeAudioContextConstructor, setValueAtTimeUntilPossible);\nconst audioBufferSourceNodeConstructor = createAudioBufferSourceNodeConstructor(audioNodeConstructor, createAudioBufferSourceNodeRenderer, createAudioParam, createInvalidStateError, createNativeAudioBufferSourceNode, getNativeContext, isNativeOfflineAudioContext, wrapEventListener);\nexport { audioBufferSourceNodeConstructor as AudioBufferSourceNode };\nconst audioDestinationNodeConstructor = createAudioDestinationNodeConstructor(audioNodeConstructor, createAudioDestinationNodeRenderer, createIndexSizeError, createInvalidStateError, createNativeAudioDestinationNodeFactory(createNativeGainNode, overwriteAccessors), getNativeContext, isNativeOfflineAudioContext, renderInputsOfAudioNode);\nconst createBiquadFilterNodeRenderer = createBiquadFilterNodeRendererFactory(connectAudioParam, createNativeBiquadFilterNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst setAudioNodeTailTime = createSetAudioNodeTailTime(audioNodeTailTimeStore);\nconst biquadFilterNodeConstructor = createBiquadFilterNodeConstructor(audioNodeConstructor, createAudioParam, createBiquadFilterNodeRenderer, createInvalidAccessError, createNativeBiquadFilterNode, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst monitorConnections = createMonitorConnections(insertElementInSet, isNativeAudioNode);\nconst wrapChannelMergerNode = createWrapChannelMergerNode(createInvalidStateError, monitorConnections);\nconst createNativeChannelMergerNode = createNativeChannelMergerNodeFactory(nativeAudioContextConstructor, wrapChannelMergerNode);\nconst createChannelMergerNodeRenderer = createChannelMergerNodeRendererFactory(createNativeChannelMergerNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst channelMergerNodeConstructor = createChannelMergerNodeConstructor(audioNodeConstructor, createChannelMergerNodeRenderer, createNativeChannelMergerNode, getNativeContext, isNativeOfflineAudioContext);\nconst createChannelSplitterNodeRenderer = createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst channelSplitterNodeConstructor = createChannelSplitterNodeConstructor(audioNodeConstructor, createChannelSplitterNodeRenderer, createNativeChannelSplitterNode, getNativeContext, isNativeOfflineAudioContext, sanitizeChannelSplitterOptions);\nconst createNativeConstantSourceNodeFaker = createNativeConstantSourceNodeFakerFactory(addSilentConnection, createNativeAudioBufferSourceNode, createNativeGainNode, monitorConnections);\nconst createNativeConstantSourceNode = createNativeConstantSourceNodeFactory(addSilentConnection, cacheTestResult, createNativeConstantSourceNodeFaker, testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, testAudioScheduledSourceNodeStopMethodNegativeParametersSupport);\nconst createConstantSourceNodeRenderer = createConstantSourceNodeRendererFactory(connectAudioParam, createNativeConstantSourceNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst constantSourceNodeConstructor = createConstantSourceNodeConstructor(audioNodeConstructor, createAudioParam, createConstantSourceNodeRenderer, createNativeConstantSourceNode, getNativeContext, isNativeOfflineAudioContext, wrapEventListener);\nconst createNativeConvolverNode = createNativeConvolverNodeFactory(createNotSupportedError, overwriteAccessors);\nconst createConvolverNodeRenderer = createConvolverNodeRendererFactory(createNativeConvolverNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst convolverNodeConstructor = createConvolverNodeConstructor(audioNodeConstructor, createConvolverNodeRenderer, createNativeConvolverNode, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst createDelayNodeRenderer = createDelayNodeRendererFactory(connectAudioParam, createNativeDelayNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst delayNodeConstructor = createDelayNodeConstructor(audioNodeConstructor, createAudioParam, createDelayNodeRenderer, createNativeDelayNode, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst createNativeDynamicsCompressorNode = createNativeDynamicsCompressorNodeFactory(createNotSupportedError);\nconst createDynamicsCompressorNodeRenderer = createDynamicsCompressorNodeRendererFactory(connectAudioParam, createNativeDynamicsCompressorNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst dynamicsCompressorNodeConstructor = createDynamicsCompressorNodeConstructor(audioNodeConstructor, createAudioParam, createDynamicsCompressorNodeRenderer, createNativeDynamicsCompressorNode, createNotSupportedError, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst createGainNodeRenderer = createGainNodeRendererFactory(connectAudioParam, createNativeGainNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst gainNodeConstructor = createGainNodeConstructor(audioNodeConstructor, createAudioParam, createGainNodeRenderer, createNativeGainNode, getNativeContext, isNativeOfflineAudioContext);\nconst createNativeIIRFilterNodeFaker = createNativeIIRFilterNodeFakerFactory(createInvalidAccessError, createInvalidStateError, createNativeScriptProcessorNode, createNotSupportedError);\nconst renderNativeOfflineAudioContext = createRenderNativeOfflineAudioContext(cacheTestResult, createNativeGainNode, createNativeScriptProcessorNode, createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode, nativeOfflineAudioContextConstructor));\nconst createIIRFilterNodeRenderer = createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode, getNativeAudioNode, nativeOfflineAudioContextConstructor, renderInputsOfAudioNode, renderNativeOfflineAudioContext);\nconst createNativeIIRFilterNode = createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker);\nconst iIRFilterNodeConstructor = createIIRFilterNodeConstructor(audioNodeConstructor, createNativeIIRFilterNode, createIIRFilterNodeRenderer, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst createAudioListener = createAudioListenerFactory(createAudioParam, createNativeChannelMergerNode, createNativeConstantSourceNode, createNativeScriptProcessorNode, createNotSupportedError, getFirstSample, isNativeOfflineAudioContext, overwriteAccessors);\nconst unrenderedAudioWorkletNodeStore = new WeakMap();\nconst minimalBaseAudioContextConstructor = createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor, createAudioListener, eventTargetConstructor, isNativeOfflineAudioContext, unrenderedAudioWorkletNodeStore, wrapEventListener);\nconst createNativeOscillatorNode = createNativeOscillatorNodeFactory(addSilentConnection, cacheTestResult, testAudioScheduledSourceNodeStartMethodNegativeParametersSupport, testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport, testAudioScheduledSourceNodeStopMethodNegativeParametersSupport, wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls);\nconst createOscillatorNodeRenderer = createOscillatorNodeRendererFactory(connectAudioParam, createNativeOscillatorNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst oscillatorNodeConstructor = createOscillatorNodeConstructor(audioNodeConstructor, createAudioParam, createNativeOscillatorNode, createOscillatorNodeRenderer, getNativeContext, isNativeOfflineAudioContext, wrapEventListener);\nconst createConnectedNativeAudioBufferSourceNode = createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode);\nconst createNativeWaveShaperNodeFaker = createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode, createInvalidStateError, createNativeGainNode, isDCCurve, monitorConnections);\nconst createNativeWaveShaperNode = createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode, createInvalidStateError, createNativeWaveShaperNodeFaker, isDCCurve, monitorConnections, nativeAudioContextConstructor, overwriteAccessors);\nconst createNativePannerNodeFaker = createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode, createInvalidStateError, createNativeChannelMergerNode, createNativeGainNode, createNativeScriptProcessorNode, createNativeWaveShaperNode, createNotSupportedError, disconnectNativeAudioNodeFromNativeAudioNode, getFirstSample, monitorConnections);\nconst createNativePannerNode = createNativePannerNodeFactory(createNativePannerNodeFaker);\nconst createPannerNodeRenderer = createPannerNodeRendererFactory(connectAudioParam, createNativeChannelMergerNode, createNativeConstantSourceNode, createNativeGainNode, createNativePannerNode, getNativeAudioNode, nativeOfflineAudioContextConstructor, renderAutomation, renderInputsOfAudioNode, renderNativeOfflineAudioContext);\nconst pannerNodeConstructor = createPannerNodeConstructor(audioNodeConstructor, createAudioParam, createNativePannerNode, createPannerNodeRenderer, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst createNativePeriodicWave = createNativePeriodicWaveFactory(createIndexSizeError);\nconst periodicWaveConstructor = createPeriodicWaveConstructor(createNativePeriodicWave, getNativeContext, new WeakSet(), sanitizePeriodicWaveOptions);\nconst nativeStereoPannerNodeFakerFactory = createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode, createNativeChannelSplitterNode, createNativeGainNode, createNativeWaveShaperNode, createNotSupportedError, monitorConnections);\nconst createNativeStereoPannerNode = createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory, createNotSupportedError);\nconst createStereoPannerNodeRenderer = createStereoPannerNodeRendererFactory(connectAudioParam, createNativeStereoPannerNode, getNativeAudioNode, renderAutomation, renderInputsOfAudioNode);\nconst stereoPannerNodeConstructor = createStereoPannerNodeConstructor(audioNodeConstructor, createAudioParam, createNativeStereoPannerNode, createStereoPannerNodeRenderer, getNativeContext, isNativeOfflineAudioContext);\nconst createWaveShaperNodeRenderer = createWaveShaperNodeRendererFactory(createNativeWaveShaperNode, getNativeAudioNode, renderInputsOfAudioNode);\nconst waveShaperNodeConstructor = createWaveShaperNodeConstructor(audioNodeConstructor, createInvalidStateError, createNativeWaveShaperNode, createWaveShaperNodeRenderer, getNativeContext, isNativeOfflineAudioContext, setAudioNodeTailTime);\nconst isSecureContext = createIsSecureContext(window);\nconst exposeCurrentFrameAndCurrentTime = createExposeCurrentFrameAndCurrentTime(window);\nconst backupOfflineAudioContextStore = new WeakMap();\nconst getOrCreateBackupOfflineAudioContext = createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore, nativeOfflineAudioContextConstructor);\n// The addAudioWorkletModule() function is only available in a SecureContext.\nexport const addAudioWorkletModule = isSecureContext\n ? createAddAudioWorkletModule(cacheTestResult, createNotSupportedError, createEvaluateSource(window), exposeCurrentFrameAndCurrentTime, createFetchSource(createAbortError), getNativeContext, getOrCreateBackupOfflineAudioContext, isNativeOfflineAudioContext, nativeAudioWorkletNodeConstructor, new WeakMap(), new WeakMap(), createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor), \n // @todo window is guaranteed to be defined because isSecureContext checks that as well.\n window)\n : undefined;\nconst isNativeContext = createIsNativeContext(isNativeAudioContext, isNativeOfflineAudioContext);\nexport const decodeAudioData = createDecodeAudioData(audioBufferStore, cacheTestResult, createDataCloneError, createEncodingError, new WeakSet(), getNativeContext, isNativeContext, testAudioBufferCopyChannelMethodsOutOfBoundsSupport, testPromiseSupport, wrapAudioBufferCopyChannelMethods, wrapAudioBufferCopyChannelMethodsOutOfBounds);\nconst baseAudioContextConstructor = createBaseAudioContextConstructor(addAudioWorkletModule, analyserNodeConstructor, audioBufferConstructor, audioBufferSourceNodeConstructor, biquadFilterNodeConstructor, channelMergerNodeConstructor, channelSplitterNodeConstructor, constantSourceNodeConstructor, convolverNodeConstructor, decodeAudioData, delayNodeConstructor, dynamicsCompressorNodeConstructor, gainNodeConstructor, iIRFilterNodeConstructor, minimalBaseAudioContextConstructor, oscillatorNodeConstructor, pannerNodeConstructor, periodicWaveConstructor, stereoPannerNodeConstructor, waveShaperNodeConstructor);\nconst mediaElementAudioSourceNodeConstructor = createMediaElementAudioSourceNodeConstructor(audioNodeConstructor, createNativeMediaElementAudioSourceNode, getNativeContext, isNativeOfflineAudioContext);\nconst mediaStreamAudioDestinationNodeConstructor = createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor, createNativeMediaStreamAudioDestinationNode, getNativeContext, isNativeOfflineAudioContext);\nconst mediaStreamAudioSourceNodeConstructor = createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor, createNativeMediaStreamAudioSourceNode, getNativeContext, isNativeOfflineAudioContext);\nconst createNativeMediaStreamTrackAudioSourceNode = createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError, isNativeOfflineAudioContext);\nconst mediaStreamTrackAudioSourceNodeConstructor = createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor, createNativeMediaStreamTrackAudioSourceNode, getNativeContext);\nconst audioContextConstructor = createAudioContextConstructor(baseAudioContextConstructor, createInvalidStateError, createNotSupportedError, createUnknownError, mediaElementAudioSourceNodeConstructor, mediaStreamAudioDestinationNodeConstructor, mediaStreamAudioSourceNodeConstructor, mediaStreamTrackAudioSourceNodeConstructor, nativeAudioContextConstructor);\nexport { audioContextConstructor as AudioContext };\nconst getUnrenderedAudioWorkletNodes = createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore);\nconst addUnrenderedAudioWorkletNode = createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes);\nconst connectMultipleOutputs = createConnectMultipleOutputs(createIndexSizeError);\nconst deleteUnrenderedAudioWorkletNode = createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes);\nconst disconnectMultipleOutputs = createDisconnectMultipleOutputs(createIndexSizeError);\nconst activeAudioWorkletNodeInputsStore = new WeakMap();\nconst getActiveAudioWorkletNodeInputs = createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore, getValueForKey);\nconst createNativeAudioWorkletNodeFaker = createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs, createIndexSizeError, createInvalidStateError, createNativeChannelMergerNode, createNativeChannelSplitterNode, createNativeConstantSourceNode, createNativeGainNode, createNativeScriptProcessorNode, createNotSupportedError, disconnectMultipleOutputs, exposeCurrentFrameAndCurrentTime, getActiveAudioWorkletNodeInputs, monitorConnections);\nconst createNativeAudioWorkletNode = createNativeAudioWorkletNodeFactory(createInvalidStateError, createNativeAudioWorkletNodeFaker, createNativeGainNode, createNotSupportedError, monitorConnections);\nconst createAudioWorkletNodeRenderer = createAudioWorkletNodeRendererFactory(connectAudioParam, connectMultipleOutputs, createNativeAudioBufferSourceNode, createNativeChannelMergerNode, createNativeChannelSplitterNode, createNativeConstantSourceNode, createNativeGainNode, deleteUnrenderedAudioWorkletNode, disconnectMultipleOutputs, exposeCurrentFrameAndCurrentTime, getNativeAudioNode, nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor, renderAutomation, renderInputsOfAudioNode, renderNativeOfflineAudioContext);\nconst getBackupOfflineAudioContext = createGetBackupOfflineAudioContext(backupOfflineAudioContextStore);\nconst setActiveAudioWorkletNodeInputs = createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore);\n// The AudioWorkletNode constructor is only available in a SecureContext.\nconst audioWorkletNodeConstructor = isSecureContext\n ? createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode, audioNodeConstructor, createAudioParam, createAudioWorkletNodeRenderer, createNativeAudioWorkletNode, getAudioNodeConnections, getBackupOfflineAudioContext, getNativeContext, isNativeOfflineAudioContext, nativeAudioWorkletNodeConstructor, sanitizeAudioWorkletNodeOptions, setActiveAudioWorkletNodeInputs, testAudioWorkletNodeOptionsClonability, wrapEventListener)\n : undefined;\nexport { audioWorkletNodeConstructor as AudioWorkletNode };\nexport { biquadFilterNodeConstructor as BiquadFilterNode };\nexport { channelMergerNodeConstructor as ChannelMergerNode };\nexport { channelSplitterNodeConstructor as ChannelSplitterNode };\nexport { convolverNodeConstructor as ConvolverNode };\nexport { constantSourceNodeConstructor as ConstantSourceNode };\nexport { delayNodeConstructor as DelayNode };\nexport { dynamicsCompressorNodeConstructor as DynamicsCompressorNode };\nexport { gainNodeConstructor as GainNode };\nexport { iIRFilterNodeConstructor as IIRFilterNode };\nexport { mediaElementAudioSourceNodeConstructor as MediaElementAudioSourceNode };\nexport { mediaStreamAudioDestinationNodeConstructor as MediaStreamAudioDestinationNode };\nexport { mediaStreamAudioSourceNodeConstructor as MediaStreamAudioSourceNode };\nexport { mediaStreamTrackAudioSourceNodeConstructor as MediaStreamTrackAudioSourceNode };\nconst minimalAudioContextConstructor = createMinimalAudioContextConstructor(createInvalidStateError, createNotSupportedError, createUnknownError, minimalBaseAudioContextConstructor, nativeAudioContextConstructor);\nexport { minimalAudioContextConstructor as MinimalAudioContext };\nconst createNativeOfflineAudioContext = createCreateNativeOfflineAudioContext(createNotSupportedError, nativeOfflineAudioContextConstructor);\nconst startRendering = createStartRendering(audioBufferStore, cacheTestResult, getAudioNodeRenderer, getUnrenderedAudioWorkletNodes, renderNativeOfflineAudioContext, testAudioBufferCopyChannelMethodsOutOfBoundsSupport, wrapAudioBufferCopyChannelMethods, wrapAudioBufferCopyChannelMethodsOutOfBounds);\nconst minimalOfflineAudioContextConstructor = createMinimalOfflineAudioContextConstructor(cacheTestResult, createInvalidStateError, createNativeOfflineAudioContext, minimalBaseAudioContextConstructor, startRendering);\nexport { minimalOfflineAudioContextConstructor as MinimalOfflineAudioContext };\nconst offlineAudioContextConstructor = createOfflineAudioContextConstructor(baseAudioContextConstructor, cacheTestResult, createInvalidStateError, createNativeOfflineAudioContext, startRendering);\nexport { offlineAudioContextConstructor as OfflineAudioContext };\nexport { oscillatorNodeConstructor as OscillatorNode };\nexport { pannerNodeConstructor as PannerNode };\nexport { periodicWaveConstructor as PeriodicWave };\nexport { stereoPannerNodeConstructor as StereoPannerNode };\nexport { waveShaperNodeConstructor as WaveShaperNode };\nexport const isAnyAudioContext = createIsAnyAudioContext(CONTEXT_STORE, isNativeAudioContext);\nexport const isAnyAudioNode = createIsAnyAudioNode(AUDIO_NODE_STORE, isNativeAudioNode);\nexport const isAnyAudioParam = createIsAnyAudioParam(AUDIO_PARAM_STORE, isNativeAudioParam);\nexport const isAnyOfflineAudioContext = createIsAnyOfflineAudioContext(CONTEXT_STORE, isNativeOfflineAudioContext);\nexport const isSupported = () => createIsSupportedPromise(cacheTestResult, createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor), createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor), createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor), createTestAudioContextOptionsSupport(nativeAudioContextConstructor), createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor), createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor, nativeOfflineAudioContextConstructor), createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor), createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor), createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor), createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor), testDomExceptionConstructorSupport, createTestIsSecureContextSupport(window), createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor), createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor), testTransferablesSupport);\n//# sourceMappingURL=module.js.map","/**\n * Assert that the statement is true, otherwise invoke the error.\n * @param statement\n * @param error The message which is passed into an Error\n */\nexport function assert(statement, error) {\n if (!statement) {\n throw new Error(error);\n }\n}\n/**\n * Make sure that the given value is within the range\n */\nexport function assertRange(value, gte, lte = Infinity) {\n if (!(gte <= value && value <= lte)) {\n throw new RangeError(`Value must be within [${gte}, ${lte}], got: ${value}`);\n }\n}\n/**\n * Make sure that the given value is within the range\n */\nexport function assertContextRunning(context) {\n // add a warning if the context is not started\n if (!context.isOffline && context.state !== \"running\") {\n warn(\"The AudioContext is \\\"suspended\\\". Invoke Tone.start() from a user action to start the audio.\");\n }\n}\n/**\n * The default logger is the console\n */\nlet defaultLogger = console;\n/**\n * Set the logging interface\n */\nexport function setLogger(logger) {\n defaultLogger = logger;\n}\n/**\n * Log anything\n */\nexport function log(...args) {\n defaultLogger.log(...args);\n}\n/**\n * Warn anything\n */\nexport function warn(...args) {\n defaultLogger.warn(...args);\n}\n//# sourceMappingURL=Debug.js.map","/**\n * Test if the arg is undefined\n */\nexport function isUndef(arg) {\n return typeof arg === \"undefined\";\n}\n/**\n * Test if the arg is not undefined\n */\nexport function isDefined(arg) {\n return !isUndef(arg);\n}\n/**\n * Test if the arg is a function\n */\nexport function isFunction(arg) {\n return typeof arg === \"function\";\n}\n/**\n * Test if the argument is a number.\n */\nexport function isNumber(arg) {\n return (typeof arg === \"number\");\n}\n/**\n * Test if the given argument is an object literal (i.e. `{}`);\n */\nexport function isObject(arg) {\n return (Object.prototype.toString.call(arg) === \"[object Object]\" && arg.constructor === Object);\n}\n/**\n * Test if the argument is a boolean.\n */\nexport function isBoolean(arg) {\n return (typeof arg === \"boolean\");\n}\n/**\n * Test if the argument is an Array\n */\nexport function isArray(arg) {\n return (Array.isArray(arg));\n}\n/**\n * Test if the argument is a string.\n */\nexport function isString(arg) {\n return (typeof arg === \"string\");\n}\n/**\n * Test if the argument is in the form of a note in scientific pitch notation.\n * e.g. \"C4\"\n */\nexport function isNote(arg) {\n return isString(arg) && /^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(arg);\n}\n//# sourceMappingURL=TypeCheck.js.map","import { AudioContext as stdAudioContext, AudioWorkletNode as stdAudioWorkletNode, OfflineAudioContext as stdOfflineAudioContext } from \"standardized-audio-context\";\nimport { assert } from \"../util/Debug\";\nimport { isDefined } from \"../util/TypeCheck\";\n/**\n * Create a new AudioContext\n */\nexport function createAudioContext(options) {\n return new stdAudioContext(options);\n}\n/**\n * Create a new OfflineAudioContext\n */\nexport function createOfflineAudioContext(channels, length, sampleRate) {\n return new stdOfflineAudioContext(channels, length, sampleRate);\n}\n/**\n * A reference to the window object\n * @hidden\n */\nexport const theWindow = typeof self === \"object\" ? self : null;\n/**\n * If the browser has a window object which has an AudioContext\n * @hidden\n */\nexport const hasAudioContext = theWindow &&\n (theWindow.hasOwnProperty(\"AudioContext\") || theWindow.hasOwnProperty(\"webkitAudioContext\"));\nexport function createAudioWorkletNode(context, name, options) {\n assert(isDefined(stdAudioWorkletNode), \"This node only works in a secure context (https or localhost)\");\n // @ts-ignore\n return new stdAudioWorkletNode(context, name, options);\n}\n/**\n * This promise resolves to a boolean which indicates if the\n * functionality is supported within the currently used browse.\n * Taken from [standardized-audio-context](https://github.com/chrisguttandin/standardized-audio-context#issupported)\n */\nexport { isSupported as supported } from \"standardized-audio-context\";\n//# sourceMappingURL=AudioContext.js.map","/**\n * A class which provides a reliable callback using either\n * a Web Worker, or if that isn't supported, falls back to setTimeout.\n */\nexport class Ticker {\n constructor(callback, type, updateInterval) {\n this._callback = callback;\n this._type = type;\n this._updateInterval = updateInterval;\n // create the clock source for the first time\n this._createClock();\n }\n /**\n * Generate a web worker\n */\n _createWorker() {\n const blob = new Blob([\n /* javascript */ `\n\t\t\t// the initial timeout time\n\t\t\tlet timeoutTime = ${(this._updateInterval * 1000).toFixed(1)};\n\t\t\t// onmessage callback\n\t\t\tself.onmessage = function(msg){\n\t\t\t\ttimeoutTime = parseInt(msg.data);\n\t\t\t};\n\t\t\t// the tick function which posts a message\n\t\t\t// and schedules a new tick\n\t\t\tfunction tick(){\n\t\t\t\tsetTimeout(tick, timeoutTime);\n\t\t\t\tself.postMessage('tick');\n\t\t\t}\n\t\t\t// call tick initially\n\t\t\ttick();\n\t\t\t`\n ], { type: \"text/javascript\" });\n const blobUrl = URL.createObjectURL(blob);\n const worker = new Worker(blobUrl);\n worker.onmessage = this._callback.bind(this);\n this._worker = worker;\n }\n /**\n * Create a timeout loop\n */\n _createTimeout() {\n this._timeout = setTimeout(() => {\n this._createTimeout();\n this._callback();\n }, this._updateInterval * 1000);\n }\n /**\n * Create the clock source.\n */\n _createClock() {\n if (this._type === \"worker\") {\n try {\n this._createWorker();\n }\n catch (e) {\n // workers not supported, fallback to timeout\n this._type = \"timeout\";\n this._createClock();\n }\n }\n else if (this._type === \"timeout\") {\n this._createTimeout();\n }\n }\n /**\n * Clean up the current clock source\n */\n _disposeClock() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = 0;\n }\n if (this._worker) {\n this._worker.terminate();\n this._worker.onmessage = null;\n }\n }\n /**\n * The rate in seconds the ticker will update\n */\n get updateInterval() {\n return this._updateInterval;\n }\n set updateInterval(interval) {\n this._updateInterval = Math.max(interval, 128 / 44100);\n if (this._type === \"worker\") {\n this._worker.postMessage(Math.max(interval * 1000, 1));\n }\n }\n /**\n * The type of the ticker, either a worker or a timeout\n */\n get type() {\n return this._type;\n }\n set type(type) {\n this._disposeClock();\n this._type = type;\n this._createClock();\n }\n /**\n * Clean up\n */\n dispose() {\n this._disposeClock();\n }\n}\n//# sourceMappingURL=Ticker.js.map","import { isAnyAudioContext, isAnyAudioNode, isAnyAudioParam, isAnyOfflineAudioContext, } from \"standardized-audio-context\";\n/**\n * Test if the given value is an instanceof AudioParam\n */\nexport function isAudioParam(arg) {\n return isAnyAudioParam(arg);\n}\n/**\n * Test if the given value is an instanceof AudioNode\n */\nexport function isAudioNode(arg) {\n return isAnyAudioNode(arg);\n}\n/**\n * Test if the arg is instanceof an OfflineAudioContext\n */\nexport function isOfflineAudioContext(arg) {\n return isAnyOfflineAudioContext(arg);\n}\n/**\n * Test if the arg is an instanceof AudioContext\n */\nexport function isAudioContext(arg) {\n return isAnyAudioContext(arg);\n}\n/**\n * Test if the arg is instanceof an AudioBuffer\n */\nexport function isAudioBuffer(arg) {\n return arg instanceof AudioBuffer;\n}\n//# sourceMappingURL=AdvancedTypeCheck.js.map","import { isAudioBuffer, isAudioNode, isAudioParam } from \"./AdvancedTypeCheck\";\nimport { isDefined, isObject, isUndef } from \"./TypeCheck\";\n/**\n * Some objects should not be merged\n */\nfunction noCopy(key, arg) {\n return key === \"value\" || isAudioParam(arg) || isAudioNode(arg) || isAudioBuffer(arg);\n}\nexport function deepMerge(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (noCopy(key, source[key])) {\n target[key] = source[key];\n }\n else if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n deepMerge(target[key], source[key]);\n }\n else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n // @ts-ignore\n return deepMerge(target, ...sources);\n}\n/**\n * Returns true if the two arrays have the same value for each of the elements\n */\nexport function deepEquals(arrayA, arrayB) {\n return arrayA.length === arrayB.length && arrayA.every((element, index) => arrayB[index] === element);\n}\n/**\n * Convert an args array into an object.\n */\nexport function optionsFromArguments(defaults, argsArray, keys = [], objKey) {\n const opts = {};\n const args = Array.from(argsArray);\n // if the first argument is an object and has an object key\n if (isObject(args[0]) && objKey && !Reflect.has(args[0], objKey)) {\n // if it's not part of the defaults\n const partOfDefaults = Object.keys(args[0]).some(key => Reflect.has(defaults, key));\n if (!partOfDefaults) {\n // merge that key\n deepMerge(opts, { [objKey]: args[0] });\n // remove the obj key from the keys\n keys.splice(keys.indexOf(objKey), 1);\n // shift the first argument off\n args.shift();\n }\n }\n if (args.length === 1 && isObject(args[0])) {\n deepMerge(opts, args[0]);\n }\n else {\n for (let i = 0; i < keys.length; i++) {\n if (isDefined(args[i])) {\n opts[keys[i]] = args[i];\n }\n }\n }\n return deepMerge(defaults, opts);\n}\n/**\n * Return this instances default values by calling Constructor.getDefaults()\n */\nexport function getDefaultsFromInstance(instance) {\n return instance.constructor.getDefaults();\n}\n/**\n * Returns the fallback if the given object is undefined.\n * Take an array of arguments and return a formatted options object.\n */\nexport function defaultArg(given, fallback) {\n if (isUndef(given)) {\n return fallback;\n }\n else {\n return given;\n }\n}\n/**\n * Remove all of the properties belonging to omit from obj.\n */\nexport function omitFromObject(obj, omit) {\n omit.forEach(prop => {\n if (Reflect.has(obj, prop)) {\n delete obj[prop];\n }\n });\n return obj;\n}\n//# sourceMappingURL=Defaults.js.map","/**\n * Tone.js\n * @author Yotam Mann\n * @license http://opensource.org/licenses/MIT MIT License\n * @copyright 2014-2019 Yotam Mann\n */\nimport { version } from \"../version\";\nimport { theWindow } from \"./context/AudioContext\";\nimport { log } from \"./util/Debug\";\n/**\n * @class Tone is the base class of all other classes.\n * @category Core\n * @constructor\n */\nexport class Tone {\n constructor() {\n //-------------------------------------\n // \tDEBUGGING\n //-------------------------------------\n /**\n * Set this debug flag to log all events that happen in this class.\n */\n this.debug = false;\n //-------------------------------------\n // \tDISPOSING\n //-------------------------------------\n /**\n * Indicates if the instance was disposed\n */\n this._wasDisposed = false;\n }\n /**\n * Returns all of the default options belonging to the class.\n */\n static getDefaults() {\n return {};\n }\n /**\n * Prints the outputs to the console log for debugging purposes.\n * Prints the contents only if either the object has a property\n * called `debug` set to true, or a variable called TONE_DEBUG_CLASS\n * is set to the name of the class.\n * @example\n * const osc = new Tone.Oscillator();\n * // prints all logs originating from this oscillator\n * osc.debug = true;\n * // calls to start/stop will print in the console\n * osc.start();\n */\n log(...args) {\n // if the object is either set to debug = true\n // or if there is a string on the Tone.global.with the class name\n if (this.debug || (theWindow && this.toString() === theWindow.TONE_DEBUG_CLASS)) {\n log(this, ...args);\n }\n }\n /**\n * disconnect and dispose.\n */\n dispose() {\n this._wasDisposed = true;\n return this;\n }\n /**\n * Indicates if the instance was disposed. 'Disposing' an\n * instance means that all of the Web Audio nodes that were\n * created for the instance are disconnected and freed for garbage collection.\n */\n get disposed() {\n return this._wasDisposed;\n }\n /**\n * Convert the class to a string\n * @example\n * const osc = new Tone.Oscillator();\n * console.log(osc.toString());\n */\n toString() {\n return this.name;\n }\n}\n/**\n * The version number semver\n */\nTone.version = version;\n//# sourceMappingURL=Tone.js.map","/**\n * The threshold for correctness for operators. Less than one sample even\n * at very high sampling rates (e.g. `1e-6 < 1 / 192000`).\n */\nconst EPSILON = 1e-6;\n/**\n * Test if A is greater than B\n */\nexport function GT(a, b) {\n return a > b + EPSILON;\n}\n/**\n * Test if A is greater than or equal to B\n */\nexport function GTE(a, b) {\n return GT(a, b) || EQ(a, b);\n}\n/**\n * Test if A is less than B\n */\nexport function LT(a, b) {\n return a + EPSILON < b;\n}\n/**\n * Test if A is less than B\n */\nexport function EQ(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\n/**\n * Clamp the value within the given range\n */\nexport function clamp(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}\n//# sourceMappingURL=Math.js.map","import { Tone } from \"../Tone\";\nimport { optionsFromArguments } from \"./Defaults\";\nimport { assert } from \"./Debug\";\nimport { EQ, GT, GTE, LT } from \"./Math\";\n/**\n * A Timeline class for scheduling and maintaining state\n * along a timeline. All events must have a \"time\" property.\n * Internally, events are stored in time order for fast\n * retrieval.\n */\nexport class Timeline extends Tone {\n constructor() {\n super();\n this.name = \"Timeline\";\n /**\n * The array of scheduled timeline events\n */\n this._timeline = [];\n const options = optionsFromArguments(Timeline.getDefaults(), arguments, [\"memory\"]);\n this.memory = options.memory;\n this.increasing = options.increasing;\n }\n static getDefaults() {\n return {\n memory: Infinity,\n increasing: false,\n };\n }\n /**\n * The number of items in the timeline.\n */\n get length() {\n return this._timeline.length;\n }\n /**\n * Insert an event object onto the timeline. Events must have a \"time\" attribute.\n * @param event The event object to insert into the timeline.\n */\n add(event) {\n // the event needs to have a time attribute\n assert(Reflect.has(event, \"time\"), \"Timeline: events must have a time attribute\");\n event.time = event.time.valueOf();\n if (this.increasing && this.length) {\n const lastValue = this._timeline[this.length - 1];\n assert(GTE(event.time, lastValue.time), \"The time must be greater than or equal to the last scheduled time\");\n this._timeline.push(event);\n }\n else {\n const index = this._search(event.time);\n this._timeline.splice(index + 1, 0, event);\n }\n // if the length is more than the memory, remove the previous ones\n if (this.length > this.memory) {\n const diff = this.length - this.memory;\n this._timeline.splice(0, diff);\n }\n return this;\n }\n /**\n * Remove an event from the timeline.\n * @param {Object} event The event object to remove from the list.\n * @returns {Timeline} this\n */\n remove(event) {\n const index = this._timeline.indexOf(event);\n if (index !== -1) {\n this._timeline.splice(index, 1);\n }\n return this;\n }\n /**\n * Get the nearest event whose time is less than or equal to the given time.\n * @param time The time to query.\n */\n get(time, param = \"time\") {\n const index = this._search(time, param);\n if (index !== -1) {\n return this._timeline[index];\n }\n else {\n return null;\n }\n }\n /**\n * Return the first event in the timeline without removing it\n * @returns {Object} The first event object\n */\n peek() {\n return this._timeline[0];\n }\n /**\n * Return the first event in the timeline and remove it\n */\n shift() {\n return this._timeline.shift();\n }\n /**\n * Get the event which is scheduled after the given time.\n * @param time The time to query.\n */\n getAfter(time, param = \"time\") {\n const index = this._search(time, param);\n if (index + 1 < this._timeline.length) {\n return this._timeline[index + 1];\n }\n else {\n return null;\n }\n }\n /**\n * Get the event before the event at the given time.\n * @param time The time to query.\n */\n getBefore(time) {\n const len = this._timeline.length;\n // if it's after the last item, return the last item\n if (len > 0 && this._timeline[len - 1].time < time) {\n return this._timeline[len - 1];\n }\n const index = this._search(time);\n if (index - 1 >= 0) {\n return this._timeline[index - 1];\n }\n else {\n return null;\n }\n }\n /**\n * Cancel events at and after the given time\n * @param after The time to query.\n */\n cancel(after) {\n if (this._timeline.length > 1) {\n let index = this._search(after);\n if (index >= 0) {\n if (EQ(this._timeline[index].time, after)) {\n // get the first item with that time\n for (let i = index; i >= 0; i--) {\n if (EQ(this._timeline[i].time, after)) {\n index = i;\n }\n else {\n break;\n }\n }\n this._timeline = this._timeline.slice(0, index);\n }\n else {\n this._timeline = this._timeline.slice(0, index + 1);\n }\n }\n else {\n this._timeline = [];\n }\n }\n else if (this._timeline.length === 1) {\n // the first item's time\n if (GTE(this._timeline[0].time, after)) {\n this._timeline = [];\n }\n }\n return this;\n }\n /**\n * Cancel events before or equal to the given time.\n * @param time The time to cancel before.\n */\n cancelBefore(time) {\n const index = this._search(time);\n if (index >= 0) {\n this._timeline = this._timeline.slice(index + 1);\n }\n return this;\n }\n /**\n * Returns the previous event if there is one. null otherwise\n * @param event The event to find the previous one of\n * @return The event right before the given event\n */\n previousEvent(event) {\n const index = this._timeline.indexOf(event);\n if (index > 0) {\n return this._timeline[index - 1];\n }\n else {\n return null;\n }\n }\n /**\n * Does a binary search on the timeline array and returns the\n * nearest event index whose time is after or equal to the given time.\n * If a time is searched before the first index in the timeline, -1 is returned.\n * If the time is after the end, the index of the last item is returned.\n */\n _search(time, param = \"time\") {\n if (this._timeline.length === 0) {\n return -1;\n }\n let beginning = 0;\n const len = this._timeline.length;\n let end = len;\n if (len > 0 && this._timeline[len - 1][param] <= time) {\n return len - 1;\n }\n while (beginning < end) {\n // calculate the midpoint for roughly equal partition\n let midPoint = Math.floor(beginning + (end - beginning) / 2);\n const event = this._timeline[midPoint];\n const nextEvent = this._timeline[midPoint + 1];\n if (EQ(event[param], time)) {\n // choose the last one that has the same time\n for (let i = midPoint; i < this._timeline.length; i++) {\n const testEvent = this._timeline[i];\n if (EQ(testEvent[param], time)) {\n midPoint = i;\n }\n else {\n break;\n }\n }\n return midPoint;\n }\n else if (LT(event[param], time) && GT(nextEvent[param], time)) {\n return midPoint;\n }\n else if (GT(event[param], time)) {\n // search lower\n end = midPoint;\n }\n else {\n // search upper\n beginning = midPoint + 1;\n }\n }\n return -1;\n }\n /**\n * Internal iterator. Applies extra safety checks for\n * removing items from the array.\n */\n _iterate(callback, lowerBound = 0, upperBound = this._timeline.length - 1) {\n this._timeline.slice(lowerBound, upperBound + 1).forEach(callback);\n }\n /**\n * Iterate over everything in the array\n * @param callback The callback to invoke with every item\n */\n forEach(callback) {\n this._iterate(callback);\n return this;\n }\n /**\n * Iterate over everything in the array at or before the given time.\n * @param time The time to check if items are before\n * @param callback The callback to invoke with every item\n */\n forEachBefore(time, callback) {\n // iterate over the items in reverse so that removing an item doesn't break things\n const upperBound = this._search(time);\n if (upperBound !== -1) {\n this._iterate(callback, 0, upperBound);\n }\n return this;\n }\n /**\n * Iterate over everything in the array after the given time.\n * @param time The time to check if items are before\n * @param callback The callback to invoke with every item\n */\n forEachAfter(time, callback) {\n // iterate over the items in reverse so that removing an item doesn't break things\n const lowerBound = this._search(time);\n this._iterate(callback, lowerBound + 1);\n return this;\n }\n /**\n * Iterate over everything in the array between the startTime and endTime.\n * The timerange is inclusive of the startTime, but exclusive of the endTime.\n * range = [startTime, endTime).\n * @param startTime The time to check if items are before\n * @param endTime The end of the test interval.\n * @param callback The callback to invoke with every item\n */\n forEachBetween(startTime, endTime, callback) {\n let lowerBound = this._search(startTime);\n let upperBound = this._search(endTime);\n if (lowerBound !== -1 && upperBound !== -1) {\n if (this._timeline[lowerBound].time !== startTime) {\n lowerBound += 1;\n }\n // exclusive of the end time\n if (this._timeline[upperBound].time === endTime) {\n upperBound -= 1;\n }\n this._iterate(callback, lowerBound, upperBound);\n }\n else if (lowerBound === -1) {\n this._iterate(callback, 0, upperBound);\n }\n return this;\n }\n /**\n * Iterate over everything in the array at or after the given time. Similar to\n * forEachAfter, but includes the item(s) at the given time.\n * @param time The time to check if items are before\n * @param callback The callback to invoke with every item\n */\n forEachFrom(time, callback) {\n // iterate over the items in reverse so that removing an item doesn't break things\n let lowerBound = this._search(time);\n // work backwards until the event time is less than time\n while (lowerBound >= 0 && this._timeline[lowerBound].time >= time) {\n lowerBound--;\n }\n this._iterate(callback, lowerBound + 1);\n return this;\n }\n /**\n * Iterate over everything in the array at the given time\n * @param time The time to check if items are before\n * @param callback The callback to invoke with every item\n */\n forEachAtTime(time, callback) {\n // iterate over the items in reverse so that removing an item doesn't break things\n const upperBound = this._search(time);\n if (upperBound !== -1 && EQ(this._timeline[upperBound].time, time)) {\n let lowerBound = upperBound;\n for (let i = upperBound; i >= 0; i--) {\n if (EQ(this._timeline[i].time, time)) {\n lowerBound = i;\n }\n else {\n break;\n }\n }\n this._iterate(event => {\n callback(event);\n }, lowerBound, upperBound);\n }\n return this;\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this._timeline = [];\n return this;\n }\n}\n//# sourceMappingURL=Timeline.js.map","//-------------------------------------\n// INITIALIZING NEW CONTEXT\n//-------------------------------------\n/**\n * Array of callbacks to invoke when a new context is created\n */\nconst notifyNewContext = [];\n/**\n * Used internally to setup a new Context\n */\nexport function onContextInit(cb) {\n notifyNewContext.push(cb);\n}\n/**\n * Invoke any classes which need to also be initialized when a new context is created.\n */\nexport function initializeContext(ctx) {\n // add any additional modules\n notifyNewContext.forEach(cb => cb(ctx));\n}\n/**\n * Array of callbacks to invoke when a new context is created\n */\nconst notifyCloseContext = [];\n/**\n * Used internally to tear down a Context\n */\nexport function onContextClose(cb) {\n notifyCloseContext.push(cb);\n}\nexport function closeContext(ctx) {\n // add any additional modules\n notifyCloseContext.forEach(cb => cb(ctx));\n}\n//# sourceMappingURL=ContextInitialization.js.map","import { Tone } from \"../Tone\";\nimport { isUndef } from \"./TypeCheck\";\n/**\n * Emitter gives classes which extend it\n * the ability to listen for and emit events.\n * Inspiration and reference from Jerome Etienne's [MicroEvent](https://github.com/jeromeetienne/microevent.js).\n * MIT (c) 2011 Jerome Etienne.\n * @category Core\n */\nexport class Emitter extends Tone {\n constructor() {\n super(...arguments);\n this.name = \"Emitter\";\n }\n /**\n * Bind a callback to a specific event.\n * @param event The name of the event to listen for.\n * @param callback The callback to invoke when the event is emitted\n */\n on(event, callback) {\n // split the event\n const events = event.split(/\\W+/);\n events.forEach(eventName => {\n if (isUndef(this._events)) {\n this._events = {};\n }\n if (!this._events.hasOwnProperty(eventName)) {\n this._events[eventName] = [];\n }\n this._events[eventName].push(callback);\n });\n return this;\n }\n /**\n * Bind a callback which is only invoked once\n * @param event The name of the event to listen for.\n * @param callback The callback to invoke when the event is emitted\n */\n once(event, callback) {\n const boundCallback = (...args) => {\n // invoke the callback\n callback(...args);\n // remove the event\n this.off(event, boundCallback);\n };\n this.on(event, boundCallback);\n return this;\n }\n /**\n * Remove the event listener.\n * @param event The event to stop listening to.\n * @param callback The callback which was bound to the event with Emitter.on.\n * If no callback is given, all callbacks events are removed.\n */\n off(event, callback) {\n const events = event.split(/\\W+/);\n events.forEach(eventName => {\n if (isUndef(this._events)) {\n this._events = {};\n }\n if (this._events.hasOwnProperty(event)) {\n if (isUndef(callback)) {\n this._events[event] = [];\n }\n else {\n const eventList = this._events[event];\n for (let i = eventList.length - 1; i >= 0; i--) {\n if (eventList[i] === callback) {\n eventList.splice(i, 1);\n }\n }\n }\n }\n });\n return this;\n }\n /**\n * Invoke all of the callbacks bound to the event\n * with any arguments passed in.\n * @param event The name of the event.\n * @param args The arguments to pass to the functions listening.\n */\n emit(event, ...args) {\n if (this._events) {\n if (this._events.hasOwnProperty(event)) {\n const eventList = this._events[event].slice(0);\n for (let i = 0, len = eventList.length; i < len; i++) {\n eventList[i].apply(this, args);\n }\n }\n }\n return this;\n }\n /**\n * Add Emitter functions (on/off/emit) to the object\n */\n static mixin(constr) {\n // instance._events = {};\n [\"on\", \"once\", \"off\", \"emit\"].forEach(name => {\n const property = Object.getOwnPropertyDescriptor(Emitter.prototype, name);\n Object.defineProperty(constr.prototype, name, property);\n });\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this._events = undefined;\n return this;\n }\n}\n//# sourceMappingURL=Emitter.js.map","import { Emitter } from \"../util/Emitter\";\nexport class BaseContext extends Emitter {\n constructor() {\n super(...arguments);\n this.isOffline = false;\n }\n /*\n * This is a placeholder so that JSON.stringify does not throw an error\n * This matches what JSON.stringify(audioContext) returns on a native\n * audioContext instance.\n */\n toJSON() {\n return {};\n }\n}\n//# sourceMappingURL=BaseContext.js.map","import { __awaiter } from \"tslib\";\nimport { Ticker } from \"../clock/Ticker\";\nimport { isAudioContext } from \"../util/AdvancedTypeCheck\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { Timeline } from \"../util/Timeline\";\nimport { isDefined, isString } from \"../util/TypeCheck\";\nimport { createAudioContext, createAudioWorkletNode, } from \"./AudioContext\";\nimport { closeContext, initializeContext } from \"./ContextInitialization\";\nimport { BaseContext } from \"./BaseContext\";\nimport { assert } from \"../util/Debug\";\n/**\n * Wrapper around the native AudioContext.\n * @category Core\n */\nexport class Context extends BaseContext {\n constructor() {\n super();\n this.name = \"Context\";\n /**\n * An object containing all of the constants AudioBufferSourceNodes\n */\n this._constants = new Map();\n /**\n * All of the setTimeout events.\n */\n this._timeouts = new Timeline();\n /**\n * The timeout id counter\n */\n this._timeoutIds = 0;\n /**\n * Private indicator if the context has been initialized\n */\n this._initialized = false;\n /**\n * Indicates if the context is an OfflineAudioContext or an AudioContext\n */\n this.isOffline = false;\n //--------------------------------------------\n // AUDIO WORKLET\n //--------------------------------------------\n /**\n * Maps a module name to promise of the addModule method\n */\n this._workletModules = new Map();\n const options = optionsFromArguments(Context.getDefaults(), arguments, [\n \"context\",\n ]);\n if (options.context) {\n this._context = options.context;\n }\n else {\n this._context = createAudioContext({\n latencyHint: options.latencyHint,\n });\n }\n this._ticker = new Ticker(this.emit.bind(this, \"tick\"), options.clockSource, options.updateInterval);\n this.on(\"tick\", this._timeoutLoop.bind(this));\n // fwd events from the context\n this._context.onstatechange = () => {\n this.emit(\"statechange\", this.state);\n };\n this._setLatencyHint(options.latencyHint);\n this.lookAhead = options.lookAhead;\n }\n static getDefaults() {\n return {\n clockSource: \"worker\",\n latencyHint: \"interactive\",\n lookAhead: 0.1,\n updateInterval: 0.05,\n };\n }\n /**\n * Finish setting up the context. **You usually do not need to do this manually.**\n */\n initialize() {\n if (!this._initialized) {\n // add any additional modules\n initializeContext(this);\n this._initialized = true;\n }\n return this;\n }\n //---------------------------\n // BASE AUDIO CONTEXT METHODS\n //---------------------------\n createAnalyser() {\n return this._context.createAnalyser();\n }\n createOscillator() {\n return this._context.createOscillator();\n }\n createBufferSource() {\n return this._context.createBufferSource();\n }\n createBiquadFilter() {\n return this._context.createBiquadFilter();\n }\n createBuffer(numberOfChannels, length, sampleRate) {\n return this._context.createBuffer(numberOfChannels, length, sampleRate);\n }\n createChannelMerger(numberOfInputs) {\n return this._context.createChannelMerger(numberOfInputs);\n }\n createChannelSplitter(numberOfOutputs) {\n return this._context.createChannelSplitter(numberOfOutputs);\n }\n createConstantSource() {\n return this._context.createConstantSource();\n }\n createConvolver() {\n return this._context.createConvolver();\n }\n createDelay(maxDelayTime) {\n return this._context.createDelay(maxDelayTime);\n }\n createDynamicsCompressor() {\n return this._context.createDynamicsCompressor();\n }\n createGain() {\n return this._context.createGain();\n }\n createIIRFilter(feedForward, feedback) {\n // @ts-ignore\n return this._context.createIIRFilter(feedForward, feedback);\n }\n createPanner() {\n return this._context.createPanner();\n }\n createPeriodicWave(real, imag, constraints) {\n return this._context.createPeriodicWave(real, imag, constraints);\n }\n createStereoPanner() {\n return this._context.createStereoPanner();\n }\n createWaveShaper() {\n return this._context.createWaveShaper();\n }\n createMediaStreamSource(stream) {\n assert(isAudioContext(this._context), \"Not available if OfflineAudioContext\");\n const context = this._context;\n return context.createMediaStreamSource(stream);\n }\n createMediaElementSource(element) {\n assert(isAudioContext(this._context), \"Not available if OfflineAudioContext\");\n const context = this._context;\n return context.createMediaElementSource(element);\n }\n createMediaStreamDestination() {\n assert(isAudioContext(this._context), \"Not available if OfflineAudioContext\");\n const context = this._context;\n return context.createMediaStreamDestination();\n }\n decodeAudioData(audioData) {\n return this._context.decodeAudioData(audioData);\n }\n /**\n * The current time in seconds of the AudioContext.\n */\n get currentTime() {\n return this._context.currentTime;\n }\n /**\n * The current time in seconds of the AudioContext.\n */\n get state() {\n return this._context.state;\n }\n /**\n * The current time in seconds of the AudioContext.\n */\n get sampleRate() {\n return this._context.sampleRate;\n }\n /**\n * The listener\n */\n get listener() {\n this.initialize();\n return this._listener;\n }\n set listener(l) {\n assert(!this._initialized, \"The listener cannot be set after initialization.\");\n this._listener = l;\n }\n /**\n * There is only one Transport per Context. It is created on initialization.\n */\n get transport() {\n this.initialize();\n return this._transport;\n }\n set transport(t) {\n assert(!this._initialized, \"The transport cannot be set after initialization.\");\n this._transport = t;\n }\n /**\n * This is the Draw object for the context which is useful for synchronizing the draw frame with the Tone.js clock.\n */\n get draw() {\n this.initialize();\n return this._draw;\n }\n set draw(d) {\n assert(!this._initialized, \"Draw cannot be set after initialization.\");\n this._draw = d;\n }\n /**\n * A reference to the Context's destination node.\n */\n get destination() {\n this.initialize();\n return this._destination;\n }\n set destination(d) {\n assert(!this._initialized, \"The destination cannot be set after initialization.\");\n this._destination = d;\n }\n /**\n * Create an audio worklet node from a name and options. The module\n * must first be loaded using [[addAudioWorkletModule]].\n */\n createAudioWorkletNode(name, options) {\n return createAudioWorkletNode(this.rawContext, name, options);\n }\n /**\n * Add an AudioWorkletProcessor module\n * @param url The url of the module\n * @param name The name of the module\n */\n addAudioWorkletModule(url, name) {\n return __awaiter(this, void 0, void 0, function* () {\n assert(isDefined(this.rawContext.audioWorklet), \"AudioWorkletNode is only available in a secure context (https or localhost)\");\n if (!this._workletModules.has(name)) {\n this._workletModules.set(name, this.rawContext.audioWorklet.addModule(url));\n }\n yield this._workletModules.get(name);\n });\n }\n /**\n * Returns a promise which resolves when all of the worklets have been loaded on this context\n */\n workletsAreReady() {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = [];\n this._workletModules.forEach((promise) => promises.push(promise));\n yield Promise.all(promises);\n });\n }\n //---------------------------\n // TICKER\n //---------------------------\n /**\n * How often the interval callback is invoked.\n * This number corresponds to how responsive the scheduling\n * can be. context.updateInterval + context.lookAhead gives you the\n * total latency between scheduling an event and hearing it.\n */\n get updateInterval() {\n return this._ticker.updateInterval;\n }\n set updateInterval(interval) {\n this._ticker.updateInterval = interval;\n }\n /**\n * What the source of the clock is, either \"worker\" (default),\n * \"timeout\", or \"offline\" (none).\n */\n get clockSource() {\n return this._ticker.type;\n }\n set clockSource(type) {\n this._ticker.type = type;\n }\n /**\n * The type of playback, which affects tradeoffs between audio\n * output latency and responsiveness.\n * In addition to setting the value in seconds, the latencyHint also\n * accepts the strings \"interactive\" (prioritizes low latency),\n * \"playback\" (prioritizes sustained playback), \"balanced\" (balances\n * latency and performance).\n * @example\n * // prioritize sustained playback\n * const context = new Tone.Context({ latencyHint: \"playback\" });\n * // set this context as the global Context\n * Tone.setContext(context);\n * // the global context is gettable with Tone.getContext()\n * console.log(Tone.getContext().latencyHint);\n */\n get latencyHint() {\n return this._latencyHint;\n }\n /**\n * Update the lookAhead and updateInterval based on the latencyHint\n */\n _setLatencyHint(hint) {\n let lookAheadValue = 0;\n this._latencyHint = hint;\n if (isString(hint)) {\n switch (hint) {\n case \"interactive\":\n lookAheadValue = 0.1;\n break;\n case \"playback\":\n lookAheadValue = 0.5;\n break;\n case \"balanced\":\n lookAheadValue = 0.25;\n break;\n }\n }\n this.lookAhead = lookAheadValue;\n this.updateInterval = lookAheadValue / 2;\n }\n /**\n * The unwrapped AudioContext or OfflineAudioContext\n */\n get rawContext() {\n return this._context;\n }\n /**\n * The current audio context time plus a short [[lookAhead]].\n */\n now() {\n return this._context.currentTime + this.lookAhead;\n }\n /**\n * The current audio context time without the [[lookAhead]].\n * In most cases it is better to use [[now]] instead of [[immediate]] since\n * with [[now]] the [[lookAhead]] is applied equally to _all_ components including internal components,\n * to making sure that everything is scheduled in sync. Mixing [[now]] and [[immediate]]\n * can cause some timing issues. If no lookAhead is desired, you can set the [[lookAhead]] to `0`.\n */\n immediate() {\n return this._context.currentTime;\n }\n /**\n * Starts the audio context from a suspended state. This is required\n * to initially start the AudioContext. See [[Tone.start]]\n */\n resume() {\n if (isAudioContext(this._context)) {\n return this._context.resume();\n }\n else {\n return Promise.resolve();\n }\n }\n /**\n * Close the context. Once closed, the context can no longer be used and\n * any AudioNodes created from the context will be silent.\n */\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n if (isAudioContext(this._context)) {\n yield this._context.close();\n }\n if (this._initialized) {\n closeContext(this);\n }\n });\n }\n /**\n * **Internal** Generate a looped buffer at some constant value.\n */\n getConstant(val) {\n if (this._constants.has(val)) {\n return this._constants.get(val);\n }\n else {\n const buffer = this._context.createBuffer(1, 128, this._context.sampleRate);\n const arr = buffer.getChannelData(0);\n for (let i = 0; i < arr.length; i++) {\n arr[i] = val;\n }\n const constant = this._context.createBufferSource();\n constant.channelCount = 1;\n constant.channelCountMode = \"explicit\";\n constant.buffer = buffer;\n constant.loop = true;\n constant.start(0);\n this._constants.set(val, constant);\n return constant;\n }\n }\n /**\n * Clean up. Also closes the audio context.\n */\n dispose() {\n super.dispose();\n this._ticker.dispose();\n this._timeouts.dispose();\n Object.keys(this._constants).map((val) => this._constants[val].disconnect());\n return this;\n }\n //---------------------------\n // TIMEOUTS\n //---------------------------\n /**\n * The private loop which keeps track of the context scheduled timeouts\n * Is invoked from the clock source\n */\n _timeoutLoop() {\n const now = this.now();\n let firstEvent = this._timeouts.peek();\n while (this._timeouts.length && firstEvent && firstEvent.time <= now) {\n // invoke the callback\n firstEvent.callback();\n // shift the first event off\n this._timeouts.shift();\n // get the next one\n firstEvent = this._timeouts.peek();\n }\n }\n /**\n * A setTimeout which is guaranteed by the clock source.\n * Also runs in the offline context.\n * @param fn The callback to invoke\n * @param timeout The timeout in seconds\n * @returns ID to use when invoking Context.clearTimeout\n */\n setTimeout(fn, timeout) {\n this._timeoutIds++;\n const now = this.now();\n this._timeouts.add({\n callback: fn,\n id: this._timeoutIds,\n time: now + timeout,\n });\n return this._timeoutIds;\n }\n /**\n * Clears a previously scheduled timeout with Tone.context.setTimeout\n * @param id The ID returned from setTimeout\n */\n clearTimeout(id) {\n this._timeouts.forEach((event) => {\n if (event.id === id) {\n this._timeouts.remove(event);\n }\n });\n return this;\n }\n /**\n * Clear the function scheduled by [[setInterval]]\n */\n clearInterval(id) {\n return this.clearTimeout(id);\n }\n /**\n * Adds a repeating event to the context's callback clock\n */\n setInterval(fn, interval) {\n const id = ++this._timeoutIds;\n const intervalFn = () => {\n const now = this.now();\n this._timeouts.add({\n callback: () => {\n // invoke the callback\n fn();\n // invoke the event to repeat it\n intervalFn();\n },\n id,\n time: now + interval,\n });\n };\n // kick it off\n intervalFn();\n return id;\n }\n}\n//# sourceMappingURL=Context.js.map","import { __awaiter } from \"tslib\";\nimport { BaseContext } from \"./BaseContext\";\nexport class DummyContext extends BaseContext {\n constructor() {\n super(...arguments);\n this.lookAhead = 0;\n this.latencyHint = 0;\n this.isOffline = false;\n }\n //---------------------------\n // BASE AUDIO CONTEXT METHODS\n //---------------------------\n createAnalyser() {\n return {};\n }\n createOscillator() {\n return {};\n }\n createBufferSource() {\n return {};\n }\n createBiquadFilter() {\n return {};\n }\n createBuffer(_numberOfChannels, _length, _sampleRate) {\n return {};\n }\n createChannelMerger(_numberOfInputs) {\n return {};\n }\n createChannelSplitter(_numberOfOutputs) {\n return {};\n }\n createConstantSource() {\n return {};\n }\n createConvolver() {\n return {};\n }\n createDelay(_maxDelayTime) {\n return {};\n }\n createDynamicsCompressor() {\n return {};\n }\n createGain() {\n return {};\n }\n createIIRFilter(_feedForward, _feedback) {\n return {};\n }\n createPanner() {\n return {};\n }\n createPeriodicWave(_real, _imag, _constraints) {\n return {};\n }\n createStereoPanner() {\n return {};\n }\n createWaveShaper() {\n return {};\n }\n createMediaStreamSource(_stream) {\n return {};\n }\n createMediaElementSource(_element) {\n return {};\n }\n createMediaStreamDestination() {\n return {};\n }\n decodeAudioData(_audioData) {\n return Promise.resolve({});\n }\n //---------------------------\n // TONE AUDIO CONTEXT METHODS\n //---------------------------\n createAudioWorkletNode(_name, _options) {\n return {};\n }\n get rawContext() {\n return {};\n }\n addAudioWorkletModule(_url, _name) {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.resolve();\n });\n }\n resume() {\n return Promise.resolve();\n }\n setTimeout(_fn, _timeout) {\n return 0;\n }\n clearTimeout(_id) {\n return this;\n }\n setInterval(_fn, _interval) {\n return 0;\n }\n clearInterval(_id) {\n return this;\n }\n getConstant(_val) {\n return {};\n }\n get currentTime() {\n return 0;\n }\n get state() {\n return {};\n }\n get sampleRate() {\n return 0;\n }\n get listener() {\n return {};\n }\n get transport() {\n return {};\n }\n get draw() {\n return {};\n }\n set draw(_d) { }\n get destination() {\n return {};\n }\n set destination(_d) { }\n now() {\n return 0;\n }\n immediate() {\n return 0;\n }\n}\n//# sourceMappingURL=DummyContext.js.map","import { isArray } from \"./TypeCheck\";\n/**\n * Make the property not writable using `defineProperty`. Internal use only.\n */\nexport function readOnly(target, property) {\n if (isArray(property)) {\n property.forEach(str => readOnly(target, str));\n }\n else {\n Object.defineProperty(target, property, {\n enumerable: true,\n writable: false,\n });\n }\n}\n/**\n * Make an attribute writeable. Internal use only.\n */\nexport function writable(target, property) {\n if (isArray(property)) {\n property.forEach(str => writable(target, str));\n }\n else {\n Object.defineProperty(target, property, {\n writable: true,\n });\n }\n}\nexport const noOp = () => {\n // no operation here!\n};\n//# sourceMappingURL=Interface.js.map","import { __awaiter } from \"tslib\";\nimport { getContext } from \"../Global\";\nimport { Tone } from \"../Tone\";\nimport { isAudioBuffer } from \"../util/AdvancedTypeCheck\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { noOp } from \"../util/Interface\";\nimport { isArray, isNumber, isString } from \"../util/TypeCheck\";\nimport { assert } from \"../util/Debug\";\n/**\n * AudioBuffer loading and storage. ToneAudioBuffer is used internally by all\n * classes that make requests for audio files such as Tone.Player,\n * Tone.Sampler and Tone.Convolver.\n * @example\n * const buffer = new Tone.ToneAudioBuffer(\"https://tonejs.github.io/audio/casio/A1.mp3\", () => {\n * \tconsole.log(\"loaded\");\n * });\n * @category Core\n */\nexport class ToneAudioBuffer extends Tone {\n constructor() {\n super();\n this.name = \"ToneAudioBuffer\";\n /**\n * Callback when the buffer is loaded.\n */\n this.onload = noOp;\n const options = optionsFromArguments(ToneAudioBuffer.getDefaults(), arguments, [\"url\", \"onload\", \"onerror\"]);\n this.reverse = options.reverse;\n this.onload = options.onload;\n if (options.url && isAudioBuffer(options.url) || options.url instanceof ToneAudioBuffer) {\n this.set(options.url);\n }\n else if (isString(options.url)) {\n // initiate the download\n this.load(options.url).catch(options.onerror);\n }\n }\n static getDefaults() {\n return {\n onerror: noOp,\n onload: noOp,\n reverse: false,\n };\n }\n /**\n * The sample rate of the AudioBuffer\n */\n get sampleRate() {\n if (this._buffer) {\n return this._buffer.sampleRate;\n }\n else {\n return getContext().sampleRate;\n }\n }\n /**\n * Pass in an AudioBuffer or ToneAudioBuffer to set the value of this buffer.\n */\n set(buffer) {\n if (buffer instanceof ToneAudioBuffer) {\n // if it's loaded, set it\n if (buffer.loaded) {\n this._buffer = buffer.get();\n }\n else {\n // otherwise when it's loaded, invoke it's callback\n buffer.onload = () => {\n this.set(buffer);\n this.onload(this);\n };\n }\n }\n else {\n this._buffer = buffer;\n }\n // reverse it initially\n if (this._reversed) {\n this._reverse();\n }\n return this;\n }\n /**\n * The audio buffer stored in the object.\n */\n get() {\n return this._buffer;\n }\n /**\n * Makes an fetch request for the selected url then decodes the file as an audio buffer.\n * Invokes the callback once the audio buffer loads.\n * @param url The url of the buffer to load. filetype support depends on the browser.\n * @returns A Promise which resolves with this ToneAudioBuffer\n */\n load(url) {\n return __awaiter(this, void 0, void 0, function* () {\n const doneLoading = ToneAudioBuffer.load(url).then(audioBuffer => {\n this.set(audioBuffer);\n // invoke the onload method\n this.onload(this);\n });\n ToneAudioBuffer.downloads.push(doneLoading);\n try {\n yield doneLoading;\n }\n finally {\n // remove the downloaded file\n const index = ToneAudioBuffer.downloads.indexOf(doneLoading);\n ToneAudioBuffer.downloads.splice(index, 1);\n }\n return this;\n });\n }\n /**\n * clean up\n */\n dispose() {\n super.dispose();\n this._buffer = undefined;\n return this;\n }\n /**\n * Set the audio buffer from the array.\n * To create a multichannel AudioBuffer, pass in a multidimensional array.\n * @param array The array to fill the audio buffer\n */\n fromArray(array) {\n const isMultidimensional = isArray(array) && array[0].length > 0;\n const channels = isMultidimensional ? array.length : 1;\n const len = isMultidimensional ? array[0].length : array.length;\n const context = getContext();\n const buffer = context.createBuffer(channels, len, context.sampleRate);\n const multiChannelArray = !isMultidimensional && channels === 1 ?\n [array] : array;\n for (let c = 0; c < channels; c++) {\n buffer.copyToChannel(multiChannelArray[c], c);\n }\n this._buffer = buffer;\n return this;\n }\n /**\n * Sums multiple channels into 1 channel\n * @param chanNum Optionally only copy a single channel from the array.\n */\n toMono(chanNum) {\n if (isNumber(chanNum)) {\n this.fromArray(this.toArray(chanNum));\n }\n else {\n let outputArray = new Float32Array(this.length);\n const numChannels = this.numberOfChannels;\n for (let channel = 0; channel < numChannels; channel++) {\n const channelArray = this.toArray(channel);\n for (let i = 0; i < channelArray.length; i++) {\n outputArray[i] += channelArray[i];\n }\n }\n // divide by the number of channels\n outputArray = outputArray.map(sample => sample / numChannels);\n this.fromArray(outputArray);\n }\n return this;\n }\n /**\n * Get the buffer as an array. Single channel buffers will return a 1-dimensional\n * Float32Array, and multichannel buffers will return multidimensional arrays.\n * @param channel Optionally only copy a single channel from the array.\n */\n toArray(channel) {\n if (isNumber(channel)) {\n return this.getChannelData(channel);\n }\n else if (this.numberOfChannels === 1) {\n return this.toArray(0);\n }\n else {\n const ret = [];\n for (let c = 0; c < this.numberOfChannels; c++) {\n ret[c] = this.getChannelData(c);\n }\n return ret;\n }\n }\n /**\n * Returns the Float32Array representing the PCM audio data for the specific channel.\n * @param channel The channel number to return\n * @return The audio as a TypedArray\n */\n getChannelData(channel) {\n if (this._buffer) {\n return this._buffer.getChannelData(channel);\n }\n else {\n return new Float32Array(0);\n }\n }\n /**\n * Cut a subsection of the array and return a buffer of the\n * subsection. Does not modify the original buffer\n * @param start The time to start the slice\n * @param end The end time to slice. If none is given will default to the end of the buffer\n */\n slice(start, end = this.duration) {\n const startSamples = Math.floor(start * this.sampleRate);\n const endSamples = Math.floor(end * this.sampleRate);\n assert(startSamples < endSamples, \"The start time must be less than the end time\");\n const length = endSamples - startSamples;\n const retBuffer = getContext().createBuffer(this.numberOfChannels, length, this.sampleRate);\n for (let channel = 0; channel < this.numberOfChannels; channel++) {\n retBuffer.copyToChannel(this.getChannelData(channel).subarray(startSamples, endSamples), channel);\n }\n return new ToneAudioBuffer(retBuffer);\n }\n /**\n * Reverse the buffer.\n */\n _reverse() {\n if (this.loaded) {\n for (let i = 0; i < this.numberOfChannels; i++) {\n this.getChannelData(i).reverse();\n }\n }\n return this;\n }\n /**\n * If the buffer is loaded or not\n */\n get loaded() {\n return this.length > 0;\n }\n /**\n * The duration of the buffer in seconds.\n */\n get duration() {\n if (this._buffer) {\n return this._buffer.duration;\n }\n else {\n return 0;\n }\n }\n /**\n * The length of the buffer in samples\n */\n get length() {\n if (this._buffer) {\n return this._buffer.length;\n }\n else {\n return 0;\n }\n }\n /**\n * The number of discrete audio channels. Returns 0 if no buffer is loaded.\n */\n get numberOfChannels() {\n if (this._buffer) {\n return this._buffer.numberOfChannels;\n }\n else {\n return 0;\n }\n }\n /**\n * Reverse the buffer.\n */\n get reverse() {\n return this._reversed;\n }\n set reverse(rev) {\n if (this._reversed !== rev) {\n this._reversed = rev;\n this._reverse();\n }\n }\n /**\n * Create a ToneAudioBuffer from the array. To create a multichannel AudioBuffer,\n * pass in a multidimensional array.\n * @param array The array to fill the audio buffer\n * @return A ToneAudioBuffer created from the array\n */\n static fromArray(array) {\n return (new ToneAudioBuffer()).fromArray(array);\n }\n /**\n * Creates a ToneAudioBuffer from a URL, returns a promise which resolves to a ToneAudioBuffer\n * @param url The url to load.\n * @return A promise which resolves to a ToneAudioBuffer\n */\n static fromUrl(url) {\n return __awaiter(this, void 0, void 0, function* () {\n const buffer = new ToneAudioBuffer();\n return yield buffer.load(url);\n });\n }\n /**\n * Loads a url using fetch and returns the AudioBuffer.\n */\n static load(url) {\n return __awaiter(this, void 0, void 0, function* () {\n // test if the url contains multiple extensions\n const matches = url.match(/\\[([^\\]\\[]+\\|.+)\\]$/);\n if (matches) {\n const extensions = matches[1].split(\"|\");\n let extension = extensions[0];\n for (const ext of extensions) {\n if (ToneAudioBuffer.supportsType(ext)) {\n extension = ext;\n break;\n }\n }\n url = url.replace(matches[0], extension);\n }\n // make sure there is a slash between the baseUrl and the url\n const baseUrl = ToneAudioBuffer.baseUrl === \"\" || ToneAudioBuffer.baseUrl.endsWith(\"/\") ? ToneAudioBuffer.baseUrl : ToneAudioBuffer.baseUrl + \"/\";\n const response = yield fetch(baseUrl + url);\n if (!response.ok) {\n throw new Error(`could not load url: ${url}`);\n }\n const arrayBuffer = yield response.arrayBuffer();\n const audioBuffer = yield getContext().decodeAudioData(arrayBuffer);\n return audioBuffer;\n });\n }\n /**\n * Checks a url's extension to see if the current browser can play that file type.\n * @param url The url/extension to test\n * @return If the file extension can be played\n * @static\n * @example\n * Tone.ToneAudioBuffer.supportsType(\"wav\"); // returns true\n * Tone.ToneAudioBuffer.supportsType(\"path/to/file.wav\"); // returns true\n */\n static supportsType(url) {\n const extensions = url.split(\".\");\n const extension = extensions[extensions.length - 1];\n const response = document.createElement(\"audio\").canPlayType(\"audio/\" + extension);\n return response !== \"\";\n }\n /**\n * Returns a Promise which resolves when all of the buffers have loaded\n */\n static loaded() {\n return __awaiter(this, void 0, void 0, function* () {\n // this makes sure that the function is always async\n yield Promise.resolve();\n while (ToneAudioBuffer.downloads.length) {\n yield ToneAudioBuffer.downloads[0];\n }\n });\n }\n}\n//-------------------------------------\n// STATIC METHODS\n//-------------------------------------\n/**\n * A path which is prefixed before every url.\n */\nToneAudioBuffer.baseUrl = \"\";\n/**\n * All of the downloads\n */\nToneAudioBuffer.downloads = [];\n//# sourceMappingURL=ToneAudioBuffer.js.map","import { __awaiter } from \"tslib\";\nimport { createOfflineAudioContext } from \"../context/AudioContext\";\nimport { Context } from \"../context/Context\";\nimport { isOfflineAudioContext } from \"../util/AdvancedTypeCheck\";\nimport { ToneAudioBuffer } from \"./ToneAudioBuffer\";\n/**\n * Wrapper around the OfflineAudioContext\n * @category Core\n * @example\n * // generate a single channel, 0.5 second buffer\n * const context = new Tone.OfflineContext(1, 0.5, 44100);\n * const osc = new Tone.Oscillator({ context });\n * context.render().then(buffer => {\n * \tconsole.log(buffer.numberOfChannels, buffer.duration);\n * });\n */\nexport class OfflineContext extends Context {\n constructor() {\n super({\n clockSource: \"offline\",\n context: isOfflineAudioContext(arguments[0]) ?\n arguments[0] : createOfflineAudioContext(arguments[0], arguments[1] * arguments[2], arguments[2]),\n lookAhead: 0,\n updateInterval: isOfflineAudioContext(arguments[0]) ?\n 128 / arguments[0].sampleRate : 128 / arguments[2],\n });\n this.name = \"OfflineContext\";\n /**\n * An artificial clock source\n */\n this._currentTime = 0;\n this.isOffline = true;\n this._duration = isOfflineAudioContext(arguments[0]) ?\n arguments[0].length / arguments[0].sampleRate : arguments[1];\n }\n /**\n * Override the now method to point to the internal clock time\n */\n now() {\n return this._currentTime;\n }\n /**\n * Same as this.now()\n */\n get currentTime() {\n return this._currentTime;\n }\n /**\n * Render just the clock portion of the audio context.\n */\n _renderClock(asynchronous) {\n return __awaiter(this, void 0, void 0, function* () {\n let index = 0;\n while (this._duration - this._currentTime >= 0) {\n // invoke all the callbacks on that time\n this.emit(\"tick\");\n // increment the clock in block-sized chunks\n this._currentTime += 128 / this.sampleRate;\n // yield once a second of audio\n index++;\n const yieldEvery = Math.floor(this.sampleRate / 128);\n if (asynchronous && index % yieldEvery === 0) {\n yield new Promise(done => setTimeout(done, 1));\n }\n }\n });\n }\n /**\n * Render the output of the OfflineContext\n * @param asynchronous If the clock should be rendered asynchronously, which will not block the main thread, but be slightly slower.\n */\n render(asynchronous = true) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.workletsAreReady();\n yield this._renderClock(asynchronous);\n const buffer = yield this._context.startRendering();\n return new ToneAudioBuffer(buffer);\n });\n }\n /**\n * Close the context\n */\n close() {\n return Promise.resolve();\n }\n}\n//# sourceMappingURL=OfflineContext.js.map","import { version } from \"../version\";\nimport { hasAudioContext, theWindow } from \"./context/AudioContext\";\nimport { Context } from \"./context/Context\";\nimport { DummyContext } from \"./context/DummyContext\";\nimport { OfflineContext } from \"./context/OfflineContext\";\nimport { isAudioContext, isOfflineAudioContext } from \"./util/AdvancedTypeCheck\";\n/**\n * This dummy context is used to avoid throwing immediate errors when importing in Node.js\n */\nconst dummyContext = new DummyContext();\n/**\n * The global audio context which is getable and assignable through\n * getContext and setContext\n */\nlet globalContext = dummyContext;\n/**\n * Returns the default system-wide [[Context]]\n * @category Core\n */\nexport function getContext() {\n if (globalContext === dummyContext && hasAudioContext) {\n setContext(new Context());\n }\n return globalContext;\n}\n/**\n * Set the default audio context\n * @category Core\n */\nexport function setContext(context) {\n if (isAudioContext(context)) {\n globalContext = new Context(context);\n }\n else if (isOfflineAudioContext(context)) {\n globalContext = new OfflineContext(context);\n }\n else {\n globalContext = context;\n }\n}\n/**\n * Most browsers will not play _any_ audio until a user\n * clicks something (like a play button). Invoke this method\n * on a click or keypress event handler to start the audio context.\n * More about the Autoplay policy\n * [here](https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio)\n * @example\n * document.querySelector(\"button\").addEventListener(\"click\", async () => {\n * \tawait Tone.start();\n * \tconsole.log(\"context started\");\n * });\n * @category Core\n */\nexport function start() {\n return globalContext.resume();\n}\n/**\n * Log Tone.js + version in the console.\n */\nif (theWindow && !theWindow.TONE_SILENCE_LOGGING) {\n let prefix = \"v\";\n if (version === \"dev\") {\n prefix = \"\";\n }\n const printString = ` * Tone.js ${prefix}${version} * `;\n // eslint-disable-next-line no-console\n console.log(`%c${printString}`, \"background: #000; color: #fff\");\n}\n//# sourceMappingURL=Global.js.map","/**\n * Equal power gain scale. Good for cross-fading.\n * @param percent (0-1)\n */\nexport function equalPowerScale(percent) {\n const piFactor = 0.5 * Math.PI;\n return Math.sin(percent * piFactor);\n}\n/**\n * Convert decibels into gain.\n */\nexport function dbToGain(db) {\n return Math.pow(10, db / 20);\n}\n/**\n * Convert gain to decibels.\n */\nexport function gainToDb(gain) {\n return 20 * (Math.log(gain) / Math.LN10);\n}\n/**\n * Convert an interval (in semitones) to a frequency ratio.\n * @param interval the number of semitones above the base note\n * @example\n * Tone.intervalToFrequencyRatio(0); // 1\n * Tone.intervalToFrequencyRatio(12); // 2\n * Tone.intervalToFrequencyRatio(-12); // 0.5\n */\nexport function intervalToFrequencyRatio(interval) {\n return Math.pow(2, (interval / 12));\n}\n/**\n * The Global [concert tuning pitch](https://en.wikipedia.org/wiki/Concert_pitch) which is used\n * to generate all the other pitch values from notes. A4's values in Hertz.\n */\nlet A4 = 440;\nexport function getA4() {\n return A4;\n}\nexport function setA4(freq) {\n A4 = freq;\n}\n/**\n * Convert a frequency value to a MIDI note.\n * @param frequency The value to frequency value to convert.\n * @example\n * Tone.ftom(440); // returns 69\n */\nexport function ftom(frequency) {\n return Math.round(ftomf(frequency));\n}\n/**\n * Convert a frequency to a floating point midi value\n */\nexport function ftomf(frequency) {\n return 69 + 12 * Math.log2(frequency / A4);\n}\n/**\n * Convert a MIDI note to frequency value.\n * @param midi The midi number to convert.\n * @return The corresponding frequency value\n * @example\n * Tone.mtof(69); // 440\n */\nexport function mtof(midi) {\n return A4 * Math.pow(2, (midi - 69) / 12);\n}\n//# sourceMappingURL=Conversions.js.map","import { Tone } from \"../Tone\";\nimport { isDefined, isObject, isString, isUndef } from \"../util/TypeCheck\";\n/**\n * TimeBase is a flexible encoding of time which can be evaluated to and from a string.\n */\nexport class TimeBaseClass extends Tone {\n /**\n * @param context The context associated with the time value. Used to compute\n * Transport and context-relative timing.\n * @param value The time value as a number, string or object\n * @param units Unit values\n */\n constructor(context, value, units) {\n super();\n /**\n * The default units\n */\n this.defaultUnits = \"s\";\n this._val = value;\n this._units = units;\n this.context = context;\n this._expressions = this._getExpressions();\n }\n /**\n * All of the time encoding expressions\n */\n _getExpressions() {\n return {\n hz: {\n method: (value) => {\n return this._frequencyToUnits(parseFloat(value));\n },\n regexp: /^(\\d+(?:\\.\\d+)?)hz$/i,\n },\n i: {\n method: (value) => {\n return this._ticksToUnits(parseInt(value, 10));\n },\n regexp: /^(\\d+)i$/i,\n },\n m: {\n method: (value) => {\n return this._beatsToUnits(parseInt(value, 10) * this._getTimeSignature());\n },\n regexp: /^(\\d+)m$/i,\n },\n n: {\n method: (value, dot) => {\n const numericValue = parseInt(value, 10);\n const scalar = dot === \".\" ? 1.5 : 1;\n if (numericValue === 1) {\n return this._beatsToUnits(this._getTimeSignature()) * scalar;\n }\n else {\n return this._beatsToUnits(4 / numericValue) * scalar;\n }\n },\n regexp: /^(\\d+)n(\\.?)$/i,\n },\n number: {\n method: (value) => {\n return this._expressions[this.defaultUnits].method.call(this, value);\n },\n regexp: /^(\\d+(?:\\.\\d+)?)$/,\n },\n s: {\n method: (value) => {\n return this._secondsToUnits(parseFloat(value));\n },\n regexp: /^(\\d+(?:\\.\\d+)?)s$/,\n },\n samples: {\n method: (value) => {\n return parseInt(value, 10) / this.context.sampleRate;\n },\n regexp: /^(\\d+)samples$/,\n },\n t: {\n method: (value) => {\n const numericValue = parseInt(value, 10);\n return this._beatsToUnits(8 / (Math.floor(numericValue) * 3));\n },\n regexp: /^(\\d+)t$/i,\n },\n tr: {\n method: (m, q, s) => {\n let total = 0;\n if (m && m !== \"0\") {\n total += this._beatsToUnits(this._getTimeSignature() * parseFloat(m));\n }\n if (q && q !== \"0\") {\n total += this._beatsToUnits(parseFloat(q));\n }\n if (s && s !== \"0\") {\n total += this._beatsToUnits(parseFloat(s) / 4);\n }\n return total;\n },\n regexp: /^(\\d+(?:\\.\\d+)?):(\\d+(?:\\.\\d+)?):?(\\d+(?:\\.\\d+)?)?$/,\n },\n };\n }\n //-------------------------------------\n // \tVALUE OF\n //-------------------------------------\n /**\n * Evaluate the time value. Returns the time in seconds.\n */\n valueOf() {\n if (this._val instanceof TimeBaseClass) {\n this.fromType(this._val);\n }\n if (isUndef(this._val)) {\n return this._noArg();\n }\n else if (isString(this._val) && isUndef(this._units)) {\n for (const units in this._expressions) {\n if (this._expressions[units].regexp.test(this._val.trim())) {\n this._units = units;\n break;\n }\n }\n }\n else if (isObject(this._val)) {\n let total = 0;\n for (const typeName in this._val) {\n if (isDefined(this._val[typeName])) {\n const quantity = this._val[typeName];\n // @ts-ignore\n const time = (new this.constructor(this.context, typeName)).valueOf() * quantity;\n total += time;\n }\n }\n return total;\n }\n if (isDefined(this._units)) {\n const expr = this._expressions[this._units];\n const matching = this._val.toString().trim().match(expr.regexp);\n if (matching) {\n return expr.method.apply(this, matching.slice(1));\n }\n else {\n return expr.method.call(this, this._val);\n }\n }\n else if (isString(this._val)) {\n return parseFloat(this._val);\n }\n else {\n return this._val;\n }\n }\n //-------------------------------------\n // \tUNIT CONVERSIONS\n //-------------------------------------\n /**\n * Returns the value of a frequency in the current units\n */\n _frequencyToUnits(freq) {\n return 1 / freq;\n }\n /**\n * Return the value of the beats in the current units\n */\n _beatsToUnits(beats) {\n return (60 / this._getBpm()) * beats;\n }\n /**\n * Returns the value of a second in the current units\n */\n _secondsToUnits(seconds) {\n return seconds;\n }\n /**\n * Returns the value of a tick in the current time units\n */\n _ticksToUnits(ticks) {\n return (ticks * (this._beatsToUnits(1)) / this._getPPQ());\n }\n /**\n * With no arguments, return 'now'\n */\n _noArg() {\n return this._now();\n }\n //-------------------------------------\n // \tTEMPO CONVERSIONS\n //-------------------------------------\n /**\n * Return the bpm\n */\n _getBpm() {\n return this.context.transport.bpm.value;\n }\n /**\n * Return the timeSignature\n */\n _getTimeSignature() {\n return this.context.transport.timeSignature;\n }\n /**\n * Return the PPQ or 192 if Transport is not available\n */\n _getPPQ() {\n return this.context.transport.PPQ;\n }\n //-------------------------------------\n // \tCONVERSION INTERFACE\n //-------------------------------------\n /**\n * Coerce a time type into this units type.\n * @param type Any time type units\n */\n fromType(type) {\n this._units = undefined;\n switch (this.defaultUnits) {\n case \"s\":\n this._val = type.toSeconds();\n break;\n case \"i\":\n this._val = type.toTicks();\n break;\n case \"hz\":\n this._val = type.toFrequency();\n break;\n case \"midi\":\n this._val = type.toMidi();\n break;\n }\n return this;\n }\n /**\n * Return the value in hertz\n */\n toFrequency() {\n return 1 / this.toSeconds();\n }\n /**\n * Return the time in samples\n */\n toSamples() {\n return this.toSeconds() * this.context.sampleRate;\n }\n /**\n * Return the time in milliseconds.\n */\n toMilliseconds() {\n return this.toSeconds() * 1000;\n }\n}\n//# sourceMappingURL=TimeBase.js.map","import { getContext } from \"../Global\";\nimport { ftom } from \"./Conversions\";\nimport { TimeBaseClass } from \"./TimeBase\";\n/**\n * TimeClass is a primitive type for encoding and decoding Time values.\n * TimeClass can be passed into the parameter of any method which takes time as an argument.\n * @param val The time value.\n * @param units The units of the value.\n * @example\n * const time = Tone.Time(\"4n\"); // a quarter note\n * @category Unit\n */\nexport class TimeClass extends TimeBaseClass {\n constructor() {\n super(...arguments);\n this.name = \"TimeClass\";\n }\n _getExpressions() {\n return Object.assign(super._getExpressions(), {\n now: {\n method: (capture) => {\n return this._now() + new this.constructor(this.context, capture).valueOf();\n },\n regexp: /^\\+(.+)/,\n },\n quantize: {\n method: (capture) => {\n const quantTo = new TimeClass(this.context, capture).valueOf();\n return this._secondsToUnits(this.context.transport.nextSubdivision(quantTo));\n },\n regexp: /^@(.+)/,\n },\n });\n }\n /**\n * Quantize the time by the given subdivision. Optionally add a\n * percentage which will move the time value towards the ideal\n * quantized value by that percentage.\n * @param subdiv The subdivision to quantize to\n * @param percent Move the time value towards the quantized value by a percentage.\n * @example\n * Tone.Time(21).quantize(2); // returns 22\n * Tone.Time(0.6).quantize(\"4n\", 0.5); // returns 0.55\n */\n quantize(subdiv, percent = 1) {\n const subdivision = new this.constructor(this.context, subdiv).valueOf();\n const value = this.valueOf();\n const multiple = Math.round(value / subdivision);\n const ideal = multiple * subdivision;\n const diff = ideal - value;\n return value + diff * percent;\n }\n //-------------------------------------\n // CONVERSIONS\n //-------------------------------------\n /**\n * Convert a Time to Notation. The notation values are will be the\n * closest representation between 1m to 128th note.\n * @return {Notation}\n * @example\n * // if the Transport is at 120bpm:\n * Tone.Time(2).toNotation(); // returns \"1m\"\n */\n toNotation() {\n const time = this.toSeconds();\n const testNotations = [\"1m\"];\n for (let power = 1; power < 9; power++) {\n const subdiv = Math.pow(2, power);\n testNotations.push(subdiv + \"n.\");\n testNotations.push(subdiv + \"n\");\n testNotations.push(subdiv + \"t\");\n }\n testNotations.push(\"0\");\n // find the closets notation representation\n let closest = testNotations[0];\n let closestSeconds = new TimeClass(this.context, testNotations[0]).toSeconds();\n testNotations.forEach(notation => {\n const notationSeconds = new TimeClass(this.context, notation).toSeconds();\n if (Math.abs(notationSeconds - time) < Math.abs(closestSeconds - time)) {\n closest = notation;\n closestSeconds = notationSeconds;\n }\n });\n return closest;\n }\n /**\n * Return the time encoded as Bars:Beats:Sixteenths.\n */\n toBarsBeatsSixteenths() {\n const quarterTime = this._beatsToUnits(1);\n let quarters = this.valueOf() / quarterTime;\n quarters = parseFloat(quarters.toFixed(4));\n const measures = Math.floor(quarters / this._getTimeSignature());\n let sixteenths = (quarters % 1) * 4;\n quarters = Math.floor(quarters) % this._getTimeSignature();\n const sixteenthString = sixteenths.toString();\n if (sixteenthString.length > 3) {\n // the additional parseFloat removes insignificant trailing zeroes\n sixteenths = parseFloat(parseFloat(sixteenthString).toFixed(3));\n }\n const progress = [measures, quarters, sixteenths];\n return progress.join(\":\");\n }\n /**\n * Return the time in ticks.\n */\n toTicks() {\n const quarterTime = this._beatsToUnits(1);\n const quarters = this.valueOf() / quarterTime;\n return Math.round(quarters * this._getPPQ());\n }\n /**\n * Return the time in seconds.\n */\n toSeconds() {\n return this.valueOf();\n }\n /**\n * Return the value as a midi note.\n */\n toMidi() {\n return ftom(this.toFrequency());\n }\n _now() {\n return this.context.now();\n }\n}\n/**\n * Create a TimeClass from a time string or number. The time is computed against the\n * global Tone.Context. To use a specific context, use [[TimeClass]]\n * @param value A value which represents time\n * @param units The value's units if they can't be inferred by the value.\n * @category Unit\n * @example\n * const time = Tone.Time(\"4n\").toSeconds();\n * console.log(time);\n * @example\n * const note = Tone.Time(1).toNotation();\n * console.log(note);\n * @example\n * const freq = Tone.Time(0.5).toFrequency();\n * console.log(freq);\n */\nexport function Time(value, units) {\n return new TimeClass(getContext(), value, units);\n}\n//# sourceMappingURL=Time.js.map","import { getContext } from \"../Global\";\nimport { intervalToFrequencyRatio, mtof } from \"./Conversions\";\nimport { ftom, getA4, setA4 } from \"./Conversions\";\nimport { TimeClass } from \"./Time\";\n/**\n * Frequency is a primitive type for encoding Frequency values.\n * Eventually all time values are evaluated to hertz using the `valueOf` method.\n * @example\n * Tone.Frequency(\"C3\"); // 261\n * Tone.Frequency(38, \"midi\");\n * Tone.Frequency(\"C3\").transpose(4);\n * @category Unit\n */\nexport class FrequencyClass extends TimeClass {\n constructor() {\n super(...arguments);\n this.name = \"Frequency\";\n this.defaultUnits = \"hz\";\n }\n /**\n * The [concert tuning pitch](https://en.wikipedia.org/wiki/Concert_pitch) which is used\n * to generate all the other pitch values from notes. A4's values in Hertz.\n */\n static get A4() {\n return getA4();\n }\n static set A4(freq) {\n setA4(freq);\n }\n //-------------------------------------\n // \tAUGMENT BASE EXPRESSIONS\n //-------------------------------------\n _getExpressions() {\n return Object.assign({}, super._getExpressions(), {\n midi: {\n regexp: /^(\\d+(?:\\.\\d+)?midi)/,\n method(value) {\n if (this.defaultUnits === \"midi\") {\n return value;\n }\n else {\n return FrequencyClass.mtof(value);\n }\n },\n },\n note: {\n regexp: /^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,\n method(pitch, octave) {\n const index = noteToScaleIndex[pitch.toLowerCase()];\n const noteNumber = index + (parseInt(octave, 10) + 1) * 12;\n if (this.defaultUnits === \"midi\") {\n return noteNumber;\n }\n else {\n return FrequencyClass.mtof(noteNumber);\n }\n },\n },\n tr: {\n regexp: /^(\\d+(?:\\.\\d+)?):(\\d+(?:\\.\\d+)?):?(\\d+(?:\\.\\d+)?)?/,\n method(m, q, s) {\n let total = 1;\n if (m && m !== \"0\") {\n total *= this._beatsToUnits(this._getTimeSignature() * parseFloat(m));\n }\n if (q && q !== \"0\") {\n total *= this._beatsToUnits(parseFloat(q));\n }\n if (s && s !== \"0\") {\n total *= this._beatsToUnits(parseFloat(s) / 4);\n }\n return total;\n },\n },\n });\n }\n //-------------------------------------\n // \tEXPRESSIONS\n //-------------------------------------\n /**\n * Transposes the frequency by the given number of semitones.\n * @return A new transposed frequency\n * @example\n * Tone.Frequency(\"A4\").transpose(3); // \"C5\"\n */\n transpose(interval) {\n return new FrequencyClass(this.context, this.valueOf() * intervalToFrequencyRatio(interval));\n }\n /**\n * Takes an array of semitone intervals and returns\n * an array of frequencies transposed by those intervals.\n * @return Returns an array of Frequencies\n * @example\n * Tone.Frequency(\"A4\").harmonize([0, 3, 7]); // [\"A4\", \"C5\", \"E5\"]\n */\n harmonize(intervals) {\n return intervals.map(interval => {\n return this.transpose(interval);\n });\n }\n //-------------------------------------\n // \tUNIT CONVERSIONS\n //-------------------------------------\n /**\n * Return the value of the frequency as a MIDI note\n * @example\n * Tone.Frequency(\"C4\").toMidi(); // 60\n */\n toMidi() {\n return ftom(this.valueOf());\n }\n /**\n * Return the value of the frequency in Scientific Pitch Notation\n * @example\n * Tone.Frequency(69, \"midi\").toNote(); // \"A4\"\n */\n toNote() {\n const freq = this.toFrequency();\n const log = Math.log2(freq / FrequencyClass.A4);\n let noteNumber = Math.round(12 * log) + 57;\n const octave = Math.floor(noteNumber / 12);\n if (octave < 0) {\n noteNumber += -12 * octave;\n }\n const noteName = scaleIndexToNote[noteNumber % 12];\n return noteName + octave.toString();\n }\n /**\n * Return the duration of one cycle in seconds.\n */\n toSeconds() {\n return 1 / super.toSeconds();\n }\n /**\n * Return the duration of one cycle in ticks\n */\n toTicks() {\n const quarterTime = this._beatsToUnits(1);\n const quarters = this.valueOf() / quarterTime;\n return Math.floor(quarters * this._getPPQ());\n }\n //-------------------------------------\n // \tUNIT CONVERSIONS HELPERS\n //-------------------------------------\n /**\n * With no arguments, return 0\n */\n _noArg() {\n return 0;\n }\n /**\n * Returns the value of a frequency in the current units\n */\n _frequencyToUnits(freq) {\n return freq;\n }\n /**\n * Returns the value of a tick in the current time units\n */\n _ticksToUnits(ticks) {\n return 1 / ((ticks * 60) / (this._getBpm() * this._getPPQ()));\n }\n /**\n * Return the value of the beats in the current units\n */\n _beatsToUnits(beats) {\n return 1 / super._beatsToUnits(beats);\n }\n /**\n * Returns the value of a second in the current units\n */\n _secondsToUnits(seconds) {\n return 1 / seconds;\n }\n /**\n * Convert a MIDI note to frequency value.\n * @param midi The midi number to convert.\n * @return The corresponding frequency value\n */\n static mtof(midi) {\n return mtof(midi);\n }\n /**\n * Convert a frequency value to a MIDI note.\n * @param frequency The value to frequency value to convert.\n */\n static ftom(frequency) {\n return ftom(frequency);\n }\n}\n//-------------------------------------\n// \tFREQUENCY CONVERSIONS\n//-------------------------------------\n/**\n * Note to scale index.\n * @hidden\n */\nconst noteToScaleIndex = {\n cbb: -2, cb: -1, c: 0, \"c#\": 1, cx: 2,\n dbb: 0, db: 1, d: 2, \"d#\": 3, dx: 4,\n ebb: 2, eb: 3, e: 4, \"e#\": 5, ex: 6,\n fbb: 3, fb: 4, f: 5, \"f#\": 6, fx: 7,\n gbb: 5, gb: 6, g: 7, \"g#\": 8, gx: 9,\n abb: 7, ab: 8, a: 9, \"a#\": 10, ax: 11,\n bbb: 9, bb: 10, b: 11, \"b#\": 12, bx: 13,\n};\n/**\n * scale index to note (sharps)\n * @hidden\n */\nconst scaleIndexToNote = [\"C\", \"C#\", \"D\", \"D#\", \"E\", \"F\", \"F#\", \"G\", \"G#\", \"A\", \"A#\", \"B\"];\n/**\n * Convert a value into a FrequencyClass object.\n * @category Unit\n * @example\n * const midi = Tone.Frequency(\"C3\").toMidi();\n * console.log(midi);\n * @example\n * const hertz = Tone.Frequency(38, \"midi\").toFrequency();\n * console.log(hertz);\n */\nexport function Frequency(value, units) {\n return new FrequencyClass(getContext(), value, units);\n}\n//# sourceMappingURL=Frequency.js.map","import { getContext } from \"../Global\";\nimport { TimeClass } from \"./Time\";\n/**\n * TransportTime is a the time along the Transport's\n * timeline. It is similar to Tone.Time, but instead of evaluating\n * against the AudioContext's clock, it is evaluated against\n * the Transport's position. See [TransportTime wiki](https://github.com/Tonejs/Tone.js/wiki/TransportTime).\n * @category Unit\n */\nexport class TransportTimeClass extends TimeClass {\n constructor() {\n super(...arguments);\n this.name = \"TransportTime\";\n }\n /**\n * Return the current time in whichever context is relevant\n */\n _now() {\n return this.context.transport.seconds;\n }\n}\n/**\n * TransportTime is a the time along the Transport's\n * timeline. It is similar to [[Time]], but instead of evaluating\n * against the AudioContext's clock, it is evaluated against\n * the Transport's position. See [TransportTime wiki](https://github.com/Tonejs/Tone.js/wiki/TransportTime).\n * @category Unit\n */\nexport function TransportTime(value, units) {\n return new TransportTimeClass(getContext(), value, units);\n}\n//# sourceMappingURL=TransportTime.js.map","import { getContext } from \"../Global\";\nimport { Tone } from \"../Tone\";\nimport { FrequencyClass } from \"../type/Frequency\";\nimport { TimeClass } from \"../type/Time\";\nimport { TransportTimeClass } from \"../type/TransportTime\";\nimport { getDefaultsFromInstance, optionsFromArguments } from \"../util/Defaults\";\nimport { isArray, isBoolean, isDefined, isNumber, isString, isUndef } from \"../util/TypeCheck\";\n/**\n * The Base class for all nodes that have an AudioContext.\n */\nexport class ToneWithContext extends Tone {\n constructor() {\n super();\n const options = optionsFromArguments(ToneWithContext.getDefaults(), arguments, [\"context\"]);\n if (this.defaultContext) {\n this.context = this.defaultContext;\n }\n else {\n this.context = options.context;\n }\n }\n static getDefaults() {\n return {\n context: getContext(),\n };\n }\n /**\n * Return the current time of the Context clock plus the lookAhead.\n * @example\n * setInterval(() => {\n * \tconsole.log(Tone.now());\n * }, 100);\n */\n now() {\n return this.context.currentTime + this.context.lookAhead;\n }\n /**\n * Return the current time of the Context clock without any lookAhead.\n * @example\n * setInterval(() => {\n * \tconsole.log(Tone.immediate());\n * }, 100);\n */\n immediate() {\n return this.context.currentTime;\n }\n /**\n * The duration in seconds of one sample.\n * @example\n * console.log(Tone.Transport.sampleTime);\n */\n get sampleTime() {\n return 1 / this.context.sampleRate;\n }\n /**\n * The number of seconds of 1 processing block (128 samples)\n * @example\n * console.log(Tone.Destination.blockTime);\n */\n get blockTime() {\n return 128 / this.context.sampleRate;\n }\n /**\n * Convert the incoming time to seconds.\n * This is calculated against the current [[Tone.Transport]] bpm\n * @example\n * const gain = new Tone.Gain();\n * setInterval(() => console.log(gain.toSeconds(\"4n\")), 100);\n * // ramp the tempo to 60 bpm over 30 seconds\n * Tone.getTransport().bpm.rampTo(60, 30);\n */\n toSeconds(time) {\n return new TimeClass(this.context, time).toSeconds();\n }\n /**\n * Convert the input to a frequency number\n * @example\n * const gain = new Tone.Gain();\n * console.log(gain.toFrequency(\"4n\"));\n */\n toFrequency(freq) {\n return new FrequencyClass(this.context, freq).toFrequency();\n }\n /**\n * Convert the input time into ticks\n * @example\n * const gain = new Tone.Gain();\n * console.log(gain.toTicks(\"4n\"));\n */\n toTicks(time) {\n return new TransportTimeClass(this.context, time).toTicks();\n }\n //-------------------------------------\n // \tGET/SET\n //-------------------------------------\n /**\n * Get a subset of the properties which are in the partial props\n */\n _getPartialProperties(props) {\n const options = this.get();\n // remove attributes from the prop that are not in the partial\n Object.keys(options).forEach(name => {\n if (isUndef(props[name])) {\n delete options[name];\n }\n });\n return options;\n }\n /**\n * Get the object's attributes.\n * @example\n * const osc = new Tone.Oscillator();\n * console.log(osc.get());\n */\n get() {\n const defaults = getDefaultsFromInstance(this);\n Object.keys(defaults).forEach(attribute => {\n if (Reflect.has(this, attribute)) {\n const member = this[attribute];\n if (isDefined(member) && isDefined(member.value) && isDefined(member.setValueAtTime)) {\n defaults[attribute] = member.value;\n }\n else if (member instanceof ToneWithContext) {\n defaults[attribute] = member._getPartialProperties(defaults[attribute]);\n // otherwise make sure it's a serializable type\n }\n else if (isArray(member) || isNumber(member) || isString(member) || isBoolean(member)) {\n defaults[attribute] = member;\n }\n else {\n // remove all undefined and unserializable attributes\n delete defaults[attribute];\n }\n }\n });\n return defaults;\n }\n /**\n * Set multiple properties at once with an object.\n * @example\n * const filter = new Tone.Filter().toDestination();\n * // set values using an object\n * filter.set({\n * \tfrequency: \"C6\",\n * \ttype: \"highpass\"\n * });\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/Analogsynth_octaves_highmid.mp3\").connect(filter);\n * player.autostart = true;\n */\n set(props) {\n Object.keys(props).forEach(attribute => {\n if (Reflect.has(this, attribute) && isDefined(this[attribute])) {\n if (this[attribute] && isDefined(this[attribute].value) && isDefined(this[attribute].setValueAtTime)) {\n // small optimization\n if (this[attribute].value !== props[attribute]) {\n this[attribute].value = props[attribute];\n }\n }\n else if (this[attribute] instanceof ToneWithContext) {\n this[attribute].set(props[attribute]);\n }\n else {\n this[attribute] = props[attribute];\n }\n }\n });\n return this;\n }\n}\n//# sourceMappingURL=ToneWithContext.js.map","import { Timeline } from \"./Timeline\";\nimport { assertRange } from \"./Debug\";\n/**\n * A Timeline State. Provides the methods: `setStateAtTime(\"state\", time)` and `getValueAtTime(time)`\n * @param initial The initial state of the StateTimeline. Defaults to `undefined`\n */\nexport class StateTimeline extends Timeline {\n constructor(initial = \"stopped\") {\n super();\n this.name = \"StateTimeline\";\n this._initial = initial;\n this.setStateAtTime(this._initial, 0);\n }\n /**\n * Returns the scheduled state scheduled before or at\n * the given time.\n * @param time The time to query.\n * @return The name of the state input in setStateAtTime.\n */\n getValueAtTime(time) {\n const event = this.get(time);\n if (event !== null) {\n return event.state;\n }\n else {\n return this._initial;\n }\n }\n /**\n * Add a state to the timeline.\n * @param state The name of the state to set.\n * @param time The time to query.\n * @param options Any additional options that are needed in the timeline.\n */\n setStateAtTime(state, time, options) {\n assertRange(time, 0);\n this.add(Object.assign({}, options, {\n state,\n time,\n }));\n return this;\n }\n /**\n * Return the event before the time with the given state\n * @param state The state to look for\n * @param time When to check before\n * @return The event with the given state before the time\n */\n getLastState(state, time) {\n // time = this.toSeconds(time);\n const index = this._search(time);\n for (let i = index; i >= 0; i--) {\n const event = this._timeline[i];\n if (event.state === state) {\n return event;\n }\n }\n }\n /**\n * Return the event after the time with the given state\n * @param state The state to look for\n * @param time When to check from\n * @return The event with the given state after the time\n */\n getNextState(state, time) {\n // time = this.toSeconds(time);\n const index = this._search(time);\n if (index !== -1) {\n for (let i = index; i < this._timeline.length; i++) {\n const event = this._timeline[i];\n if (event.state === state) {\n return event;\n }\n }\n }\n }\n}\n//# sourceMappingURL=StateTimeline.js.map","import { dbToGain, gainToDb } from \"../type/Conversions\";\nimport { isAudioParam } from \"../util/AdvancedTypeCheck\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { Timeline } from \"../util/Timeline\";\nimport { isDefined } from \"../util/TypeCheck\";\nimport { ToneWithContext } from \"./ToneWithContext\";\nimport { EQ } from \"../util/Math\";\nimport { assert, assertRange } from \"../util/Debug\";\n/**\n * Param wraps the native Web Audio's AudioParam to provide\n * additional unit conversion functionality. It also\n * serves as a base-class for classes which have a single,\n * automatable parameter.\n * @category Core\n */\nexport class Param extends ToneWithContext {\n constructor() {\n super(optionsFromArguments(Param.getDefaults(), arguments, [\"param\", \"units\", \"convert\"]));\n this.name = \"Param\";\n this.overridden = false;\n /**\n * The minimum output value\n */\n this._minOutput = 1e-7;\n const options = optionsFromArguments(Param.getDefaults(), arguments, [\"param\", \"units\", \"convert\"]);\n assert(isDefined(options.param) &&\n (isAudioParam(options.param) || options.param instanceof Param), \"param must be an AudioParam\");\n while (!isAudioParam(options.param)) {\n options.param = options.param._param;\n }\n this._swappable = isDefined(options.swappable) ? options.swappable : false;\n if (this._swappable) {\n this.input = this.context.createGain();\n // initialize\n this._param = options.param;\n this.input.connect(this._param);\n }\n else {\n this._param = this.input = options.param;\n }\n this._events = new Timeline(1000);\n this._initialValue = this._param.defaultValue;\n this.units = options.units;\n this.convert = options.convert;\n this._minValue = options.minValue;\n this._maxValue = options.maxValue;\n // if the value is defined, set it immediately\n if (isDefined(options.value) && options.value !== this._toType(this._initialValue)) {\n this.setValueAtTime(options.value, 0);\n }\n }\n static getDefaults() {\n return Object.assign(ToneWithContext.getDefaults(), {\n convert: true,\n units: \"number\",\n });\n }\n get value() {\n const now = this.now();\n return this.getValueAtTime(now);\n }\n set value(value) {\n this.cancelScheduledValues(this.now());\n this.setValueAtTime(value, this.now());\n }\n get minValue() {\n // if it's not the default minValue, return it\n if (isDefined(this._minValue)) {\n return this._minValue;\n }\n else if (this.units === \"time\" || this.units === \"frequency\" ||\n this.units === \"normalRange\" || this.units === \"positive\" ||\n this.units === \"transportTime\" || this.units === \"ticks\" ||\n this.units === \"bpm\" || this.units === \"hertz\" || this.units === \"samples\") {\n return 0;\n }\n else if (this.units === \"audioRange\") {\n return -1;\n }\n else if (this.units === \"decibels\") {\n return -Infinity;\n }\n else {\n return this._param.minValue;\n }\n }\n get maxValue() {\n if (isDefined(this._maxValue)) {\n return this._maxValue;\n }\n else if (this.units === \"normalRange\" ||\n this.units === \"audioRange\") {\n return 1;\n }\n else {\n return this._param.maxValue;\n }\n }\n /**\n * Type guard based on the unit name\n */\n _is(arg, type) {\n return this.units === type;\n }\n /**\n * Make sure the value is always in the defined range\n */\n _assertRange(value) {\n if (isDefined(this.maxValue) && isDefined(this.minValue)) {\n assertRange(value, this._fromType(this.minValue), this._fromType(this.maxValue));\n }\n return value;\n }\n /**\n * Convert the given value from the type specified by Param.units\n * into the destination value (such as Gain or Frequency).\n */\n _fromType(val) {\n if (this.convert && !this.overridden) {\n if (this._is(val, \"time\")) {\n return this.toSeconds(val);\n }\n else if (this._is(val, \"decibels\")) {\n return dbToGain(val);\n }\n else if (this._is(val, \"frequency\")) {\n return this.toFrequency(val);\n }\n else {\n return val;\n }\n }\n else if (this.overridden) {\n // if it's overridden, should only schedule 0s\n return 0;\n }\n else {\n return val;\n }\n }\n /**\n * Convert the parameters value into the units specified by Param.units.\n */\n _toType(val) {\n if (this.convert && this.units === \"decibels\") {\n return gainToDb(val);\n }\n else {\n return val;\n }\n }\n //-------------------------------------\n // ABSTRACT PARAM INTERFACE\n // all docs are generated from ParamInterface.ts\n //-------------------------------------\n setValueAtTime(value, time) {\n const computedTime = this.toSeconds(time);\n const numericValue = this._fromType(value);\n assert(isFinite(numericValue) && isFinite(computedTime), `Invalid argument(s) to setValueAtTime: ${JSON.stringify(value)}, ${JSON.stringify(time)}`);\n this._assertRange(numericValue);\n this.log(this.units, \"setValueAtTime\", value, computedTime);\n this._events.add({\n time: computedTime,\n type: \"setValueAtTime\",\n value: numericValue,\n });\n this._param.setValueAtTime(numericValue, computedTime);\n return this;\n }\n getValueAtTime(time) {\n const computedTime = Math.max(this.toSeconds(time), 0);\n const after = this._events.getAfter(computedTime);\n const before = this._events.get(computedTime);\n let value = this._initialValue;\n // if it was set by\n if (before === null) {\n value = this._initialValue;\n }\n else if (before.type === \"setTargetAtTime\" && (after === null || after.type === \"setValueAtTime\")) {\n const previous = this._events.getBefore(before.time);\n let previousVal;\n if (previous === null) {\n previousVal = this._initialValue;\n }\n else {\n previousVal = previous.value;\n }\n if (before.type === \"setTargetAtTime\") {\n value = this._exponentialApproach(before.time, previousVal, before.value, before.constant, computedTime);\n }\n }\n else if (after === null) {\n value = before.value;\n }\n else if (after.type === \"linearRampToValueAtTime\" || after.type === \"exponentialRampToValueAtTime\") {\n let beforeValue = before.value;\n if (before.type === \"setTargetAtTime\") {\n const previous = this._events.getBefore(before.time);\n if (previous === null) {\n beforeValue = this._initialValue;\n }\n else {\n beforeValue = previous.value;\n }\n }\n if (after.type === \"linearRampToValueAtTime\") {\n value = this._linearInterpolate(before.time, beforeValue, after.time, after.value, computedTime);\n }\n else {\n value = this._exponentialInterpolate(before.time, beforeValue, after.time, after.value, computedTime);\n }\n }\n else {\n value = before.value;\n }\n return this._toType(value);\n }\n setRampPoint(time) {\n time = this.toSeconds(time);\n let currentVal = this.getValueAtTime(time);\n this.cancelAndHoldAtTime(time);\n if (this._fromType(currentVal) === 0) {\n currentVal = this._toType(this._minOutput);\n }\n this.setValueAtTime(currentVal, time);\n return this;\n }\n linearRampToValueAtTime(value, endTime) {\n const numericValue = this._fromType(value);\n const computedTime = this.toSeconds(endTime);\n assert(isFinite(numericValue) && isFinite(computedTime), `Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(value)}, ${JSON.stringify(endTime)}`);\n this._assertRange(numericValue);\n this._events.add({\n time: computedTime,\n type: \"linearRampToValueAtTime\",\n value: numericValue,\n });\n this.log(this.units, \"linearRampToValueAtTime\", value, computedTime);\n this._param.linearRampToValueAtTime(numericValue, computedTime);\n return this;\n }\n exponentialRampToValueAtTime(value, endTime) {\n let numericValue = this._fromType(value);\n // the value can't be 0\n numericValue = EQ(numericValue, 0) ? this._minOutput : numericValue;\n this._assertRange(numericValue);\n const computedTime = this.toSeconds(endTime);\n assert(isFinite(numericValue) && isFinite(computedTime), `Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(value)}, ${JSON.stringify(endTime)}`);\n // store the event\n this._events.add({\n time: computedTime,\n type: \"exponentialRampToValueAtTime\",\n value: numericValue,\n });\n this.log(this.units, \"exponentialRampToValueAtTime\", value, computedTime);\n this._param.exponentialRampToValueAtTime(numericValue, computedTime);\n return this;\n }\n exponentialRampTo(value, rampTime, startTime) {\n startTime = this.toSeconds(startTime);\n this.setRampPoint(startTime);\n this.exponentialRampToValueAtTime(value, startTime + this.toSeconds(rampTime));\n return this;\n }\n linearRampTo(value, rampTime, startTime) {\n startTime = this.toSeconds(startTime);\n this.setRampPoint(startTime);\n this.linearRampToValueAtTime(value, startTime + this.toSeconds(rampTime));\n return this;\n }\n targetRampTo(value, rampTime, startTime) {\n startTime = this.toSeconds(startTime);\n this.setRampPoint(startTime);\n this.exponentialApproachValueAtTime(value, startTime, rampTime);\n return this;\n }\n exponentialApproachValueAtTime(value, time, rampTime) {\n time = this.toSeconds(time);\n rampTime = this.toSeconds(rampTime);\n const timeConstant = Math.log(rampTime + 1) / Math.log(200);\n this.setTargetAtTime(value, time, timeConstant);\n // at 90% start a linear ramp to the final value\n this.cancelAndHoldAtTime(time + rampTime * 0.9);\n this.linearRampToValueAtTime(value, time + rampTime);\n return this;\n }\n setTargetAtTime(value, startTime, timeConstant) {\n const numericValue = this._fromType(value);\n // The value will never be able to approach without timeConstant > 0.\n assert(isFinite(timeConstant) && timeConstant > 0, \"timeConstant must be a number greater than 0\");\n const computedTime = this.toSeconds(startTime);\n this._assertRange(numericValue);\n assert(isFinite(numericValue) && isFinite(computedTime), `Invalid argument(s) to setTargetAtTime: ${JSON.stringify(value)}, ${JSON.stringify(startTime)}`);\n this._events.add({\n constant: timeConstant,\n time: computedTime,\n type: \"setTargetAtTime\",\n value: numericValue,\n });\n this.log(this.units, \"setTargetAtTime\", value, computedTime, timeConstant);\n this._param.setTargetAtTime(numericValue, computedTime, timeConstant);\n return this;\n }\n setValueCurveAtTime(values, startTime, duration, scaling = 1) {\n duration = this.toSeconds(duration);\n startTime = this.toSeconds(startTime);\n const startingValue = this._fromType(values[0]) * scaling;\n this.setValueAtTime(this._toType(startingValue), startTime);\n const segTime = duration / (values.length - 1);\n for (let i = 1; i < values.length; i++) {\n const numericValue = this._fromType(values[i]) * scaling;\n this.linearRampToValueAtTime(this._toType(numericValue), startTime + i * segTime);\n }\n return this;\n }\n cancelScheduledValues(time) {\n const computedTime = this.toSeconds(time);\n assert(isFinite(computedTime), `Invalid argument to cancelScheduledValues: ${JSON.stringify(time)}`);\n this._events.cancel(computedTime);\n this._param.cancelScheduledValues(computedTime);\n this.log(this.units, \"cancelScheduledValues\", computedTime);\n return this;\n }\n cancelAndHoldAtTime(time) {\n const computedTime = this.toSeconds(time);\n const valueAtTime = this._fromType(this.getValueAtTime(computedTime));\n // remove the schedule events\n assert(isFinite(computedTime), `Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(time)}`);\n this.log(this.units, \"cancelAndHoldAtTime\", computedTime, \"value=\" + valueAtTime);\n // if there is an event at the given computedTime\n // and that even is not a \"set\"\n const before = this._events.get(computedTime);\n const after = this._events.getAfter(computedTime);\n if (before && EQ(before.time, computedTime)) {\n // remove everything after\n if (after) {\n this._param.cancelScheduledValues(after.time);\n this._events.cancel(after.time);\n }\n else {\n this._param.cancelAndHoldAtTime(computedTime);\n this._events.cancel(computedTime + this.sampleTime);\n }\n }\n else if (after) {\n this._param.cancelScheduledValues(after.time);\n // cancel the next event(s)\n this._events.cancel(after.time);\n if (after.type === \"linearRampToValueAtTime\") {\n this.linearRampToValueAtTime(this._toType(valueAtTime), computedTime);\n }\n else if (after.type === \"exponentialRampToValueAtTime\") {\n this.exponentialRampToValueAtTime(this._toType(valueAtTime), computedTime);\n }\n }\n // set the value at the given time\n this._events.add({\n time: computedTime,\n type: \"setValueAtTime\",\n value: valueAtTime,\n });\n this._param.setValueAtTime(valueAtTime, computedTime);\n return this;\n }\n rampTo(value, rampTime = 0.1, startTime) {\n if (this.units === \"frequency\" || this.units === \"bpm\" || this.units === \"decibels\") {\n this.exponentialRampTo(value, rampTime, startTime);\n }\n else {\n this.linearRampTo(value, rampTime, startTime);\n }\n return this;\n }\n /**\n * Apply all of the previously scheduled events to the passed in Param or AudioParam.\n * The applied values will start at the context's current time and schedule\n * all of the events which are scheduled on this Param onto the passed in param.\n */\n apply(param) {\n const now = this.context.currentTime;\n // set the param's value at the current time and schedule everything else\n param.setValueAtTime(this.getValueAtTime(now), now);\n // if the previous event was a curve, then set the rest of it\n const previousEvent = this._events.get(now);\n if (previousEvent && previousEvent.type === \"setTargetAtTime\") {\n // approx it until the next event with linear ramps\n const nextEvent = this._events.getAfter(previousEvent.time);\n // or for 2 seconds if there is no event\n const endTime = nextEvent ? nextEvent.time : now + 2;\n const subdivisions = (endTime - now) / 10;\n for (let i = now; i < endTime; i += subdivisions) {\n param.linearRampToValueAtTime(this.getValueAtTime(i), i);\n }\n }\n this._events.forEachAfter(this.context.currentTime, event => {\n if (event.type === \"cancelScheduledValues\") {\n param.cancelScheduledValues(event.time);\n }\n else if (event.type === \"setTargetAtTime\") {\n param.setTargetAtTime(event.value, event.time, event.constant);\n }\n else {\n param[event.type](event.value, event.time);\n }\n });\n return this;\n }\n /**\n * Replace the Param's internal AudioParam. Will apply scheduled curves\n * onto the parameter and replace the connections.\n */\n setParam(param) {\n assert(this._swappable, \"The Param must be assigned as 'swappable' in the constructor\");\n const input = this.input;\n input.disconnect(this._param);\n this.apply(param);\n this._param = param;\n input.connect(this._param);\n return this;\n }\n dispose() {\n super.dispose();\n this._events.dispose();\n return this;\n }\n get defaultValue() {\n return this._toType(this._param.defaultValue);\n }\n //-------------------------------------\n // \tAUTOMATION CURVE CALCULATIONS\n // \tMIT License, copyright (c) 2014 Jordan Santell\n //-------------------------------------\n // Calculates the the value along the curve produced by setTargetAtTime\n _exponentialApproach(t0, v0, v1, timeConstant, t) {\n return v1 + (v0 - v1) * Math.exp(-(t - t0) / timeConstant);\n }\n // Calculates the the value along the curve produced by linearRampToValueAtTime\n _linearInterpolate(t0, v0, t1, v1, t) {\n return v0 + (v1 - v0) * ((t - t0) / (t1 - t0));\n }\n // Calculates the the value along the curve produced by exponentialRampToValueAtTime\n _exponentialInterpolate(t0, v0, t1, v1, t) {\n return v0 * Math.pow(v1 / v0, (t - t0) / (t1 - t0));\n }\n}\n//# sourceMappingURL=Param.js.map","import { isAudioNode, isAudioParam } from \"../util/AdvancedTypeCheck\";\nimport { isDefined } from \"../util/TypeCheck\";\nimport { Param } from \"./Param\";\nimport { ToneWithContext } from \"./ToneWithContext\";\nimport { assert, warn } from \"../util/Debug\";\n/**\n * ToneAudioNode is the base class for classes which process audio.\n */\nexport class ToneAudioNode extends ToneWithContext {\n constructor() {\n super(...arguments);\n /**\n * The name of the class\n */\n this.name = \"ToneAudioNode\";\n /**\n * List all of the node that must be set to match the ChannelProperties\n */\n this._internalChannels = [];\n }\n /**\n * The number of inputs feeding into the AudioNode.\n * For source nodes, this will be 0.\n * @example\n * const node = new Tone.Gain();\n * console.log(node.numberOfInputs);\n */\n get numberOfInputs() {\n if (isDefined(this.input)) {\n if (isAudioParam(this.input) || this.input instanceof Param) {\n return 1;\n }\n else {\n return this.input.numberOfInputs;\n }\n }\n else {\n return 0;\n }\n }\n /**\n * The number of outputs of the AudioNode.\n * @example\n * const node = new Tone.Gain();\n * console.log(node.numberOfOutputs);\n */\n get numberOfOutputs() {\n if (isDefined(this.output)) {\n return this.output.numberOfOutputs;\n }\n else {\n return 0;\n }\n }\n //-------------------------------------\n // AUDIO PROPERTIES\n //-------------------------------------\n /**\n * Used to decide which nodes to get/set properties on\n */\n _isAudioNode(node) {\n return isDefined(node) && (node instanceof ToneAudioNode || isAudioNode(node));\n }\n /**\n * Get all of the audio nodes (either internal or input/output) which together\n * make up how the class node responds to channel input/output\n */\n _getInternalNodes() {\n const nodeList = this._internalChannels.slice(0);\n if (this._isAudioNode(this.input)) {\n nodeList.push(this.input);\n }\n if (this._isAudioNode(this.output)) {\n if (this.input !== this.output) {\n nodeList.push(this.output);\n }\n }\n return nodeList;\n }\n /**\n * Set the audio options for this node such as channelInterpretation\n * channelCount, etc.\n * @param options\n */\n _setChannelProperties(options) {\n const nodeList = this._getInternalNodes();\n nodeList.forEach(node => {\n node.channelCount = options.channelCount;\n node.channelCountMode = options.channelCountMode;\n node.channelInterpretation = options.channelInterpretation;\n });\n }\n /**\n * Get the current audio options for this node such as channelInterpretation\n * channelCount, etc.\n */\n _getChannelProperties() {\n const nodeList = this._getInternalNodes();\n assert(nodeList.length > 0, \"ToneAudioNode does not have any internal nodes\");\n // use the first node to get properties\n // they should all be the same\n const node = nodeList[0];\n return {\n channelCount: node.channelCount,\n channelCountMode: node.channelCountMode,\n channelInterpretation: node.channelInterpretation,\n };\n }\n /**\n * channelCount is the number of channels used when up-mixing and down-mixing\n * connections to any inputs to the node. The default value is 2 except for\n * specific nodes where its value is specially determined.\n */\n get channelCount() {\n return this._getChannelProperties().channelCount;\n }\n set channelCount(channelCount) {\n const props = this._getChannelProperties();\n // merge it with the other properties\n this._setChannelProperties(Object.assign(props, { channelCount }));\n }\n /**\n * channelCountMode determines how channels will be counted when up-mixing and\n * down-mixing connections to any inputs to the node.\n * The default value is \"max\". This attribute has no effect for nodes with no inputs.\n * * \"max\" - computedNumberOfChannels is the maximum of the number of channels of all connections to an input. In this mode channelCount is ignored.\n * * \"clamped-max\" - computedNumberOfChannels is determined as for \"max\" and then clamped to a maximum value of the given channelCount.\n * * \"explicit\" - computedNumberOfChannels is the exact value as specified by the channelCount.\n */\n get channelCountMode() {\n return this._getChannelProperties().channelCountMode;\n }\n set channelCountMode(channelCountMode) {\n const props = this._getChannelProperties();\n // merge it with the other properties\n this._setChannelProperties(Object.assign(props, { channelCountMode }));\n }\n /**\n * channelInterpretation determines how individual channels will be treated\n * when up-mixing and down-mixing connections to any inputs to the node.\n * The default value is \"speakers\".\n */\n get channelInterpretation() {\n return this._getChannelProperties().channelInterpretation;\n }\n set channelInterpretation(channelInterpretation) {\n const props = this._getChannelProperties();\n // merge it with the other properties\n this._setChannelProperties(Object.assign(props, { channelInterpretation }));\n }\n //-------------------------------------\n // CONNECTIONS\n //-------------------------------------\n /**\n * connect the output of a ToneAudioNode to an AudioParam, AudioNode, or ToneAudioNode\n * @param destination The output to connect to\n * @param outputNum The output to connect from\n * @param inputNum The input to connect to\n */\n connect(destination, outputNum = 0, inputNum = 0) {\n connect(this, destination, outputNum, inputNum);\n return this;\n }\n /**\n * Connect the output to the context's destination node.\n * @example\n * const osc = new Tone.Oscillator(\"C2\").start();\n * osc.toDestination();\n */\n toDestination() {\n this.connect(this.context.destination);\n return this;\n }\n /**\n * Connect the output to the context's destination node.\n * See [[toDestination]]\n * @deprecated\n */\n toMaster() {\n warn(\"toMaster() has been renamed toDestination()\");\n return this.toDestination();\n }\n /**\n * disconnect the output\n */\n disconnect(destination, outputNum = 0, inputNum = 0) {\n disconnect(this, destination, outputNum, inputNum);\n return this;\n }\n /**\n * Connect the output of this node to the rest of the nodes in series.\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/drum-samples/handdrum-loop.mp3\");\n * player.autostart = true;\n * const filter = new Tone.AutoFilter(4).start();\n * const distortion = new Tone.Distortion(0.5);\n * // connect the player to the filter, distortion and then to the master output\n * player.chain(filter, distortion, Tone.Destination);\n */\n chain(...nodes) {\n connectSeries(this, ...nodes);\n return this;\n }\n /**\n * connect the output of this node to the rest of the nodes in parallel.\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/drum-samples/conga-rhythm.mp3\");\n * player.autostart = true;\n * const pitchShift = new Tone.PitchShift(4).toDestination();\n * const filter = new Tone.Filter(\"G5\").toDestination();\n * // connect a node to the pitch shift and filter in parallel\n * player.fan(pitchShift, filter);\n */\n fan(...nodes) {\n nodes.forEach(node => this.connect(node));\n return this;\n }\n /**\n * Dispose and disconnect\n */\n dispose() {\n super.dispose();\n if (isDefined(this.input)) {\n if (this.input instanceof ToneAudioNode) {\n this.input.dispose();\n }\n else if (isAudioNode(this.input)) {\n this.input.disconnect();\n }\n }\n if (isDefined(this.output)) {\n if (this.output instanceof ToneAudioNode) {\n this.output.dispose();\n }\n else if (isAudioNode(this.output)) {\n this.output.disconnect();\n }\n }\n this._internalChannels = [];\n return this;\n }\n}\n//-------------------------------------\n// CONNECTIONS\n//-------------------------------------\n/**\n * connect together all of the arguments in series\n * @param nodes\n */\nexport function connectSeries(...nodes) {\n const first = nodes.shift();\n nodes.reduce((prev, current) => {\n if (prev instanceof ToneAudioNode) {\n prev.connect(current);\n }\n else if (isAudioNode(prev)) {\n connect(prev, current);\n }\n return current;\n }, first);\n}\n/**\n * Connect two nodes together so that signal flows from the\n * first node to the second. Optionally specify the input and output channels.\n * @param srcNode The source node\n * @param dstNode The destination node\n * @param outputNumber The output channel of the srcNode\n * @param inputNumber The input channel of the dstNode\n */\nexport function connect(srcNode, dstNode, outputNumber = 0, inputNumber = 0) {\n assert(isDefined(srcNode), \"Cannot connect from undefined node\");\n assert(isDefined(dstNode), \"Cannot connect to undefined node\");\n if (dstNode instanceof ToneAudioNode || isAudioNode(dstNode)) {\n assert(dstNode.numberOfInputs > 0, \"Cannot connect to node with no inputs\");\n }\n assert(srcNode.numberOfOutputs > 0, \"Cannot connect from node with no outputs\");\n // resolve the input of the dstNode\n while ((dstNode instanceof ToneAudioNode || dstNode instanceof Param)) {\n if (isDefined(dstNode.input)) {\n dstNode = dstNode.input;\n }\n }\n while (srcNode instanceof ToneAudioNode) {\n if (isDefined(srcNode.output)) {\n srcNode = srcNode.output;\n }\n }\n // make the connection\n if (isAudioParam(dstNode)) {\n srcNode.connect(dstNode, outputNumber);\n }\n else {\n srcNode.connect(dstNode, outputNumber, inputNumber);\n }\n}\n/**\n * Disconnect a node from all nodes or optionally include a destination node and input/output channels.\n * @param srcNode The source node\n * @param dstNode The destination node\n * @param outputNumber The output channel of the srcNode\n * @param inputNumber The input channel of the dstNode\n */\nexport function disconnect(srcNode, dstNode, outputNumber = 0, inputNumber = 0) {\n // resolve the destination node\n if (isDefined(dstNode)) {\n while (dstNode instanceof ToneAudioNode) {\n dstNode = dstNode.input;\n }\n }\n // resolve the src node\n while (!(isAudioNode(srcNode))) {\n if (isDefined(srcNode.output)) {\n srcNode = srcNode.output;\n }\n }\n if (isAudioParam(dstNode)) {\n srcNode.disconnect(dstNode, outputNumber);\n }\n else if (isAudioNode(dstNode)) {\n srcNode.disconnect(dstNode, outputNumber, inputNumber);\n }\n else {\n srcNode.disconnect();\n }\n}\n//# sourceMappingURL=ToneAudioNode.js.map","import { Param } from \"../context/Param\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { readOnly } from \"../util/Interface\";\nimport { ToneAudioNode } from \"./ToneAudioNode\";\n/**\n * A thin wrapper around the Native Web Audio GainNode.\n * The GainNode is a basic building block of the Web Audio\n * API and is useful for routing audio and adjusting gains.\n * @category Core\n * @example\n * return Tone.Offline(() => {\n * \tconst gainNode = new Tone.Gain(0).toDestination();\n * \tconst osc = new Tone.Oscillator(30).connect(gainNode).start();\n * \tgainNode.gain.rampTo(1, 0.1);\n * \tgainNode.gain.rampTo(0, 0.4, 0.2);\n * }, 0.7, 1);\n */\nexport class Gain extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Gain.getDefaults(), arguments, [\"gain\", \"units\"]));\n this.name = \"Gain\";\n /**\n * The wrapped GainNode.\n */\n this._gainNode = this.context.createGain();\n // input = output\n this.input = this._gainNode;\n this.output = this._gainNode;\n const options = optionsFromArguments(Gain.getDefaults(), arguments, [\"gain\", \"units\"]);\n this.gain = new Param({\n context: this.context,\n convert: options.convert,\n param: this._gainNode.gain,\n units: options.units,\n value: options.gain,\n minValue: options.minValue,\n maxValue: options.maxValue,\n });\n readOnly(this, \"gain\");\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n convert: true,\n gain: 1,\n units: \"gain\",\n });\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this._gainNode.disconnect();\n this.gain.dispose();\n return this;\n }\n}\n//# sourceMappingURL=Gain.js.map","import { Gain } from \"../core/context/Gain\";\nimport { ToneAudioNode, } from \"../core/context/ToneAudioNode\";\nimport { noOp } from \"../core/util/Interface\";\nimport { assert } from \"../core/util/Debug\";\n/**\n * Base class for fire-and-forget nodes\n */\nexport class OneShotSource extends ToneAudioNode {\n constructor(options) {\n super(options);\n /**\n * The callback to invoke after the\n * source is done playing.\n */\n this.onended = noOp;\n /**\n * The start time\n */\n this._startTime = -1;\n /**\n * The stop time\n */\n this._stopTime = -1;\n /**\n * The id of the timeout\n */\n this._timeout = -1;\n /**\n * The public output node\n */\n this.output = new Gain({\n context: this.context,\n gain: 0,\n });\n /**\n * The output gain node.\n */\n this._gainNode = this.output;\n /**\n * Get the playback state at the given time\n */\n this.getStateAtTime = function (time) {\n const computedTime = this.toSeconds(time);\n if (this._startTime !== -1 &&\n computedTime >= this._startTime &&\n (this._stopTime === -1 || computedTime <= this._stopTime)) {\n return \"started\";\n }\n else {\n return \"stopped\";\n }\n };\n this._fadeIn = options.fadeIn;\n this._fadeOut = options.fadeOut;\n this._curve = options.curve;\n this.onended = options.onended;\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n curve: \"linear\",\n fadeIn: 0,\n fadeOut: 0,\n onended: noOp,\n });\n }\n /**\n * Start the source at the given time\n * @param time When to start the source\n */\n _startGain(time, gain = 1) {\n assert(this._startTime === -1, \"Source cannot be started more than once\");\n // apply a fade in envelope\n const fadeInTime = this.toSeconds(this._fadeIn);\n // record the start time\n this._startTime = time + fadeInTime;\n this._startTime = Math.max(this._startTime, this.context.currentTime);\n // schedule the envelope\n if (fadeInTime > 0) {\n this._gainNode.gain.setValueAtTime(0, time);\n if (this._curve === \"linear\") {\n this._gainNode.gain.linearRampToValueAtTime(gain, time + fadeInTime);\n }\n else {\n this._gainNode.gain.exponentialApproachValueAtTime(gain, time, fadeInTime);\n }\n }\n else {\n this._gainNode.gain.setValueAtTime(gain, time);\n }\n return this;\n }\n /**\n * Stop the source node at the given time.\n * @param time When to stop the source\n */\n stop(time) {\n this.log(\"stop\", time);\n this._stopGain(this.toSeconds(time));\n return this;\n }\n /**\n * Stop the source at the given time\n * @param time When to stop the source\n */\n _stopGain(time) {\n assert(this._startTime !== -1, \"'start' must be called before 'stop'\");\n // cancel the previous stop\n this.cancelStop();\n // the fadeOut time\n const fadeOutTime = this.toSeconds(this._fadeOut);\n // schedule the stop callback\n this._stopTime = this.toSeconds(time) + fadeOutTime;\n this._stopTime = Math.max(this._stopTime, this.context.currentTime);\n if (fadeOutTime > 0) {\n // start the fade out curve at the given time\n if (this._curve === \"linear\") {\n this._gainNode.gain.linearRampTo(0, fadeOutTime, time);\n }\n else {\n this._gainNode.gain.targetRampTo(0, fadeOutTime, time);\n }\n }\n else {\n // stop any ongoing ramps, and set the value to 0\n this._gainNode.gain.cancelAndHoldAtTime(time);\n this._gainNode.gain.setValueAtTime(0, time);\n }\n this.context.clearTimeout(this._timeout);\n this._timeout = this.context.setTimeout(() => {\n // allow additional time for the exponential curve to fully decay\n const additionalTail = this._curve === \"exponential\" ? fadeOutTime * 2 : 0;\n this._stopSource(this.now() + additionalTail);\n this._onended();\n }, this._stopTime - this.context.currentTime);\n return this;\n }\n /**\n * Invoke the onended callback\n */\n _onended() {\n if (this.onended !== noOp) {\n this.onended(this);\n // overwrite onended to make sure it only is called once\n this.onended = noOp;\n // dispose when it's ended to free up for garbage collection only in the online context\n if (!this.context.isOffline) {\n const disposeCallback = () => this.dispose();\n // @ts-ignore\n if (typeof window.requestIdleCallback !== \"undefined\") {\n // @ts-ignore\n window.requestIdleCallback(disposeCallback);\n }\n else {\n setTimeout(disposeCallback, 1000);\n }\n }\n }\n }\n /**\n * Get the playback state at the current time\n */\n get state() {\n return this.getStateAtTime(this.now());\n }\n /**\n * Cancel a scheduled stop event\n */\n cancelStop() {\n this.log(\"cancelStop\");\n assert(this._startTime !== -1, \"Source is not started\");\n // cancel the stop envelope\n this._gainNode.gain.cancelScheduledValues(this._startTime + this.sampleTime);\n this.context.clearTimeout(this._timeout);\n this._stopTime = -1;\n return this;\n }\n dispose() {\n super.dispose();\n this._gainNode.disconnect();\n return this;\n }\n}\n//# sourceMappingURL=OneShotSource.js.map","import { connect } from \"../core/context/ToneAudioNode\";\nimport { Param } from \"../core/context/Param\";\nimport { optionsFromArguments } from \"../core/util/Defaults\";\nimport { OneShotSource } from \"../source/OneShotSource\";\n/**\n * Wrapper around the native fire-and-forget ConstantSource.\n * Adds the ability to reschedule the stop method.\n * @category Signal\n */\nexport class ToneConstantSource extends OneShotSource {\n constructor() {\n super(optionsFromArguments(ToneConstantSource.getDefaults(), arguments, [\"offset\"]));\n this.name = \"ToneConstantSource\";\n /**\n * The signal generator\n */\n this._source = this.context.createConstantSource();\n const options = optionsFromArguments(ToneConstantSource.getDefaults(), arguments, [\"offset\"]);\n connect(this._source, this._gainNode);\n this.offset = new Param({\n context: this.context,\n convert: options.convert,\n param: this._source.offset,\n units: options.units,\n value: options.offset,\n minValue: options.minValue,\n maxValue: options.maxValue,\n });\n }\n static getDefaults() {\n return Object.assign(OneShotSource.getDefaults(), {\n convert: true,\n offset: 1,\n units: \"number\",\n });\n }\n /**\n * Start the source node at the given time\n * @param time When to start the source\n */\n start(time) {\n const computedTime = this.toSeconds(time);\n this.log(\"start\", computedTime);\n this._startGain(computedTime);\n this._source.start(computedTime);\n return this;\n }\n _stopSource(time) {\n this._source.stop(time);\n }\n dispose() {\n super.dispose();\n if (this.state === \"started\") {\n this.stop();\n }\n this._source.disconnect();\n this.offset.dispose();\n return this;\n }\n}\n//# sourceMappingURL=ToneConstantSource.js.map","import { Param } from \"../core/context/Param\";\nimport { ToneAudioNode } from \"../core/context/ToneAudioNode\";\nimport { connect } from \"../core/context/ToneAudioNode\";\nimport { isAudioParam } from \"../core/util/AdvancedTypeCheck\";\nimport { optionsFromArguments } from \"../core/util/Defaults\";\nimport { ToneConstantSource } from \"./ToneConstantSource\";\n/**\n * A signal is an audio-rate value. Tone.Signal is a core component of the library.\n * Unlike a number, Signals can be scheduled with sample-level accuracy. Tone.Signal\n * has all of the methods available to native Web Audio\n * [AudioParam](http://webaudio.github.io/web-audio-api/#the-audioparam-interface)\n * as well as additional conveniences. Read more about working with signals\n * [here](https://github.com/Tonejs/Tone.js/wiki/Signals).\n *\n * @example\n * const osc = new Tone.Oscillator().toDestination().start();\n * // a scheduleable signal which can be connected to control an AudioParam or another Signal\n * const signal = new Tone.Signal({\n * \tvalue: \"C4\",\n * \tunits: \"frequency\"\n * }).connect(osc.frequency);\n * // the scheduled ramp controls the connected signal\n * signal.rampTo(\"C2\", 4, \"+0.5\");\n * @category Signal\n */\nexport class Signal extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Signal.getDefaults(), arguments, [\"value\", \"units\"]));\n this.name = \"Signal\";\n /**\n * Indicates if the value should be overridden on connection.\n */\n this.override = true;\n const options = optionsFromArguments(Signal.getDefaults(), arguments, [\"value\", \"units\"]);\n this.output = this._constantSource = new ToneConstantSource({\n context: this.context,\n convert: options.convert,\n offset: options.value,\n units: options.units,\n minValue: options.minValue,\n maxValue: options.maxValue,\n });\n this._constantSource.start(0);\n this.input = this._param = this._constantSource.offset;\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n convert: true,\n units: \"number\",\n value: 0,\n });\n }\n connect(destination, outputNum = 0, inputNum = 0) {\n // start it only when connected to something\n connectSignal(this, destination, outputNum, inputNum);\n return this;\n }\n dispose() {\n super.dispose();\n this._param.dispose();\n this._constantSource.dispose();\n return this;\n }\n //-------------------------------------\n // ABSTRACT PARAM INTERFACE\n // just a proxy for the ConstantSourceNode's offset AudioParam\n // all docs are generated from AbstractParam.ts\n //-------------------------------------\n setValueAtTime(value, time) {\n this._param.setValueAtTime(value, time);\n return this;\n }\n getValueAtTime(time) {\n return this._param.getValueAtTime(time);\n }\n setRampPoint(time) {\n this._param.setRampPoint(time);\n return this;\n }\n linearRampToValueAtTime(value, time) {\n this._param.linearRampToValueAtTime(value, time);\n return this;\n }\n exponentialRampToValueAtTime(value, time) {\n this._param.exponentialRampToValueAtTime(value, time);\n return this;\n }\n exponentialRampTo(value, rampTime, startTime) {\n this._param.exponentialRampTo(value, rampTime, startTime);\n return this;\n }\n linearRampTo(value, rampTime, startTime) {\n this._param.linearRampTo(value, rampTime, startTime);\n return this;\n }\n targetRampTo(value, rampTime, startTime) {\n this._param.targetRampTo(value, rampTime, startTime);\n return this;\n }\n exponentialApproachValueAtTime(value, time, rampTime) {\n this._param.exponentialApproachValueAtTime(value, time, rampTime);\n return this;\n }\n setTargetAtTime(value, startTime, timeConstant) {\n this._param.setTargetAtTime(value, startTime, timeConstant);\n return this;\n }\n setValueCurveAtTime(values, startTime, duration, scaling) {\n this._param.setValueCurveAtTime(values, startTime, duration, scaling);\n return this;\n }\n cancelScheduledValues(time) {\n this._param.cancelScheduledValues(time);\n return this;\n }\n cancelAndHoldAtTime(time) {\n this._param.cancelAndHoldAtTime(time);\n return this;\n }\n rampTo(value, rampTime, startTime) {\n this._param.rampTo(value, rampTime, startTime);\n return this;\n }\n get value() {\n return this._param.value;\n }\n set value(value) {\n this._param.value = value;\n }\n get convert() {\n return this._param.convert;\n }\n set convert(convert) {\n this._param.convert = convert;\n }\n get units() {\n return this._param.units;\n }\n get overridden() {\n return this._param.overridden;\n }\n set overridden(overridden) {\n this._param.overridden = overridden;\n }\n get maxValue() {\n return this._param.maxValue;\n }\n get minValue() {\n return this._param.minValue;\n }\n /**\n * See [[Param.apply]].\n */\n apply(param) {\n this._param.apply(param);\n return this;\n }\n}\n/**\n * When connecting from a signal, it's necessary to zero out the node destination\n * node if that node is also a signal. If the destination is not 0, then the values\n * will be summed. This method insures that the output of the destination signal will\n * be the same as the source signal, making the destination signal a pass through node.\n * @param signal The output signal to connect from\n * @param destination the destination to connect to\n * @param outputNum the optional output number\n * @param inputNum the input number\n */\nexport function connectSignal(signal, destination, outputNum, inputNum) {\n if (destination instanceof Param || isAudioParam(destination) ||\n (destination instanceof Signal && destination.override)) {\n // cancel changes\n destination.cancelScheduledValues(0);\n // reset the value\n destination.setValueAtTime(0, 0);\n // mark the value as overridden\n if (destination instanceof Signal) {\n destination.overridden = true;\n }\n }\n connect(signal, destination, outputNum, inputNum);\n}\n//# sourceMappingURL=Signal.js.map","import { Param } from \"../context/Param\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { Timeline } from \"../util/Timeline\";\nimport { isUndef } from \"../util/TypeCheck\";\n/**\n * A Param class just for computing ticks. Similar to the [[Param]] class,\n * but offers conversion to BPM values as well as ability to compute tick\n * duration and elapsed ticks\n */\nexport class TickParam extends Param {\n constructor() {\n super(optionsFromArguments(TickParam.getDefaults(), arguments, [\"value\"]));\n this.name = \"TickParam\";\n /**\n * The timeline which tracks all of the automations.\n */\n this._events = new Timeline(Infinity);\n /**\n * The internal holder for the multiplier value\n */\n this._multiplier = 1;\n const options = optionsFromArguments(TickParam.getDefaults(), arguments, [\"value\"]);\n // set the multiplier\n this._multiplier = options.multiplier;\n // clear the ticks from the beginning\n this._events.cancel(0);\n // set an initial event\n this._events.add({\n ticks: 0,\n time: 0,\n type: \"setValueAtTime\",\n value: this._fromType(options.value),\n });\n this.setValueAtTime(options.value, 0);\n }\n static getDefaults() {\n return Object.assign(Param.getDefaults(), {\n multiplier: 1,\n units: \"hertz\",\n value: 1,\n });\n }\n setTargetAtTime(value, time, constant) {\n // approximate it with multiple linear ramps\n time = this.toSeconds(time);\n this.setRampPoint(time);\n const computedValue = this._fromType(value);\n // start from previously scheduled value\n const prevEvent = this._events.get(time);\n const segments = Math.round(Math.max(1 / constant, 1));\n for (let i = 0; i <= segments; i++) {\n const segTime = constant * i + time;\n const rampVal = this._exponentialApproach(prevEvent.time, prevEvent.value, computedValue, constant, segTime);\n this.linearRampToValueAtTime(this._toType(rampVal), segTime);\n }\n return this;\n }\n setValueAtTime(value, time) {\n const computedTime = this.toSeconds(time);\n super.setValueAtTime(value, time);\n const event = this._events.get(computedTime);\n const previousEvent = this._events.previousEvent(event);\n const ticksUntilTime = this._getTicksUntilEvent(previousEvent, computedTime);\n event.ticks = Math.max(ticksUntilTime, 0);\n return this;\n }\n linearRampToValueAtTime(value, time) {\n const computedTime = this.toSeconds(time);\n super.linearRampToValueAtTime(value, time);\n const event = this._events.get(computedTime);\n const previousEvent = this._events.previousEvent(event);\n const ticksUntilTime = this._getTicksUntilEvent(previousEvent, computedTime);\n event.ticks = Math.max(ticksUntilTime, 0);\n return this;\n }\n exponentialRampToValueAtTime(value, time) {\n // aproximate it with multiple linear ramps\n time = this.toSeconds(time);\n const computedVal = this._fromType(value);\n // start from previously scheduled value\n const prevEvent = this._events.get(time);\n // approx 10 segments per second\n const segments = Math.round(Math.max((time - prevEvent.time) * 10, 1));\n const segmentDur = ((time - prevEvent.time) / segments);\n for (let i = 0; i <= segments; i++) {\n const segTime = segmentDur * i + prevEvent.time;\n const rampVal = this._exponentialInterpolate(prevEvent.time, prevEvent.value, time, computedVal, segTime);\n this.linearRampToValueAtTime(this._toType(rampVal), segTime);\n }\n return this;\n }\n /**\n * Returns the tick value at the time. Takes into account\n * any automation curves scheduled on the signal.\n * @param event The time to get the tick count at\n * @return The number of ticks which have elapsed at the time given any automations.\n */\n _getTicksUntilEvent(event, time) {\n if (event === null) {\n event = {\n ticks: 0,\n time: 0,\n type: \"setValueAtTime\",\n value: 0,\n };\n }\n else if (isUndef(event.ticks)) {\n const previousEvent = this._events.previousEvent(event);\n event.ticks = this._getTicksUntilEvent(previousEvent, event.time);\n }\n const val0 = this._fromType(this.getValueAtTime(event.time));\n let val1 = this._fromType(this.getValueAtTime(time));\n // if it's right on the line, take the previous value\n const onTheLineEvent = this._events.get(time);\n if (onTheLineEvent && onTheLineEvent.time === time && onTheLineEvent.type === \"setValueAtTime\") {\n val1 = this._fromType(this.getValueAtTime(time - this.sampleTime));\n }\n return 0.5 * (time - event.time) * (val0 + val1) + event.ticks;\n }\n /**\n * Returns the tick value at the time. Takes into account\n * any automation curves scheduled on the signal.\n * @param time The time to get the tick count at\n * @return The number of ticks which have elapsed at the time given any automations.\n */\n getTicksAtTime(time) {\n const computedTime = this.toSeconds(time);\n const event = this._events.get(computedTime);\n return Math.max(this._getTicksUntilEvent(event, computedTime), 0);\n }\n /**\n * Return the elapsed time of the number of ticks from the given time\n * @param ticks The number of ticks to calculate\n * @param time The time to get the next tick from\n * @return The duration of the number of ticks from the given time in seconds\n */\n getDurationOfTicks(ticks, time) {\n const computedTime = this.toSeconds(time);\n const currentTick = this.getTicksAtTime(time);\n return this.getTimeOfTick(currentTick + ticks) - computedTime;\n }\n /**\n * Given a tick, returns the time that tick occurs at.\n * @return The time that the tick occurs.\n */\n getTimeOfTick(tick) {\n const before = this._events.get(tick, \"ticks\");\n const after = this._events.getAfter(tick, \"ticks\");\n if (before && before.ticks === tick) {\n return before.time;\n }\n else if (before && after &&\n after.type === \"linearRampToValueAtTime\" &&\n before.value !== after.value) {\n const val0 = this._fromType(this.getValueAtTime(before.time));\n const val1 = this._fromType(this.getValueAtTime(after.time));\n const delta = (val1 - val0) / (after.time - before.time);\n const k = Math.sqrt(Math.pow(val0, 2) - 2 * delta * (before.ticks - tick));\n const sol1 = (-val0 + k) / delta;\n const sol2 = (-val0 - k) / delta;\n return (sol1 > 0 ? sol1 : sol2) + before.time;\n }\n else if (before) {\n if (before.value === 0) {\n return Infinity;\n }\n else {\n return before.time + (tick - before.ticks) / before.value;\n }\n }\n else {\n return tick / this._initialValue;\n }\n }\n /**\n * Convert some number of ticks their the duration in seconds accounting\n * for any automation curves starting at the given time.\n * @param ticks The number of ticks to convert to seconds.\n * @param when When along the automation timeline to convert the ticks.\n * @return The duration in seconds of the ticks.\n */\n ticksToTime(ticks, when) {\n return this.getDurationOfTicks(ticks, when);\n }\n /**\n * The inverse of [[ticksToTime]]. Convert a duration in\n * seconds to the corresponding number of ticks accounting for any\n * automation curves starting at the given time.\n * @param duration The time interval to convert to ticks.\n * @param when When along the automation timeline to convert the ticks.\n * @return The duration in ticks.\n */\n timeToTicks(duration, when) {\n const computedTime = this.toSeconds(when);\n const computedDuration = this.toSeconds(duration);\n const startTicks = this.getTicksAtTime(computedTime);\n const endTicks = this.getTicksAtTime(computedTime + computedDuration);\n return endTicks - startTicks;\n }\n /**\n * Convert from the type when the unit value is BPM\n */\n _fromType(val) {\n if (this.units === \"bpm\" && this.multiplier) {\n return 1 / (60 / val / this.multiplier);\n }\n else {\n return super._fromType(val);\n }\n }\n /**\n * Special case of type conversion where the units === \"bpm\"\n */\n _toType(val) {\n if (this.units === \"bpm\" && this.multiplier) {\n return (val / this.multiplier) * 60;\n }\n else {\n return super._toType(val);\n }\n }\n /**\n * A multiplier on the bpm value. Useful for setting a PPQ relative to the base frequency value.\n */\n get multiplier() {\n return this._multiplier;\n }\n set multiplier(m) {\n // get and reset the current value with the new multiplier\n // might be necessary to clear all the previous values\n const currentVal = this.value;\n this._multiplier = m;\n this.cancelScheduledValues(0);\n this.setValueAtTime(currentVal, 0);\n }\n}\n//# sourceMappingURL=TickParam.js.map","import { Signal } from \"../../signal/Signal\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { TickParam } from \"./TickParam\";\n/**\n * TickSignal extends Tone.Signal, but adds the capability\n * to calculate the number of elapsed ticks. exponential and target curves\n * are approximated with multiple linear ramps.\n *\n * Thank you Bruno Dias, H. Sofia Pinto, and David M. Matos,\n * for your [WAC paper](https://smartech.gatech.edu/bitstream/handle/1853/54588/WAC2016-49.pdf)\n * describing integrating timing functions for tempo calculations.\n */\nexport class TickSignal extends Signal {\n constructor() {\n super(optionsFromArguments(TickSignal.getDefaults(), arguments, [\"value\"]));\n this.name = \"TickSignal\";\n const options = optionsFromArguments(TickSignal.getDefaults(), arguments, [\"value\"]);\n this.input = this._param = new TickParam({\n context: this.context,\n convert: options.convert,\n multiplier: options.multiplier,\n param: this._constantSource.offset,\n units: options.units,\n value: options.value,\n });\n }\n static getDefaults() {\n return Object.assign(Signal.getDefaults(), {\n multiplier: 1,\n units: \"hertz\",\n value: 1,\n });\n }\n ticksToTime(ticks, when) {\n return this._param.ticksToTime(ticks, when);\n }\n timeToTicks(duration, when) {\n return this._param.timeToTicks(duration, when);\n }\n getTimeOfTick(tick) {\n return this._param.getTimeOfTick(tick);\n }\n getDurationOfTicks(ticks, time) {\n return this._param.getDurationOfTicks(ticks, time);\n }\n getTicksAtTime(time) {\n return this._param.getTicksAtTime(time);\n }\n /**\n * A multiplier on the bpm value. Useful for setting a PPQ relative to the base frequency value.\n */\n get multiplier() {\n return this._param.multiplier;\n }\n set multiplier(m) {\n this._param.multiplier = m;\n }\n dispose() {\n super.dispose();\n this._param.dispose();\n return this;\n }\n}\n//# sourceMappingURL=TickSignal.js.map","import { ToneWithContext } from \"../context/ToneWithContext\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { readOnly } from \"../util/Interface\";\nimport { StateTimeline } from \"../util/StateTimeline\";\nimport { Timeline } from \"../util/Timeline\";\nimport { isDefined } from \"../util/TypeCheck\";\nimport { TickSignal } from \"./TickSignal\";\nimport { EQ } from \"../util/Math\";\n/**\n * Uses [TickSignal](TickSignal) to track elapsed ticks with complex automation curves.\n */\nexport class TickSource extends ToneWithContext {\n constructor() {\n super(optionsFromArguments(TickSource.getDefaults(), arguments, [\"frequency\"]));\n this.name = \"TickSource\";\n /**\n * The state timeline\n */\n this._state = new StateTimeline();\n /**\n * The offset values of the ticks\n */\n this._tickOffset = new Timeline();\n const options = optionsFromArguments(TickSource.getDefaults(), arguments, [\"frequency\"]);\n this.frequency = new TickSignal({\n context: this.context,\n units: options.units,\n value: options.frequency,\n });\n readOnly(this, \"frequency\");\n // set the initial state\n this._state.setStateAtTime(\"stopped\", 0);\n // add the first event\n this.setTicksAtTime(0, 0);\n }\n static getDefaults() {\n return Object.assign({\n frequency: 1,\n units: \"hertz\",\n }, ToneWithContext.getDefaults());\n }\n /**\n * Returns the playback state of the source, either \"started\", \"stopped\" or \"paused\".\n */\n get state() {\n return this.getStateAtTime(this.now());\n }\n /**\n * Start the clock at the given time. Optionally pass in an offset\n * of where to start the tick counter from.\n * @param time The time the clock should start\n * @param offset The number of ticks to start the source at\n */\n start(time, offset) {\n const computedTime = this.toSeconds(time);\n if (this._state.getValueAtTime(computedTime) !== \"started\") {\n this._state.setStateAtTime(\"started\", computedTime);\n if (isDefined(offset)) {\n this.setTicksAtTime(offset, computedTime);\n }\n }\n return this;\n }\n /**\n * Stop the clock. Stopping the clock resets the tick counter to 0.\n * @param time The time when the clock should stop.\n */\n stop(time) {\n const computedTime = this.toSeconds(time);\n // cancel the previous stop\n if (this._state.getValueAtTime(computedTime) === \"stopped\") {\n const event = this._state.get(computedTime);\n if (event && event.time > 0) {\n this._tickOffset.cancel(event.time);\n this._state.cancel(event.time);\n }\n }\n this._state.cancel(computedTime);\n this._state.setStateAtTime(\"stopped\", computedTime);\n this.setTicksAtTime(0, computedTime);\n return this;\n }\n /**\n * Pause the clock. Pausing does not reset the tick counter.\n * @param time The time when the clock should stop.\n */\n pause(time) {\n const computedTime = this.toSeconds(time);\n if (this._state.getValueAtTime(computedTime) === \"started\") {\n this._state.setStateAtTime(\"paused\", computedTime);\n }\n return this;\n }\n /**\n * Cancel start/stop/pause and setTickAtTime events scheduled after the given time.\n * @param time When to clear the events after\n */\n cancel(time) {\n time = this.toSeconds(time);\n this._state.cancel(time);\n this._tickOffset.cancel(time);\n return this;\n }\n /**\n * Get the elapsed ticks at the given time\n * @param time When to get the tick value\n * @return The number of ticks\n */\n getTicksAtTime(time) {\n const computedTime = this.toSeconds(time);\n const stopEvent = this._state.getLastState(\"stopped\", computedTime);\n // this event allows forEachBetween to iterate until the current time\n const tmpEvent = { state: \"paused\", time: computedTime };\n this._state.add(tmpEvent);\n // keep track of the previous offset event\n let lastState = stopEvent;\n let elapsedTicks = 0;\n // iterate through all the events since the last stop\n this._state.forEachBetween(stopEvent.time, computedTime + this.sampleTime, e => {\n let periodStartTime = lastState.time;\n // if there is an offset event in this period use that\n const offsetEvent = this._tickOffset.get(e.time);\n if (offsetEvent && offsetEvent.time >= lastState.time) {\n elapsedTicks = offsetEvent.ticks;\n periodStartTime = offsetEvent.time;\n }\n if (lastState.state === \"started\" && e.state !== \"started\") {\n elapsedTicks += this.frequency.getTicksAtTime(e.time) - this.frequency.getTicksAtTime(periodStartTime);\n }\n lastState = e;\n });\n // remove the temporary event\n this._state.remove(tmpEvent);\n // return the ticks\n return elapsedTicks;\n }\n /**\n * The number of times the callback was invoked. Starts counting at 0\n * and increments after the callback was invoked. Returns -1 when stopped.\n */\n get ticks() {\n return this.getTicksAtTime(this.now());\n }\n set ticks(t) {\n this.setTicksAtTime(t, this.now());\n }\n /**\n * The time since ticks=0 that the TickSource has been running. Accounts\n * for tempo curves\n */\n get seconds() {\n return this.getSecondsAtTime(this.now());\n }\n set seconds(s) {\n const now = this.now();\n const ticks = this.frequency.timeToTicks(s, now);\n this.setTicksAtTime(ticks, now);\n }\n /**\n * Return the elapsed seconds at the given time.\n * @param time When to get the elapsed seconds\n * @return The number of elapsed seconds\n */\n getSecondsAtTime(time) {\n time = this.toSeconds(time);\n const stopEvent = this._state.getLastState(\"stopped\", time);\n // this event allows forEachBetween to iterate until the current time\n const tmpEvent = { state: \"paused\", time };\n this._state.add(tmpEvent);\n // keep track of the previous offset event\n let lastState = stopEvent;\n let elapsedSeconds = 0;\n // iterate through all the events since the last stop\n this._state.forEachBetween(stopEvent.time, time + this.sampleTime, e => {\n let periodStartTime = lastState.time;\n // if there is an offset event in this period use that\n const offsetEvent = this._tickOffset.get(e.time);\n if (offsetEvent && offsetEvent.time >= lastState.time) {\n elapsedSeconds = offsetEvent.seconds;\n periodStartTime = offsetEvent.time;\n }\n if (lastState.state === \"started\" && e.state !== \"started\") {\n elapsedSeconds += e.time - periodStartTime;\n }\n lastState = e;\n });\n // remove the temporary event\n this._state.remove(tmpEvent);\n // return the ticks\n return elapsedSeconds;\n }\n /**\n * Set the clock's ticks at the given time.\n * @param ticks The tick value to set\n * @param time When to set the tick value\n */\n setTicksAtTime(ticks, time) {\n time = this.toSeconds(time);\n this._tickOffset.cancel(time);\n this._tickOffset.add({\n seconds: this.frequency.getDurationOfTicks(ticks, time),\n ticks,\n time,\n });\n return this;\n }\n /**\n * Returns the scheduled state at the given time.\n * @param time The time to query.\n */\n getStateAtTime(time) {\n time = this.toSeconds(time);\n return this._state.getValueAtTime(time);\n }\n /**\n * Get the time of the given tick. The second argument\n * is when to test before. Since ticks can be set (with setTicksAtTime)\n * there may be multiple times for a given tick value.\n * @param tick The tick number.\n * @param before When to measure the tick value from.\n * @return The time of the tick\n */\n getTimeOfTick(tick, before = this.now()) {\n const offset = this._tickOffset.get(before);\n const event = this._state.get(before);\n const startTime = Math.max(offset.time, event.time);\n const absoluteTicks = this.frequency.getTicksAtTime(startTime) + tick - offset.ticks;\n return this.frequency.getTimeOfTick(absoluteTicks);\n }\n /**\n * Invoke the callback event at all scheduled ticks between the\n * start time and the end time\n * @param startTime The beginning of the search range\n * @param endTime The end of the search range\n * @param callback The callback to invoke with each tick\n */\n forEachTickBetween(startTime, endTime, callback) {\n // only iterate through the sections where it is \"started\"\n let lastStateEvent = this._state.get(startTime);\n this._state.forEachBetween(startTime, endTime, event => {\n if (lastStateEvent && lastStateEvent.state === \"started\" && event.state !== \"started\") {\n this.forEachTickBetween(Math.max(lastStateEvent.time, startTime), event.time - this.sampleTime, callback);\n }\n lastStateEvent = event;\n });\n let error = null;\n if (lastStateEvent && lastStateEvent.state === \"started\") {\n const maxStartTime = Math.max(lastStateEvent.time, startTime);\n // figure out the difference between the frequency ticks and the\n const startTicks = this.frequency.getTicksAtTime(maxStartTime);\n const ticksAtStart = this.frequency.getTicksAtTime(lastStateEvent.time);\n const diff = startTicks - ticksAtStart;\n let offset = Math.ceil(diff) - diff;\n // guard against floating point issues\n offset = EQ(offset, 1) ? 0 : offset;\n let nextTickTime = this.frequency.getTimeOfTick(startTicks + offset);\n while (nextTickTime < endTime) {\n try {\n callback(nextTickTime, Math.round(this.getTicksAtTime(nextTickTime)));\n }\n catch (e) {\n error = e;\n break;\n }\n nextTickTime += this.frequency.getDurationOfTicks(1, nextTickTime);\n }\n }\n if (error) {\n throw error;\n }\n return this;\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this._state.dispose();\n this._tickOffset.dispose();\n this.frequency.dispose();\n return this;\n }\n}\n//# sourceMappingURL=TickSource.js.map","import { ToneWithContext } from \"../context/ToneWithContext\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { Emitter } from \"../util/Emitter\";\nimport { noOp, readOnly } from \"../util/Interface\";\nimport { StateTimeline } from \"../util/StateTimeline\";\nimport { TickSource } from \"./TickSource\";\nimport { assertContextRunning } from \"../util/Debug\";\n/**\n * A sample accurate clock which provides a callback at the given rate.\n * While the callback is not sample-accurate (it is still susceptible to\n * loose JS timing), the time passed in as the argument to the callback\n * is precise. For most applications, it is better to use Tone.Transport\n * instead of the Clock by itself since you can synchronize multiple callbacks.\n * @example\n * // the callback will be invoked approximately once a second\n * // and will print the time exactly once a second apart.\n * const clock = new Tone.Clock(time => {\n * \tconsole.log(time);\n * }, 1);\n * clock.start();\n * @category Core\n */\nexport class Clock extends ToneWithContext {\n constructor() {\n super(optionsFromArguments(Clock.getDefaults(), arguments, [\"callback\", \"frequency\"]));\n this.name = \"Clock\";\n /**\n * The callback function to invoke at the scheduled tick.\n */\n this.callback = noOp;\n /**\n * The last time the loop callback was invoked\n */\n this._lastUpdate = 0;\n /**\n * Keep track of the playback state\n */\n this._state = new StateTimeline(\"stopped\");\n /**\n * Context bound reference to the _loop method\n * This is necessary to remove the event in the end.\n */\n this._boundLoop = this._loop.bind(this);\n const options = optionsFromArguments(Clock.getDefaults(), arguments, [\"callback\", \"frequency\"]);\n this.callback = options.callback;\n this._tickSource = new TickSource({\n context: this.context,\n frequency: options.frequency,\n units: options.units,\n });\n this._lastUpdate = 0;\n this.frequency = this._tickSource.frequency;\n readOnly(this, \"frequency\");\n // add an initial state\n this._state.setStateAtTime(\"stopped\", 0);\n // bind a callback to the worker thread\n this.context.on(\"tick\", this._boundLoop);\n }\n static getDefaults() {\n return Object.assign(ToneWithContext.getDefaults(), {\n callback: noOp,\n frequency: 1,\n units: \"hertz\",\n });\n }\n /**\n * Returns the playback state of the source, either \"started\", \"stopped\" or \"paused\".\n */\n get state() {\n return this._state.getValueAtTime(this.now());\n }\n /**\n * Start the clock at the given time. Optionally pass in an offset\n * of where to start the tick counter from.\n * @param time The time the clock should start\n * @param offset Where the tick counter starts counting from.\n */\n start(time, offset) {\n // make sure the context is running\n assertContextRunning(this.context);\n // start the loop\n const computedTime = this.toSeconds(time);\n this.log(\"start\", computedTime);\n if (this._state.getValueAtTime(computedTime) !== \"started\") {\n this._state.setStateAtTime(\"started\", computedTime);\n this._tickSource.start(computedTime, offset);\n if (computedTime < this._lastUpdate) {\n this.emit(\"start\", computedTime, offset);\n }\n }\n return this;\n }\n /**\n * Stop the clock. Stopping the clock resets the tick counter to 0.\n * @param time The time when the clock should stop.\n * @example\n * const clock = new Tone.Clock(time => {\n * \tconsole.log(time);\n * }, 1);\n * clock.start();\n * // stop the clock after 10 seconds\n * clock.stop(\"+10\");\n */\n stop(time) {\n const computedTime = this.toSeconds(time);\n this.log(\"stop\", computedTime);\n this._state.cancel(computedTime);\n this._state.setStateAtTime(\"stopped\", computedTime);\n this._tickSource.stop(computedTime);\n if (computedTime < this._lastUpdate) {\n this.emit(\"stop\", computedTime);\n }\n return this;\n }\n /**\n * Pause the clock. Pausing does not reset the tick counter.\n * @param time The time when the clock should stop.\n */\n pause(time) {\n const computedTime = this.toSeconds(time);\n if (this._state.getValueAtTime(computedTime) === \"started\") {\n this._state.setStateAtTime(\"paused\", computedTime);\n this._tickSource.pause(computedTime);\n if (computedTime < this._lastUpdate) {\n this.emit(\"pause\", computedTime);\n }\n }\n return this;\n }\n /**\n * The number of times the callback was invoked. Starts counting at 0\n * and increments after the callback was invoked.\n */\n get ticks() {\n return Math.ceil(this.getTicksAtTime(this.now()));\n }\n set ticks(t) {\n this._tickSource.ticks = t;\n }\n /**\n * The time since ticks=0 that the Clock has been running. Accounts for tempo curves\n */\n get seconds() {\n return this._tickSource.seconds;\n }\n set seconds(s) {\n this._tickSource.seconds = s;\n }\n /**\n * Return the elapsed seconds at the given time.\n * @param time When to get the elapsed seconds\n * @return The number of elapsed seconds\n */\n getSecondsAtTime(time) {\n return this._tickSource.getSecondsAtTime(time);\n }\n /**\n * Set the clock's ticks at the given time.\n * @param ticks The tick value to set\n * @param time When to set the tick value\n */\n setTicksAtTime(ticks, time) {\n this._tickSource.setTicksAtTime(ticks, time);\n return this;\n }\n /**\n * Get the time of the given tick. The second argument\n * is when to test before. Since ticks can be set (with setTicksAtTime)\n * there may be multiple times for a given tick value.\n * @param tick The tick number.\n * @param before When to measure the tick value from.\n * @return The time of the tick\n */\n getTimeOfTick(tick, before = this.now()) {\n return this._tickSource.getTimeOfTick(tick, before);\n }\n /**\n * Get the clock's ticks at the given time.\n * @param time When to get the tick value\n * @return The tick value at the given time.\n */\n getTicksAtTime(time) {\n return this._tickSource.getTicksAtTime(time);\n }\n /**\n * Get the time of the next tick\n * @param offset The tick number.\n */\n nextTickTime(offset, when) {\n const computedTime = this.toSeconds(when);\n const currentTick = this.getTicksAtTime(computedTime);\n return this._tickSource.getTimeOfTick(currentTick + offset, computedTime);\n }\n /**\n * The scheduling loop.\n */\n _loop() {\n const startTime = this._lastUpdate;\n const endTime = this.now();\n this._lastUpdate = endTime;\n this.log(\"loop\", startTime, endTime);\n if (startTime !== endTime) {\n // the state change events\n this._state.forEachBetween(startTime, endTime, e => {\n switch (e.state) {\n case \"started\":\n const offset = this._tickSource.getTicksAtTime(e.time);\n this.emit(\"start\", e.time, offset);\n break;\n case \"stopped\":\n if (e.time !== 0) {\n this.emit(\"stop\", e.time);\n }\n break;\n case \"paused\":\n this.emit(\"pause\", e.time);\n break;\n }\n });\n // the tick callbacks\n this._tickSource.forEachTickBetween(startTime, endTime, (time, ticks) => {\n this.callback(time, ticks);\n });\n }\n }\n /**\n * Returns the scheduled state at the given time.\n * @param time The time to query.\n * @return The name of the state input in setStateAtTime.\n * @example\n * const clock = new Tone.Clock();\n * clock.start(\"+0.1\");\n * clock.getStateAtTime(\"+0.1\"); // returns \"started\"\n */\n getStateAtTime(time) {\n const computedTime = this.toSeconds(time);\n return this._state.getValueAtTime(computedTime);\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this.context.off(\"tick\", this._boundLoop);\n this._tickSource.dispose();\n this._state.dispose();\n return this;\n }\n}\nEmitter.mixin(Clock);\n//# sourceMappingURL=Clock.js.map","import { Tone } from \"../Tone\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { noOp } from \"../util/Interface\";\nimport { isString } from \"../util/TypeCheck\";\nimport { ToneAudioBuffer } from \"./ToneAudioBuffer\";\nimport { assert } from \"../util/Debug\";\n/**\n * A data structure for holding multiple buffers in a Map-like datastructure.\n *\n * @example\n * const pianoSamples = new Tone.ToneAudioBuffers({\n * \tA1: \"https://tonejs.github.io/audio/casio/A1.mp3\",\n * \tA2: \"https://tonejs.github.io/audio/casio/A2.mp3\",\n * }, () => {\n * \tconst player = new Tone.Player().toDestination();\n * \t// play one of the samples when they all load\n * \tplayer.buffer = pianoSamples.get(\"A2\");\n * \tplayer.start();\n * });\n * @example\n * // To pass in additional parameters in the second parameter\n * const buffers = new Tone.ToneAudioBuffers({\n * \t urls: {\n * \t\t A1: \"A1.mp3\",\n * \t\t A2: \"A2.mp3\",\n * \t },\n * \t onload: () => console.log(\"loaded\"),\n * \t baseUrl: \"https://tonejs.github.io/audio/casio/\"\n * });\n * @category Core\n */\nexport class ToneAudioBuffers extends Tone {\n constructor() {\n super();\n this.name = \"ToneAudioBuffers\";\n /**\n * All of the buffers\n */\n this._buffers = new Map();\n /**\n * Keep track of the number of loaded buffers\n */\n this._loadingCount = 0;\n const options = optionsFromArguments(ToneAudioBuffers.getDefaults(), arguments, [\"urls\", \"onload\", \"baseUrl\"], \"urls\");\n this.baseUrl = options.baseUrl;\n // add each one\n Object.keys(options.urls).forEach(name => {\n this._loadingCount++;\n const url = options.urls[name];\n this.add(name, url, this._bufferLoaded.bind(this, options.onload), options.onerror);\n });\n }\n static getDefaults() {\n return {\n baseUrl: \"\",\n onerror: noOp,\n onload: noOp,\n urls: {},\n };\n }\n /**\n * True if the buffers object has a buffer by that name.\n * @param name The key or index of the buffer.\n */\n has(name) {\n return this._buffers.has(name.toString());\n }\n /**\n * Get a buffer by name. If an array was loaded,\n * then use the array index.\n * @param name The key or index of the buffer.\n */\n get(name) {\n assert(this.has(name), `ToneAudioBuffers has no buffer named: ${name}`);\n return this._buffers.get(name.toString());\n }\n /**\n * A buffer was loaded. decrement the counter.\n */\n _bufferLoaded(callback) {\n this._loadingCount--;\n if (this._loadingCount === 0 && callback) {\n callback();\n }\n }\n /**\n * If the buffers are loaded or not\n */\n get loaded() {\n return Array.from(this._buffers).every(([_, buffer]) => buffer.loaded);\n }\n /**\n * Add a buffer by name and url to the Buffers\n * @param name A unique name to give the buffer\n * @param url Either the url of the bufer, or a buffer which will be added with the given name.\n * @param callback The callback to invoke when the url is loaded.\n * @param onerror Invoked if the buffer can't be loaded\n */\n add(name, url, callback = noOp, onerror = noOp) {\n if (isString(url)) {\n this._buffers.set(name.toString(), new ToneAudioBuffer(this.baseUrl + url, callback, onerror));\n }\n else {\n this._buffers.set(name.toString(), new ToneAudioBuffer(url, callback, onerror));\n }\n return this;\n }\n dispose() {\n super.dispose();\n this._buffers.forEach(buffer => buffer.dispose());\n this._buffers.clear();\n return this;\n }\n}\n//# sourceMappingURL=ToneAudioBuffers.js.map","import { getContext } from \"../Global\";\nimport { TransportTimeClass } from \"./TransportTime\";\n/**\n * Ticks is a primitive type for encoding Time values.\n * Ticks can be constructed with or without the `new` keyword. Ticks can be passed\n * into the parameter of any method which takes time as an argument.\n * @example\n * const t = Tone.Ticks(\"4n\"); // a quarter note as ticks\n * @category Unit\n */\nexport class TicksClass extends TransportTimeClass {\n constructor() {\n super(...arguments);\n this.name = \"Ticks\";\n this.defaultUnits = \"i\";\n }\n /**\n * Get the current time in the given units\n */\n _now() {\n return this.context.transport.ticks;\n }\n /**\n * Return the value of the beats in the current units\n */\n _beatsToUnits(beats) {\n return this._getPPQ() * beats;\n }\n /**\n * Returns the value of a second in the current units\n */\n _secondsToUnits(seconds) {\n return Math.floor(seconds / (60 / this._getBpm()) * this._getPPQ());\n }\n /**\n * Returns the value of a tick in the current time units\n */\n _ticksToUnits(ticks) {\n return ticks;\n }\n /**\n * Return the time in ticks\n */\n toTicks() {\n return this.valueOf();\n }\n /**\n * Return the time in seconds\n */\n toSeconds() {\n return (this.valueOf() / this._getPPQ()) * (60 / this._getBpm());\n }\n}\n/**\n * Convert a time representation to ticks\n * @category Unit\n */\nexport function Ticks(value, units) {\n return new TicksClass(getContext(), value, units);\n}\n//# sourceMappingURL=Ticks.js.map","import { ToneWithContext } from \"../context/ToneWithContext\";\nimport { Timeline } from \"./Timeline\";\nimport { onContextClose, onContextInit } from \"../context/ContextInitialization\";\n/**\n * Draw is useful for synchronizing visuals and audio events.\n * Callbacks from Tone.Transport or any of the Tone.Event classes\n * always happen _before_ the scheduled time and are not synchronized\n * to the animation frame so they are not good for triggering tightly\n * synchronized visuals and sound. Draw makes it easy to schedule\n * callbacks using the AudioContext time and uses requestAnimationFrame.\n * @example\n * Tone.Transport.schedule((time) => {\n * \t// use the time argument to schedule a callback with Draw\n * \tTone.Draw.schedule(() => {\n * \t\t// do drawing or DOM manipulation here\n * \t\tconsole.log(time);\n * \t}, time);\n * }, \"+0.5\");\n * Tone.Transport.start();\n * @category Core\n */\nexport class Draw extends ToneWithContext {\n constructor() {\n super(...arguments);\n this.name = \"Draw\";\n /**\n * The duration after which events are not invoked.\n */\n this.expiration = 0.25;\n /**\n * The amount of time before the scheduled time\n * that the callback can be invoked. Default is\n * half the time of an animation frame (0.008 seconds).\n */\n this.anticipation = 0.008;\n /**\n * All of the events.\n */\n this._events = new Timeline();\n /**\n * The draw loop\n */\n this._boundDrawLoop = this._drawLoop.bind(this);\n /**\n * The animation frame id\n */\n this._animationFrame = -1;\n }\n /**\n * Schedule a function at the given time to be invoked\n * on the nearest animation frame.\n * @param callback Callback is invoked at the given time.\n * @param time The time relative to the AudioContext time to invoke the callback.\n * @example\n * Tone.Transport.scheduleRepeat(time => {\n * \tTone.Draw.schedule(() => console.log(time), time);\n * }, 1);\n * Tone.Transport.start();\n */\n schedule(callback, time) {\n this._events.add({\n callback,\n time: this.toSeconds(time),\n });\n // start the draw loop on the first event\n if (this._events.length === 1) {\n this._animationFrame = requestAnimationFrame(this._boundDrawLoop);\n }\n return this;\n }\n /**\n * Cancel events scheduled after the given time\n * @param after Time after which scheduled events will be removed from the scheduling timeline.\n */\n cancel(after) {\n this._events.cancel(this.toSeconds(after));\n return this;\n }\n /**\n * The draw loop\n */\n _drawLoop() {\n const now = this.context.currentTime;\n while (this._events.length && this._events.peek().time - this.anticipation <= now) {\n const event = this._events.shift();\n if (event && now - event.time <= this.expiration) {\n event.callback();\n }\n }\n if (this._events.length > 0) {\n this._animationFrame = requestAnimationFrame(this._boundDrawLoop);\n }\n }\n dispose() {\n super.dispose();\n this._events.dispose();\n cancelAnimationFrame(this._animationFrame);\n return this;\n }\n}\n//-------------------------------------\n// \tINITIALIZATION\n//-------------------------------------\nonContextInit(context => {\n context.draw = new Draw({ context });\n});\nonContextClose(context => {\n context.draw.dispose();\n});\n//# sourceMappingURL=Draw.js.map","import { Tone } from \"../Tone\";\nimport { isDefined } from \"./TypeCheck\";\nimport { assert } from \"./Debug\";\n/**\n * Similar to Tone.Timeline, but all events represent\n * intervals with both \"time\" and \"duration\" times. The\n * events are placed in a tree structure optimized\n * for querying an intersection point with the timeline\n * events. Internally uses an [Interval Tree](https://en.wikipedia.org/wiki/Interval_tree)\n * to represent the data.\n */\nexport class IntervalTimeline extends Tone {\n constructor() {\n super(...arguments);\n this.name = \"IntervalTimeline\";\n /**\n * The root node of the inteval tree\n */\n this._root = null;\n /**\n * Keep track of the length of the timeline.\n */\n this._length = 0;\n }\n /**\n * The event to add to the timeline. All events must\n * have a time and duration value\n * @param event The event to add to the timeline\n */\n add(event) {\n assert(isDefined(event.time), \"Events must have a time property\");\n assert(isDefined(event.duration), \"Events must have a duration parameter\");\n event.time = event.time.valueOf();\n let node = new IntervalNode(event.time, event.time + event.duration, event);\n if (this._root === null) {\n this._root = node;\n }\n else {\n this._root.insert(node);\n }\n this._length++;\n // Restructure tree to be balanced\n while (node !== null) {\n node.updateHeight();\n node.updateMax();\n this._rebalance(node);\n node = node.parent;\n }\n return this;\n }\n /**\n * Remove an event from the timeline.\n * @param event The event to remove from the timeline\n */\n remove(event) {\n if (this._root !== null) {\n const results = [];\n this._root.search(event.time, results);\n for (const node of results) {\n if (node.event === event) {\n this._removeNode(node);\n this._length--;\n break;\n }\n }\n }\n return this;\n }\n /**\n * The number of items in the timeline.\n * @readOnly\n */\n get length() {\n return this._length;\n }\n /**\n * Remove events whose time time is after the given time\n * @param after The time to query.\n */\n cancel(after) {\n this.forEachFrom(after, event => this.remove(event));\n return this;\n }\n /**\n * Set the root node as the given node\n */\n _setRoot(node) {\n this._root = node;\n if (this._root !== null) {\n this._root.parent = null;\n }\n }\n /**\n * Replace the references to the node in the node's parent\n * with the replacement node.\n */\n _replaceNodeInParent(node, replacement) {\n if (node.parent !== null) {\n if (node.isLeftChild()) {\n node.parent.left = replacement;\n }\n else {\n node.parent.right = replacement;\n }\n this._rebalance(node.parent);\n }\n else {\n this._setRoot(replacement);\n }\n }\n /**\n * Remove the node from the tree and replace it with\n * a successor which follows the schema.\n */\n _removeNode(node) {\n if (node.left === null && node.right === null) {\n this._replaceNodeInParent(node, null);\n }\n else if (node.right === null) {\n this._replaceNodeInParent(node, node.left);\n }\n else if (node.left === null) {\n this._replaceNodeInParent(node, node.right);\n }\n else {\n const balance = node.getBalance();\n let replacement;\n let temp = null;\n if (balance > 0) {\n if (node.left.right === null) {\n replacement = node.left;\n replacement.right = node.right;\n temp = replacement;\n }\n else {\n replacement = node.left.right;\n while (replacement.right !== null) {\n replacement = replacement.right;\n }\n if (replacement.parent) {\n replacement.parent.right = replacement.left;\n temp = replacement.parent;\n replacement.left = node.left;\n replacement.right = node.right;\n }\n }\n }\n else if (node.right.left === null) {\n replacement = node.right;\n replacement.left = node.left;\n temp = replacement;\n }\n else {\n replacement = node.right.left;\n while (replacement.left !== null) {\n replacement = replacement.left;\n }\n if (replacement.parent) {\n replacement.parent.left = replacement.right;\n temp = replacement.parent;\n replacement.left = node.left;\n replacement.right = node.right;\n }\n }\n if (node.parent !== null) {\n if (node.isLeftChild()) {\n node.parent.left = replacement;\n }\n else {\n node.parent.right = replacement;\n }\n }\n else {\n this._setRoot(replacement);\n }\n if (temp) {\n this._rebalance(temp);\n }\n }\n node.dispose();\n }\n /**\n * Rotate the tree to the left\n */\n _rotateLeft(node) {\n const parent = node.parent;\n const isLeftChild = node.isLeftChild();\n // Make node.right the new root of this sub tree (instead of node)\n const pivotNode = node.right;\n if (pivotNode) {\n node.right = pivotNode.left;\n pivotNode.left = node;\n }\n if (parent !== null) {\n if (isLeftChild) {\n parent.left = pivotNode;\n }\n else {\n parent.right = pivotNode;\n }\n }\n else {\n this._setRoot(pivotNode);\n }\n }\n /**\n * Rotate the tree to the right\n */\n _rotateRight(node) {\n const parent = node.parent;\n const isLeftChild = node.isLeftChild();\n // Make node.left the new root of this sub tree (instead of node)\n const pivotNode = node.left;\n if (pivotNode) {\n node.left = pivotNode.right;\n pivotNode.right = node;\n }\n if (parent !== null) {\n if (isLeftChild) {\n parent.left = pivotNode;\n }\n else {\n parent.right = pivotNode;\n }\n }\n else {\n this._setRoot(pivotNode);\n }\n }\n /**\n * Balance the BST\n */\n _rebalance(node) {\n const balance = node.getBalance();\n if (balance > 1 && node.left) {\n if (node.left.getBalance() < 0) {\n this._rotateLeft(node.left);\n }\n else {\n this._rotateRight(node);\n }\n }\n else if (balance < -1 && node.right) {\n if (node.right.getBalance() > 0) {\n this._rotateRight(node.right);\n }\n else {\n this._rotateLeft(node);\n }\n }\n }\n /**\n * Get an event whose time and duration span the give time. Will\n * return the match whose \"time\" value is closest to the given time.\n * @return The event which spans the desired time\n */\n get(time) {\n if (this._root !== null) {\n const results = [];\n this._root.search(time, results);\n if (results.length > 0) {\n let max = results[0];\n for (let i = 1; i < results.length; i++) {\n if (results[i].low > max.low) {\n max = results[i];\n }\n }\n return max.event;\n }\n }\n return null;\n }\n /**\n * Iterate over everything in the timeline.\n * @param callback The callback to invoke with every item\n */\n forEach(callback) {\n if (this._root !== null) {\n const allNodes = [];\n this._root.traverse(node => allNodes.push(node));\n allNodes.forEach(node => {\n if (node.event) {\n callback(node.event);\n }\n });\n }\n return this;\n }\n /**\n * Iterate over everything in the array in which the given time\n * overlaps with the time and duration time of the event.\n * @param time The time to check if items are overlapping\n * @param callback The callback to invoke with every item\n */\n forEachAtTime(time, callback) {\n if (this._root !== null) {\n const results = [];\n this._root.search(time, results);\n results.forEach(node => {\n if (node.event) {\n callback(node.event);\n }\n });\n }\n return this;\n }\n /**\n * Iterate over everything in the array in which the time is greater\n * than or equal to the given time.\n * @param time The time to check if items are before\n * @param callback The callback to invoke with every item\n */\n forEachFrom(time, callback) {\n if (this._root !== null) {\n const results = [];\n this._root.searchAfter(time, results);\n results.forEach(node => {\n if (node.event) {\n callback(node.event);\n }\n });\n }\n return this;\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n if (this._root !== null) {\n this._root.traverse(node => node.dispose());\n }\n this._root = null;\n return this;\n }\n}\n//-------------------------------------\n// \tINTERVAL NODE HELPER\n//-------------------------------------\n/**\n * Represents a node in the binary search tree, with the addition\n * of a \"high\" value which keeps track of the highest value of\n * its children.\n * References:\n * https://brooknovak.wordpress.com/2013/12/07/augmented-interval-tree-in-c/\n * http://www.mif.vu.lt/~valdas/ALGORITMAI/LITERATURA/Cormen/Cormen.pdf\n * @param low\n * @param high\n */\nclass IntervalNode {\n constructor(low, high, event) {\n // the nodes to the left\n this._left = null;\n // the nodes to the right\n this._right = null;\n // the parent node\n this.parent = null;\n // the number of child nodes\n this.height = 0;\n this.event = event;\n // the low value\n this.low = low;\n // the high value\n this.high = high;\n // the high value for this and all child nodes\n this.max = this.high;\n }\n /**\n * Insert a node into the correct spot in the tree\n */\n insert(node) {\n if (node.low <= this.low) {\n if (this.left === null) {\n this.left = node;\n }\n else {\n this.left.insert(node);\n }\n }\n else if (this.right === null) {\n this.right = node;\n }\n else {\n this.right.insert(node);\n }\n }\n /**\n * Search the tree for nodes which overlap\n * with the given point\n * @param point The point to query\n * @param results The array to put the results\n */\n search(point, results) {\n // If p is to the right of the rightmost point of any interval\n // in this node and all children, there won't be any matches.\n if (point > this.max) {\n return;\n }\n // Search left children\n if (this.left !== null) {\n this.left.search(point, results);\n }\n // Check this node\n if (this.low <= point && this.high > point) {\n results.push(this);\n }\n // If p is to the left of the time of this interval,\n // then it can't be in any child to the right.\n if (this.low > point) {\n return;\n }\n // Search right children\n if (this.right !== null) {\n this.right.search(point, results);\n }\n }\n /**\n * Search the tree for nodes which are less\n * than the given point\n * @param point The point to query\n * @param results The array to put the results\n */\n searchAfter(point, results) {\n // Check this node\n if (this.low >= point) {\n results.push(this);\n if (this.left !== null) {\n this.left.searchAfter(point, results);\n }\n }\n // search the right side\n if (this.right !== null) {\n this.right.searchAfter(point, results);\n }\n }\n /**\n * Invoke the callback on this element and both it's branches\n * @param {Function} callback\n */\n traverse(callback) {\n callback(this);\n if (this.left !== null) {\n this.left.traverse(callback);\n }\n if (this.right !== null) {\n this.right.traverse(callback);\n }\n }\n /**\n * Update the height of the node\n */\n updateHeight() {\n if (this.left !== null && this.right !== null) {\n this.height = Math.max(this.left.height, this.right.height) + 1;\n }\n else if (this.right !== null) {\n this.height = this.right.height + 1;\n }\n else if (this.left !== null) {\n this.height = this.left.height + 1;\n }\n else {\n this.height = 0;\n }\n }\n /**\n * Update the height of the node\n */\n updateMax() {\n this.max = this.high;\n if (this.left !== null) {\n this.max = Math.max(this.max, this.left.max);\n }\n if (this.right !== null) {\n this.max = Math.max(this.max, this.right.max);\n }\n }\n /**\n * The balance is how the leafs are distributed on the node\n * @return Negative numbers are balanced to the right\n */\n getBalance() {\n let balance = 0;\n if (this.left !== null && this.right !== null) {\n balance = this.left.height - this.right.height;\n }\n else if (this.left !== null) {\n balance = this.left.height + 1;\n }\n else if (this.right !== null) {\n balance = -(this.right.height + 1);\n }\n return balance;\n }\n /**\n * @returns true if this node is the left child of its parent\n */\n isLeftChild() {\n return this.parent !== null && this.parent.left === this;\n }\n /**\n * get/set the left node\n */\n get left() {\n return this._left;\n }\n set left(node) {\n this._left = node;\n if (node !== null) {\n node.parent = this;\n }\n this.updateHeight();\n this.updateMax();\n }\n /**\n * get/set the right node\n */\n get right() {\n return this._right;\n }\n set right(node) {\n this._right = node;\n if (node !== null) {\n node.parent = this;\n }\n this.updateHeight();\n this.updateMax();\n }\n /**\n * null out references.\n */\n dispose() {\n this.parent = null;\n this._left = null;\n this._right = null;\n this.event = null;\n }\n}\n//# sourceMappingURL=IntervalTimeline.js.map","import { Gain } from \"../../core/context/Gain\";\nimport { ToneAudioNode } from \"../../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\n/**\n * Volume is a simple volume node, useful for creating a volume fader.\n *\n * @example\n * const vol = new Tone.Volume(-12).toDestination();\n * const osc = new Tone.Oscillator().connect(vol).start();\n * @category Component\n */\nexport class Volume extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Volume.getDefaults(), arguments, [\"volume\"]));\n this.name = \"Volume\";\n const options = optionsFromArguments(Volume.getDefaults(), arguments, [\"volume\"]);\n this.input = this.output = new Gain({\n context: this.context,\n gain: options.volume,\n units: \"decibels\",\n });\n this.volume = this.output.gain;\n readOnly(this, \"volume\");\n this._unmutedVolume = options.volume;\n // set the mute initially\n this.mute = options.mute;\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n mute: false,\n volume: 0,\n });\n }\n /**\n * Mute the output.\n * @example\n * const vol = new Tone.Volume(-12).toDestination();\n * const osc = new Tone.Oscillator().connect(vol).start();\n * // mute the output\n * vol.mute = true;\n */\n get mute() {\n return this.volume.value === -Infinity;\n }\n set mute(mute) {\n if (!this.mute && mute) {\n this._unmutedVolume = this.volume.value;\n // maybe it should ramp here?\n this.volume.value = -Infinity;\n }\n else if (this.mute && !mute) {\n this.volume.value = this._unmutedVolume;\n }\n }\n /**\n * clean up\n */\n dispose() {\n super.dispose();\n this.input.dispose();\n this.volume.dispose();\n return this;\n }\n}\n//# sourceMappingURL=Volume.js.map","import { Volume } from \"../../component/channel/Volume\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { onContextClose, onContextInit } from \"./ContextInitialization\";\nimport { Gain } from \"./Gain\";\nimport { connectSeries, ToneAudioNode } from \"./ToneAudioNode\";\n/**\n * A single master output which is connected to the\n * AudioDestinationNode (aka your speakers).\n * It provides useful conveniences such as the ability\n * to set the volume and mute the entire application.\n * It also gives you the ability to apply master effects to your application.\n *\n * @example\n * const oscillator = new Tone.Oscillator().start();\n * // the audio will go from the oscillator to the speakers\n * oscillator.connect(Tone.getDestination());\n * // a convenience for connecting to the master output is also provided:\n * oscillator.toDestination();\n * @category Core\n */\nexport class Destination extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Destination.getDefaults(), arguments));\n this.name = \"Destination\";\n this.input = new Volume({ context: this.context });\n this.output = new Gain({ context: this.context });\n /**\n * The volume of the master output in decibels. -Infinity is silent, and 0 is no change.\n * @example\n * const osc = new Tone.Oscillator().toDestination();\n * osc.start();\n * // ramp the volume down to silent over 10 seconds\n * Tone.getDestination().volume.rampTo(-Infinity, 10);\n */\n this.volume = this.input.volume;\n const options = optionsFromArguments(Destination.getDefaults(), arguments);\n connectSeries(this.input, this.output, this.context.rawContext.destination);\n this.mute = options.mute;\n this._internalChannels = [this.input, this.context.rawContext.destination, this.output];\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n mute: false,\n volume: 0,\n });\n }\n /**\n * Mute the output.\n * @example\n * const oscillator = new Tone.Oscillator().start().toDestination();\n * setTimeout(() => {\n * \t// mute the output\n * \tTone.Destination.mute = true;\n * }, 1000);\n */\n get mute() {\n return this.input.mute;\n }\n set mute(mute) {\n this.input.mute = mute;\n }\n /**\n * Add a master effects chain. NOTE: this will disconnect any nodes which were previously\n * chained in the master effects chain.\n * @param args All arguments will be connected in a row and the Master will be routed through it.\n * @example\n * // route all audio through a filter and compressor\n * const lowpass = new Tone.Filter(800, \"lowpass\");\n * const compressor = new Tone.Compressor(-18);\n * Tone.Destination.chain(lowpass, compressor);\n */\n chain(...args) {\n this.input.disconnect();\n args.unshift(this.input);\n args.push(this.output);\n connectSeries(...args);\n return this;\n }\n /**\n * The maximum number of channels the system can output\n * @example\n * console.log(Tone.Destination.maxChannelCount);\n */\n get maxChannelCount() {\n return this.context.rawContext.destination.maxChannelCount;\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this.volume.dispose();\n return this;\n }\n}\n//-------------------------------------\n// \tINITIALIZATION\n//-------------------------------------\nonContextInit(context => {\n context.destination = new Destination({ context });\n});\nonContextClose(context => {\n context.destination.dispose();\n});\n//# sourceMappingURL=Destination.js.map","import { Timeline } from \"./Timeline\";\nimport { Tone } from \"../Tone\";\n/**\n * Represents a single value which is gettable and settable in a timed way\n */\nexport class TimelineValue extends Tone {\n /**\n * @param initialValue The value to return if there is no scheduled values\n */\n constructor(initialValue) {\n super();\n this.name = \"TimelineValue\";\n /**\n * The timeline which stores the values\n */\n this._timeline = new Timeline({ memory: 10 });\n this._initialValue = initialValue;\n }\n /**\n * Set the value at the given time\n */\n set(value, time) {\n this._timeline.add({\n value, time\n });\n return this;\n }\n /**\n * Get the value at the given time\n */\n get(time) {\n const event = this._timeline.get(time);\n if (event) {\n return event.value;\n }\n else {\n return this._initialValue;\n }\n }\n}\n//# sourceMappingURL=TimelineValue.js.map","import { noOp } from \"../util/Interface\";\n/**\n * TransportEvent is an internal class used by [[Transport]]\n * to schedule events. Do no invoke this class directly, it is\n * handled from within Tone.Transport.\n */\nexport class TransportEvent {\n /**\n * @param transport The transport object which the event belongs to\n */\n constructor(transport, opts) {\n /**\n * The unique id of the event\n */\n this.id = TransportEvent._eventId++;\n const options = Object.assign(TransportEvent.getDefaults(), opts);\n this.transport = transport;\n this.callback = options.callback;\n this._once = options.once;\n this.time = options.time;\n }\n static getDefaults() {\n return {\n callback: noOp,\n once: false,\n time: 0,\n };\n }\n /**\n * Invoke the event callback.\n * @param time The AudioContext time in seconds of the event\n */\n invoke(time) {\n if (this.callback) {\n this.callback(time);\n if (this._once) {\n this.transport.clear(this.id);\n }\n }\n }\n /**\n * Clean up\n */\n dispose() {\n this.callback = undefined;\n return this;\n }\n}\n/**\n * Current ID counter\n */\nTransportEvent._eventId = 0;\n//# sourceMappingURL=TransportEvent.js.map","import { TicksClass } from \"../type/Ticks\";\nimport { TransportEvent } from \"./TransportEvent\";\n/**\n * TransportRepeatEvent is an internal class used by Tone.Transport\n * to schedule repeat events. This class should not be instantiated directly.\n */\nexport class TransportRepeatEvent extends TransportEvent {\n /**\n * @param transport The transport object which the event belongs to\n */\n constructor(transport, opts) {\n super(transport, opts);\n /**\n * The ID of the current timeline event\n */\n this._currentId = -1;\n /**\n * The ID of the next timeline event\n */\n this._nextId = -1;\n /**\n * The time of the next event\n */\n this._nextTick = this.time;\n /**\n * a reference to the bound start method\n */\n this._boundRestart = this._restart.bind(this);\n const options = Object.assign(TransportRepeatEvent.getDefaults(), opts);\n this.duration = new TicksClass(transport.context, options.duration).valueOf();\n this._interval = new TicksClass(transport.context, options.interval).valueOf();\n this._nextTick = options.time;\n this.transport.on(\"start\", this._boundRestart);\n this.transport.on(\"loopStart\", this._boundRestart);\n this.context = this.transport.context;\n this._restart();\n }\n static getDefaults() {\n return Object.assign({}, TransportEvent.getDefaults(), {\n duration: Infinity,\n interval: 1,\n once: false,\n });\n }\n /**\n * Invoke the callback. Returns the tick time which\n * the next event should be scheduled at.\n * @param time The AudioContext time in seconds of the event\n */\n invoke(time) {\n // create more events if necessary\n this._createEvents(time);\n // call the super class\n super.invoke(time);\n }\n /**\n * Push more events onto the timeline to keep up with the position of the timeline\n */\n _createEvents(time) {\n // schedule the next event\n const ticks = this.transport.getTicksAtTime(time);\n if (ticks >= this.time && ticks >= this._nextTick && this._nextTick + this._interval < this.time + this.duration) {\n this._nextTick += this._interval;\n this._currentId = this._nextId;\n this._nextId = this.transport.scheduleOnce(this.invoke.bind(this), new TicksClass(this.context, this._nextTick).toSeconds());\n }\n }\n /**\n * Push more events onto the timeline to keep up with the position of the timeline\n */\n _restart(time) {\n this.transport.clear(this._currentId);\n this.transport.clear(this._nextId);\n this._nextTick = this.time;\n const ticks = this.transport.getTicksAtTime(time);\n if (ticks > this.time) {\n this._nextTick = this.time + Math.ceil((ticks - this.time) / this._interval) * this._interval;\n }\n this._currentId = this.transport.scheduleOnce(this.invoke.bind(this), new TicksClass(this.context, this._nextTick).toSeconds());\n this._nextTick += this._interval;\n this._nextId = this.transport.scheduleOnce(this.invoke.bind(this), new TicksClass(this.context, this._nextTick).toSeconds());\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this.transport.clear(this._currentId);\n this.transport.clear(this._nextId);\n this.transport.off(\"start\", this._boundRestart);\n this.transport.off(\"loopStart\", this._boundRestart);\n return this;\n }\n}\n//# sourceMappingURL=TransportRepeatEvent.js.map","import { TimeClass } from \"../../core/type/Time\";\nimport { TimelineValue } from \"../../core/util/TimelineValue\";\nimport { onContextClose, onContextInit } from \"../context/ContextInitialization\";\nimport { Gain } from \"../context/Gain\";\nimport { ToneWithContext } from \"../context/ToneWithContext\";\nimport { TicksClass } from \"../type/Ticks\";\nimport { TransportTimeClass } from \"../type/TransportTime\";\nimport { optionsFromArguments } from \"../util/Defaults\";\nimport { Emitter } from \"../util/Emitter\";\nimport { readOnly, writable } from \"../util/Interface\";\nimport { IntervalTimeline } from \"../util/IntervalTimeline\";\nimport { Timeline } from \"../util/Timeline\";\nimport { isArray, isDefined } from \"../util/TypeCheck\";\nimport { Clock } from \"./Clock\";\nimport { TransportEvent } from \"./TransportEvent\";\nimport { TransportRepeatEvent } from \"./TransportRepeatEvent\";\n/**\n * Transport for timing musical events.\n * Supports tempo curves and time changes. Unlike browser-based timing (setInterval, requestAnimationFrame)\n * Transport timing events pass in the exact time of the scheduled event\n * in the argument of the callback function. Pass that time value to the object\n * you're scheduling.

    \n * A single transport is created for you when the library is initialized.\n *

    \n * The transport emits the events: \"start\", \"stop\", \"pause\", and \"loop\" which are\n * called with the time of that event as the argument.\n *\n * @example\n * const osc = new Tone.Oscillator().toDestination();\n * // repeated event every 8th note\n * Tone.Transport.scheduleRepeat((time) => {\n * \t// use the callback time to schedule events\n * \tosc.start(time).stop(time + 0.1);\n * }, \"8n\");\n * // transport must be started before it starts invoking events\n * Tone.Transport.start();\n * @category Core\n */\nexport class Transport extends ToneWithContext {\n constructor() {\n super(optionsFromArguments(Transport.getDefaults(), arguments));\n this.name = \"Transport\";\n //-------------------------------------\n // \tLOOPING\n //-------------------------------------\n /**\n * If the transport loops or not.\n */\n this._loop = new TimelineValue(false);\n /**\n * The loop start position in ticks\n */\n this._loopStart = 0;\n /**\n * The loop end position in ticks\n */\n this._loopEnd = 0;\n //-------------------------------------\n // \tTIMELINE EVENTS\n //-------------------------------------\n /**\n * All the events in an object to keep track by ID\n */\n this._scheduledEvents = {};\n /**\n * The scheduled events.\n */\n this._timeline = new Timeline();\n /**\n * Repeated events\n */\n this._repeatedEvents = new IntervalTimeline();\n /**\n * All of the synced Signals\n */\n this._syncedSignals = [];\n /**\n * The swing amount\n */\n this._swingAmount = 0;\n const options = optionsFromArguments(Transport.getDefaults(), arguments);\n // CLOCK/TEMPO\n this._ppq = options.ppq;\n this._clock = new Clock({\n callback: this._processTick.bind(this),\n context: this.context,\n frequency: 0,\n units: \"bpm\",\n });\n this._bindClockEvents();\n this.bpm = this._clock.frequency;\n this._clock.frequency.multiplier = options.ppq;\n this.bpm.setValueAtTime(options.bpm, 0);\n readOnly(this, \"bpm\");\n this._timeSignature = options.timeSignature;\n // SWING\n this._swingTicks = options.ppq / 2; // 8n\n }\n static getDefaults() {\n return Object.assign(ToneWithContext.getDefaults(), {\n bpm: 120,\n loopEnd: \"4m\",\n loopStart: 0,\n ppq: 192,\n swing: 0,\n swingSubdivision: \"8n\",\n timeSignature: 4,\n });\n }\n //-------------------------------------\n // \tTICKS\n //-------------------------------------\n /**\n * called on every tick\n * @param tickTime clock relative tick time\n */\n _processTick(tickTime, ticks) {\n // do the loop test\n if (this._loop.get(tickTime)) {\n if (ticks >= this._loopEnd) {\n this.emit(\"loopEnd\", tickTime);\n this._clock.setTicksAtTime(this._loopStart, tickTime);\n ticks = this._loopStart;\n this.emit(\"loopStart\", tickTime, this._clock.getSecondsAtTime(tickTime));\n this.emit(\"loop\", tickTime);\n }\n }\n // handle swing\n if (this._swingAmount > 0 &&\n ticks % this._ppq !== 0 && // not on a downbeat\n ticks % (this._swingTicks * 2) !== 0) {\n // add some swing\n const progress = (ticks % (this._swingTicks * 2)) / (this._swingTicks * 2);\n const amount = Math.sin((progress) * Math.PI) * this._swingAmount;\n tickTime += new TicksClass(this.context, this._swingTicks * 2 / 3).toSeconds() * amount;\n }\n // invoke the timeline events scheduled on this tick\n this._timeline.forEachAtTime(ticks, event => event.invoke(tickTime));\n }\n //-------------------------------------\n // \tSCHEDULABLE EVENTS\n //-------------------------------------\n /**\n * Schedule an event along the timeline.\n * @param callback The callback to be invoked at the time.\n * @param time The time to invoke the callback at.\n * @return The id of the event which can be used for canceling the event.\n * @example\n * // schedule an event on the 16th measure\n * Tone.Transport.schedule((time) => {\n * \t// invoked on measure 16\n * \tconsole.log(\"measure 16!\");\n * }, \"16:0:0\");\n */\n schedule(callback, time) {\n const event = new TransportEvent(this, {\n callback,\n time: new TransportTimeClass(this.context, time).toTicks(),\n });\n return this._addEvent(event, this._timeline);\n }\n /**\n * Schedule a repeated event along the timeline. The event will fire\n * at the `interval` starting at the `startTime` and for the specified\n * `duration`.\n * @param callback The callback to invoke.\n * @param interval The duration between successive callbacks. Must be a positive number.\n * @param startTime When along the timeline the events should start being invoked.\n * @param duration How long the event should repeat.\n * @return The ID of the scheduled event. Use this to cancel the event.\n * @example\n * const osc = new Tone.Oscillator().toDestination().start();\n * // a callback invoked every eighth note after the first measure\n * Tone.Transport.scheduleRepeat((time) => {\n * \tosc.start(time).stop(time + 0.1);\n * }, \"8n\", \"1m\");\n */\n scheduleRepeat(callback, interval, startTime, duration = Infinity) {\n const event = new TransportRepeatEvent(this, {\n callback,\n duration: new TimeClass(this.context, duration).toTicks(),\n interval: new TimeClass(this.context, interval).toTicks(),\n time: new TransportTimeClass(this.context, startTime).toTicks(),\n });\n // kick it off if the Transport is started\n // @ts-ignore\n return this._addEvent(event, this._repeatedEvents);\n }\n /**\n * Schedule an event that will be removed after it is invoked.\n * @param callback The callback to invoke once.\n * @param time The time the callback should be invoked.\n * @returns The ID of the scheduled event.\n */\n scheduleOnce(callback, time) {\n const event = new TransportEvent(this, {\n callback,\n once: true,\n time: new TransportTimeClass(this.context, time).toTicks(),\n });\n return this._addEvent(event, this._timeline);\n }\n /**\n * Clear the passed in event id from the timeline\n * @param eventId The id of the event.\n */\n clear(eventId) {\n if (this._scheduledEvents.hasOwnProperty(eventId)) {\n const item = this._scheduledEvents[eventId.toString()];\n item.timeline.remove(item.event);\n item.event.dispose();\n delete this._scheduledEvents[eventId.toString()];\n }\n return this;\n }\n /**\n * Add an event to the correct timeline. Keep track of the\n * timeline it was added to.\n * @returns the event id which was just added\n */\n _addEvent(event, timeline) {\n this._scheduledEvents[event.id.toString()] = {\n event,\n timeline,\n };\n timeline.add(event);\n return event.id;\n }\n /**\n * Remove scheduled events from the timeline after\n * the given time. Repeated events will be removed\n * if their startTime is after the given time\n * @param after Clear all events after this time.\n */\n cancel(after = 0) {\n const computedAfter = this.toTicks(after);\n this._timeline.forEachFrom(computedAfter, event => this.clear(event.id));\n this._repeatedEvents.forEachFrom(computedAfter, event => this.clear(event.id));\n return this;\n }\n //-------------------------------------\n // \tSTART/STOP/PAUSE\n //-------------------------------------\n /**\n * Bind start/stop/pause events from the clock and emit them.\n */\n _bindClockEvents() {\n this._clock.on(\"start\", (time, offset) => {\n offset = new TicksClass(this.context, offset).toSeconds();\n this.emit(\"start\", time, offset);\n });\n this._clock.on(\"stop\", (time) => {\n this.emit(\"stop\", time);\n });\n this._clock.on(\"pause\", (time) => {\n this.emit(\"pause\", time);\n });\n }\n /**\n * Returns the playback state of the source, either \"started\", \"stopped\", or \"paused\"\n */\n get state() {\n return this._clock.getStateAtTime(this.now());\n }\n /**\n * Start the transport and all sources synced to the transport.\n * @param time The time when the transport should start.\n * @param offset The timeline offset to start the transport.\n * @example\n * // start the transport in one second starting at beginning of the 5th measure.\n * Tone.Transport.start(\"+1\", \"4:0:0\");\n */\n start(time, offset) {\n let offsetTicks;\n if (isDefined(offset)) {\n offsetTicks = this.toTicks(offset);\n }\n // start the clock\n this._clock.start(time, offsetTicks);\n return this;\n }\n /**\n * Stop the transport and all sources synced to the transport.\n * @param time The time when the transport should stop.\n * @example\n * Tone.Transport.stop();\n */\n stop(time) {\n this._clock.stop(time);\n return this;\n }\n /**\n * Pause the transport and all sources synced to the transport.\n */\n pause(time) {\n this._clock.pause(time);\n return this;\n }\n /**\n * Toggle the current state of the transport. If it is\n * started, it will stop it, otherwise it will start the Transport.\n * @param time The time of the event\n */\n toggle(time) {\n time = this.toSeconds(time);\n if (this._clock.getStateAtTime(time) !== \"started\") {\n this.start(time);\n }\n else {\n this.stop(time);\n }\n return this;\n }\n //-------------------------------------\n // \tSETTERS/GETTERS\n //-------------------------------------\n /**\n * The time signature as just the numerator over 4.\n * For example 4/4 would be just 4 and 6/8 would be 3.\n * @example\n * // common time\n * Tone.Transport.timeSignature = 4;\n * // 7/8\n * Tone.Transport.timeSignature = [7, 8];\n * // this will be reduced to a single number\n * Tone.Transport.timeSignature; // returns 3.5\n */\n get timeSignature() {\n return this._timeSignature;\n }\n set timeSignature(timeSig) {\n if (isArray(timeSig)) {\n timeSig = (timeSig[0] / timeSig[1]) * 4;\n }\n this._timeSignature = timeSig;\n }\n /**\n * When the Transport.loop = true, this is the starting position of the loop.\n */\n get loopStart() {\n return new TimeClass(this.context, this._loopStart, \"i\").toSeconds();\n }\n set loopStart(startPosition) {\n this._loopStart = this.toTicks(startPosition);\n }\n /**\n * When the Transport.loop = true, this is the ending position of the loop.\n */\n get loopEnd() {\n return new TimeClass(this.context, this._loopEnd, \"i\").toSeconds();\n }\n set loopEnd(endPosition) {\n this._loopEnd = this.toTicks(endPosition);\n }\n /**\n * If the transport loops or not.\n */\n get loop() {\n return this._loop.get(this.now());\n }\n set loop(loop) {\n this._loop.set(loop, this.now());\n }\n /**\n * Set the loop start and stop at the same time.\n * @example\n * // loop over the first measure\n * Tone.Transport.setLoopPoints(0, \"1m\");\n * Tone.Transport.loop = true;\n */\n setLoopPoints(startPosition, endPosition) {\n this.loopStart = startPosition;\n this.loopEnd = endPosition;\n return this;\n }\n /**\n * The swing value. Between 0-1 where 1 equal to the note + half the subdivision.\n */\n get swing() {\n return this._swingAmount;\n }\n set swing(amount) {\n // scale the values to a normal range\n this._swingAmount = amount;\n }\n /**\n * Set the subdivision which the swing will be applied to.\n * The default value is an 8th note. Value must be less\n * than a quarter note.\n */\n get swingSubdivision() {\n return new TicksClass(this.context, this._swingTicks).toNotation();\n }\n set swingSubdivision(subdivision) {\n this._swingTicks = this.toTicks(subdivision);\n }\n /**\n * The Transport's position in Bars:Beats:Sixteenths.\n * Setting the value will jump to that position right away.\n */\n get position() {\n const now = this.now();\n const ticks = this._clock.getTicksAtTime(now);\n return new TicksClass(this.context, ticks).toBarsBeatsSixteenths();\n }\n set position(progress) {\n const ticks = this.toTicks(progress);\n this.ticks = ticks;\n }\n /**\n * The Transport's position in seconds\n * Setting the value will jump to that position right away.\n */\n get seconds() {\n return this._clock.seconds;\n }\n set seconds(s) {\n const now = this.now();\n const ticks = this._clock.frequency.timeToTicks(s, now);\n this.ticks = ticks;\n }\n /**\n * The Transport's loop position as a normalized value. Always\n * returns 0 if the transport if loop is not true.\n */\n get progress() {\n if (this.loop) {\n const now = this.now();\n const ticks = this._clock.getTicksAtTime(now);\n return (ticks - this._loopStart) / (this._loopEnd - this._loopStart);\n }\n else {\n return 0;\n }\n }\n /**\n * The transports current tick position.\n */\n get ticks() {\n return this._clock.ticks;\n }\n set ticks(t) {\n if (this._clock.ticks !== t) {\n const now = this.now();\n // stop everything synced to the transport\n if (this.state === \"started\") {\n const ticks = this._clock.getTicksAtTime(now);\n // schedule to start on the next tick, #573\n const remainingTick = this._clock.frequency.getDurationOfTicks(Math.ceil(ticks) - ticks, now);\n const time = now + remainingTick;\n this.emit(\"stop\", time);\n this._clock.setTicksAtTime(t, time);\n // restart it with the new time\n this.emit(\"start\", time, this._clock.getSecondsAtTime(time));\n }\n else {\n this._clock.setTicksAtTime(t, now);\n }\n }\n }\n /**\n * Get the clock's ticks at the given time.\n * @param time When to get the tick value\n * @return The tick value at the given time.\n */\n getTicksAtTime(time) {\n return Math.round(this._clock.getTicksAtTime(time));\n }\n /**\n * Return the elapsed seconds at the given time.\n * @param time When to get the elapsed seconds\n * @return The number of elapsed seconds\n */\n getSecondsAtTime(time) {\n return this._clock.getSecondsAtTime(time);\n }\n /**\n * Pulses Per Quarter note. This is the smallest resolution\n * the Transport timing supports. This should be set once\n * on initialization and not set again. Changing this value\n * after other objects have been created can cause problems.\n */\n get PPQ() {\n return this._clock.frequency.multiplier;\n }\n set PPQ(ppq) {\n this._clock.frequency.multiplier = ppq;\n }\n //-------------------------------------\n // \tSYNCING\n //-------------------------------------\n /**\n * Returns the time aligned to the next subdivision\n * of the Transport. If the Transport is not started,\n * it will return 0.\n * Note: this will not work precisely during tempo ramps.\n * @param subdivision The subdivision to quantize to\n * @return The context time of the next subdivision.\n * @example\n * // the transport must be started, otherwise returns 0\n * Tone.Transport.start();\n * Tone.Transport.nextSubdivision(\"4n\");\n */\n nextSubdivision(subdivision) {\n subdivision = this.toTicks(subdivision);\n if (this.state !== \"started\") {\n // if the transport's not started, return 0\n return 0;\n }\n else {\n const now = this.now();\n // the remainder of the current ticks and the subdivision\n const transportPos = this.getTicksAtTime(now);\n const remainingTicks = subdivision - transportPos % subdivision;\n return this._clock.nextTickTime(remainingTicks, now);\n }\n }\n /**\n * Attaches the signal to the tempo control signal so that\n * any changes in the tempo will change the signal in the same\n * ratio.\n *\n * @param signal\n * @param ratio Optionally pass in the ratio between the two signals.\n * \t\t\tOtherwise it will be computed based on their current values.\n */\n syncSignal(signal, ratio) {\n if (!ratio) {\n // get the sync ratio\n const now = this.now();\n if (signal.getValueAtTime(now) !== 0) {\n const bpm = this.bpm.getValueAtTime(now);\n const computedFreq = 1 / (60 / bpm / this.PPQ);\n ratio = signal.getValueAtTime(now) / computedFreq;\n }\n else {\n ratio = 0;\n }\n }\n const ratioSignal = new Gain(ratio);\n // @ts-ignore\n this.bpm.connect(ratioSignal);\n // @ts-ignore\n ratioSignal.connect(signal._param);\n this._syncedSignals.push({\n initial: signal.value,\n ratio: ratioSignal,\n signal,\n });\n signal.value = 0;\n return this;\n }\n /**\n * Unsyncs a previously synced signal from the transport's control.\n * See Transport.syncSignal.\n */\n unsyncSignal(signal) {\n for (let i = this._syncedSignals.length - 1; i >= 0; i--) {\n const syncedSignal = this._syncedSignals[i];\n if (syncedSignal.signal === signal) {\n syncedSignal.ratio.dispose();\n syncedSignal.signal.value = syncedSignal.initial;\n this._syncedSignals.splice(i, 1);\n }\n }\n return this;\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this._clock.dispose();\n writable(this, \"bpm\");\n this._timeline.dispose();\n this._repeatedEvents.dispose();\n return this;\n }\n}\nEmitter.mixin(Transport);\n//-------------------------------------\n// \tINITIALIZATION\n//-------------------------------------\nonContextInit(context => {\n context.transport = new Transport({ context });\n});\nonContextClose(context => {\n context.transport.dispose();\n});\n//# sourceMappingURL=Transport.js.map","import { Volume } from \"../component/channel/Volume\";\nimport \"../core/context/Destination\";\nimport \"../core/clock/Transport\";\nimport { ToneAudioNode } from \"../core/context/ToneAudioNode\";\nimport { defaultArg } from \"../core/util/Defaults\";\nimport { noOp, readOnly } from \"../core/util/Interface\";\nimport { StateTimeline } from \"../core/util/StateTimeline\";\nimport { isDefined, isUndef } from \"../core/util/TypeCheck\";\nimport { assert, assertContextRunning } from \"../core/util/Debug\";\nimport { GT } from \"../core/util/Math\";\n/**\n * Base class for sources.\n * start/stop of this.context.transport.\n *\n * ```\n * // Multiple state change events can be chained together,\n * // but must be set in the correct order and with ascending times\n * // OK\n * state.start().stop(\"+0.2\");\n * // OK\n * state.start().stop(\"+0.2\").start(\"+0.4\").stop(\"+0.7\")\n * // BAD\n * state.stop(\"+0.2\").start();\n * // BAD\n * state.start(\"+0.3\").stop(\"+0.2\");\n * ```\n */\nexport class Source extends ToneAudioNode {\n constructor(options) {\n super(options);\n /**\n * Sources have no inputs\n */\n this.input = undefined;\n /**\n * Keep track of the scheduled state.\n */\n this._state = new StateTimeline(\"stopped\");\n /**\n * The synced `start` callback function from the transport\n */\n this._synced = false;\n /**\n * Keep track of all of the scheduled event ids\n */\n this._scheduled = [];\n /**\n * Placeholder functions for syncing/unsyncing to transport\n */\n this._syncedStart = noOp;\n this._syncedStop = noOp;\n this._state.memory = 100;\n this._state.increasing = true;\n this._volume = this.output = new Volume({\n context: this.context,\n mute: options.mute,\n volume: options.volume,\n });\n this.volume = this._volume.volume;\n readOnly(this, \"volume\");\n this.onstop = options.onstop;\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n mute: false,\n onstop: noOp,\n volume: 0,\n });\n }\n /**\n * Returns the playback state of the source, either \"started\" or \"stopped\".\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/ahntone_c3.mp3\", () => {\n * \tplayer.start();\n * \tconsole.log(player.state);\n * }).toDestination();\n */\n get state() {\n if (this._synced) {\n if (this.context.transport.state === \"started\") {\n return this._state.getValueAtTime(this.context.transport.seconds);\n }\n else {\n return \"stopped\";\n }\n }\n else {\n return this._state.getValueAtTime(this.now());\n }\n }\n /**\n * Mute the output.\n * @example\n * const osc = new Tone.Oscillator().toDestination().start();\n * // mute the output\n * osc.mute = true;\n */\n get mute() {\n return this._volume.mute;\n }\n set mute(mute) {\n this._volume.mute = mute;\n }\n /**\n * Ensure that the scheduled time is not before the current time.\n * Should only be used when scheduled unsynced.\n */\n _clampToCurrentTime(time) {\n if (this._synced) {\n return time;\n }\n else {\n return Math.max(time, this.context.currentTime);\n }\n }\n /**\n * Start the source at the specified time. If no time is given,\n * start the source now.\n * @param time When the source should be started.\n * @example\n * const source = new Tone.Oscillator().toDestination();\n * source.start(\"+0.5\"); // starts the source 0.5 seconds from now\n */\n start(time, offset, duration) {\n let computedTime = isUndef(time) && this._synced ? this.context.transport.seconds : this.toSeconds(time);\n computedTime = this._clampToCurrentTime(computedTime);\n // if it's started, stop it and restart it\n if (!this._synced && this._state.getValueAtTime(computedTime) === \"started\") {\n // time should be strictly greater than the previous start time\n assert(GT(computedTime, this._state.get(computedTime).time), \"Start time must be strictly greater than previous start time\");\n this._state.cancel(computedTime);\n this._state.setStateAtTime(\"started\", computedTime);\n this.log(\"restart\", computedTime);\n this.restart(computedTime, offset, duration);\n }\n else {\n this.log(\"start\", computedTime);\n this._state.setStateAtTime(\"started\", computedTime);\n if (this._synced) {\n // add the offset time to the event\n const event = this._state.get(computedTime);\n if (event) {\n event.offset = this.toSeconds(defaultArg(offset, 0));\n event.duration = duration ? this.toSeconds(duration) : undefined;\n }\n const sched = this.context.transport.schedule(t => {\n this._start(t, offset, duration);\n }, computedTime);\n this._scheduled.push(sched);\n // if the transport is already started\n // and the time is greater than where the transport is\n if (this.context.transport.state === \"started\" &&\n this.context.transport.getSecondsAtTime(this.immediate()) > computedTime) {\n this._syncedStart(this.now(), this.context.transport.seconds);\n }\n }\n else {\n assertContextRunning(this.context);\n this._start(computedTime, offset, duration);\n }\n }\n return this;\n }\n /**\n * Stop the source at the specified time. If no time is given,\n * stop the source now.\n * @param time When the source should be stopped.\n * @example\n * const source = new Tone.Oscillator().toDestination();\n * source.start();\n * source.stop(\"+0.5\"); // stops the source 0.5 seconds from now\n */\n stop(time) {\n let computedTime = isUndef(time) && this._synced ? this.context.transport.seconds : this.toSeconds(time);\n computedTime = this._clampToCurrentTime(computedTime);\n if (this._state.getValueAtTime(computedTime) === \"started\" || isDefined(this._state.getNextState(\"started\", computedTime))) {\n this.log(\"stop\", computedTime);\n if (!this._synced) {\n this._stop(computedTime);\n }\n else {\n const sched = this.context.transport.schedule(this._stop.bind(this), computedTime);\n this._scheduled.push(sched);\n }\n this._state.cancel(computedTime);\n this._state.setStateAtTime(\"stopped\", computedTime);\n }\n return this;\n }\n /**\n * Restart the source.\n */\n restart(time, offset, duration) {\n time = this.toSeconds(time);\n if (this._state.getValueAtTime(time) === \"started\") {\n this._state.cancel(time);\n this._restart(time, offset, duration);\n }\n return this;\n }\n /**\n * Sync the source to the Transport so that all subsequent\n * calls to `start` and `stop` are synced to the TransportTime\n * instead of the AudioContext time.\n *\n * @example\n * const osc = new Tone.Oscillator().toDestination();\n * // sync the source so that it plays between 0 and 0.3 on the Transport's timeline\n * osc.sync().start(0).stop(0.3);\n * // start the transport.\n * Tone.Transport.start();\n * // set it to loop once a second\n * Tone.Transport.loop = true;\n * Tone.Transport.loopEnd = 1;\n */\n sync() {\n if (!this._synced) {\n this._synced = true;\n this._syncedStart = (time, offset) => {\n if (offset > 0) {\n // get the playback state at that time\n const stateEvent = this._state.get(offset);\n // listen for start events which may occur in the middle of the sync'ed time\n if (stateEvent && stateEvent.state === \"started\" && stateEvent.time !== offset) {\n // get the offset\n const startOffset = offset - this.toSeconds(stateEvent.time);\n let duration;\n if (stateEvent.duration) {\n duration = this.toSeconds(stateEvent.duration) - startOffset;\n }\n this._start(time, this.toSeconds(stateEvent.offset) + startOffset, duration);\n }\n }\n };\n this._syncedStop = time => {\n const seconds = this.context.transport.getSecondsAtTime(Math.max(time - this.sampleTime, 0));\n if (this._state.getValueAtTime(seconds) === \"started\") {\n this._stop(time);\n }\n };\n this.context.transport.on(\"start\", this._syncedStart);\n this.context.transport.on(\"loopStart\", this._syncedStart);\n this.context.transport.on(\"stop\", this._syncedStop);\n this.context.transport.on(\"pause\", this._syncedStop);\n this.context.transport.on(\"loopEnd\", this._syncedStop);\n }\n return this;\n }\n /**\n * Unsync the source to the Transport. See Source.sync\n */\n unsync() {\n if (this._synced) {\n this.context.transport.off(\"stop\", this._syncedStop);\n this.context.transport.off(\"pause\", this._syncedStop);\n this.context.transport.off(\"loopEnd\", this._syncedStop);\n this.context.transport.off(\"start\", this._syncedStart);\n this.context.transport.off(\"loopStart\", this._syncedStart);\n }\n this._synced = false;\n // clear all of the scheduled ids\n this._scheduled.forEach(id => this.context.transport.clear(id));\n this._scheduled = [];\n this._state.cancel(0);\n // stop it also\n this._stop(0);\n return this;\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this.onstop = noOp;\n this.unsync();\n this._volume.dispose();\n this._state.dispose();\n return this;\n }\n}\n//# sourceMappingURL=Source.js.map","import { connect } from \"../../core/context/ToneAudioNode\";\nimport { Param } from \"../../core/context/Param\";\nimport { ToneAudioBuffer } from \"../../core/context/ToneAudioBuffer\";\nimport { defaultArg, optionsFromArguments } from \"../../core/util/Defaults\";\nimport { noOp } from \"../../core/util/Interface\";\nimport { isDefined } from \"../../core/util/TypeCheck\";\nimport { assert } from \"../../core/util/Debug\";\nimport { OneShotSource } from \"../OneShotSource\";\nimport { EQ, GTE, LT } from \"../../core/util/Math\";\n/**\n * Wrapper around the native BufferSourceNode.\n * @category Source\n */\nexport class ToneBufferSource extends OneShotSource {\n constructor() {\n super(optionsFromArguments(ToneBufferSource.getDefaults(), arguments, [\"url\", \"onload\"]));\n this.name = \"ToneBufferSource\";\n /**\n * The oscillator\n */\n this._source = this.context.createBufferSource();\n this._internalChannels = [this._source];\n /**\n * indicators if the source has started/stopped\n */\n this._sourceStarted = false;\n this._sourceStopped = false;\n const options = optionsFromArguments(ToneBufferSource.getDefaults(), arguments, [\"url\", \"onload\"]);\n connect(this._source, this._gainNode);\n this._source.onended = () => this._stopSource();\n /**\n * The playbackRate of the buffer\n */\n this.playbackRate = new Param({\n context: this.context,\n param: this._source.playbackRate,\n units: \"positive\",\n value: options.playbackRate,\n });\n // set some values initially\n this.loop = options.loop;\n this.loopStart = options.loopStart;\n this.loopEnd = options.loopEnd;\n this._buffer = new ToneAudioBuffer(options.url, options.onload, options.onerror);\n this._internalChannels.push(this._source);\n }\n static getDefaults() {\n return Object.assign(OneShotSource.getDefaults(), {\n url: new ToneAudioBuffer(),\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n onload: noOp,\n onerror: noOp,\n playbackRate: 1,\n });\n }\n /**\n * The fadeIn time of the amplitude envelope.\n */\n get fadeIn() {\n return this._fadeIn;\n }\n set fadeIn(t) {\n this._fadeIn = t;\n }\n /**\n * The fadeOut time of the amplitude envelope.\n */\n get fadeOut() {\n return this._fadeOut;\n }\n set fadeOut(t) {\n this._fadeOut = t;\n }\n /**\n * The curve applied to the fades, either \"linear\" or \"exponential\"\n */\n get curve() {\n return this._curve;\n }\n set curve(t) {\n this._curve = t;\n }\n /**\n * Start the buffer\n * @param time When the player should start.\n * @param offset The offset from the beginning of the sample to start at.\n * @param duration How long the sample should play. If no duration is given, it will default to the full length of the sample (minus any offset)\n * @param gain The gain to play the buffer back at.\n */\n start(time, offset, duration, gain = 1) {\n assert(this.buffer.loaded, \"buffer is either not set or not loaded\");\n const computedTime = this.toSeconds(time);\n // apply the gain envelope\n this._startGain(computedTime, gain);\n // if it's a loop the default offset is the loopstart point\n if (this.loop) {\n offset = defaultArg(offset, this.loopStart);\n }\n else {\n // otherwise the default offset is 0\n offset = defaultArg(offset, 0);\n }\n // make sure the offset is not less than 0\n let computedOffset = Math.max(this.toSeconds(offset), 0);\n // start the buffer source\n if (this.loop) {\n // modify the offset if it's greater than the loop time\n const loopEnd = this.toSeconds(this.loopEnd) || this.buffer.duration;\n const loopStart = this.toSeconds(this.loopStart);\n const loopDuration = loopEnd - loopStart;\n // move the offset back\n if (GTE(computedOffset, loopEnd)) {\n computedOffset = ((computedOffset - loopStart) % loopDuration) + loopStart;\n }\n // when the offset is very close to the duration, set it to 0\n if (EQ(computedOffset, this.buffer.duration)) {\n computedOffset = 0;\n }\n }\n // this.buffer.loaded would have return false if the AudioBuffer was undefined\n this._source.buffer = this.buffer.get();\n this._source.loopEnd = this.toSeconds(this.loopEnd) || this.buffer.duration;\n if (LT(computedOffset, this.buffer.duration)) {\n this._sourceStarted = true;\n this._source.start(computedTime, computedOffset);\n }\n // if a duration is given, schedule a stop\n if (isDefined(duration)) {\n let computedDur = this.toSeconds(duration);\n // make sure it's never negative\n computedDur = Math.max(computedDur, 0);\n this.stop(computedTime + computedDur);\n }\n return this;\n }\n _stopSource(time) {\n if (!this._sourceStopped && this._sourceStarted) {\n this._sourceStopped = true;\n this._source.stop(this.toSeconds(time));\n this._onended();\n }\n }\n /**\n * If loop is true, the loop will start at this position.\n */\n get loopStart() {\n return this._source.loopStart;\n }\n set loopStart(loopStart) {\n this._source.loopStart = this.toSeconds(loopStart);\n }\n /**\n * If loop is true, the loop will end at this position.\n */\n get loopEnd() {\n return this._source.loopEnd;\n }\n set loopEnd(loopEnd) {\n this._source.loopEnd = this.toSeconds(loopEnd);\n }\n /**\n * The audio buffer belonging to the player.\n */\n get buffer() {\n return this._buffer;\n }\n set buffer(buffer) {\n this._buffer.set(buffer);\n }\n /**\n * If the buffer should loop once it's over.\n */\n get loop() {\n return this._source.loop;\n }\n set loop(loop) {\n this._source.loop = loop;\n if (this._sourceStarted) {\n this.cancelStop();\n }\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this._source.onended = null;\n this._source.disconnect();\n this._buffer.dispose();\n this.playbackRate.dispose();\n return this;\n }\n}\n//# sourceMappingURL=ToneBufferSource.js.map","import { __awaiter } from \"tslib\";\nimport { OfflineContext } from \"../../core/context/OfflineContext\";\n/**\n * Render a segment of the oscillator to an offline context and return the results as an array\n */\nexport function generateWaveform(instance, length) {\n return __awaiter(this, void 0, void 0, function* () {\n const duration = length / instance.context.sampleRate;\n const context = new OfflineContext(1, duration, instance.context.sampleRate);\n const clone = new instance.constructor(Object.assign(instance.get(), {\n // should do 2 iterations\n frequency: 2 / duration,\n // zero out the detune\n detune: 0,\n context\n })).toDestination();\n clone.start(0);\n const buffer = yield context.render();\n return buffer.getChannelData(0);\n });\n}\n//# sourceMappingURL=OscillatorInterface.js.map","import { connect } from \"../../core/context/ToneAudioNode\";\nimport { Param } from \"../../core/context/Param\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { OneShotSource } from \"../OneShotSource\";\nimport { readOnly } from \"../../core/util/Interface\";\n/**\n * Wrapper around the native fire-and-forget OscillatorNode.\n * Adds the ability to reschedule the stop method.\n * ***[[Oscillator]] is better for most use-cases***\n * @category Source\n */\nexport class ToneOscillatorNode extends OneShotSource {\n constructor() {\n super(optionsFromArguments(ToneOscillatorNode.getDefaults(), arguments, [\"frequency\", \"type\"]));\n this.name = \"ToneOscillatorNode\";\n /**\n * The oscillator\n */\n this._oscillator = this.context.createOscillator();\n this._internalChannels = [this._oscillator];\n const options = optionsFromArguments(ToneOscillatorNode.getDefaults(), arguments, [\"frequency\", \"type\"]);\n connect(this._oscillator, this._gainNode);\n this.type = options.type;\n this.frequency = new Param({\n context: this.context,\n param: this._oscillator.frequency,\n units: \"frequency\",\n value: options.frequency,\n });\n this.detune = new Param({\n context: this.context,\n param: this._oscillator.detune,\n units: \"cents\",\n value: options.detune,\n });\n readOnly(this, [\"frequency\", \"detune\"]);\n }\n static getDefaults() {\n return Object.assign(OneShotSource.getDefaults(), {\n detune: 0,\n frequency: 440,\n type: \"sine\",\n });\n }\n /**\n * Start the oscillator node at the given time\n * @param time When to start the oscillator\n */\n start(time) {\n const computedTime = this.toSeconds(time);\n this.log(\"start\", computedTime);\n this._startGain(computedTime);\n this._oscillator.start(computedTime);\n return this;\n }\n _stopSource(time) {\n this._oscillator.stop(time);\n }\n /**\n * Sets an arbitrary custom periodic waveform given a PeriodicWave.\n * @param periodicWave PeriodicWave should be created with context.createPeriodicWave\n */\n setPeriodicWave(periodicWave) {\n this._oscillator.setPeriodicWave(periodicWave);\n return this;\n }\n /**\n * The oscillator type. Either 'sine', 'sawtooth', 'square', or 'triangle'\n */\n get type() {\n return this._oscillator.type;\n }\n set type(type) {\n this._oscillator.type = type;\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n if (this.state === \"started\") {\n this.stop();\n }\n this._oscillator.disconnect();\n this.frequency.dispose();\n this.detune.dispose();\n return this;\n }\n}\n//# sourceMappingURL=ToneOscillatorNode.js.map","import { __awaiter } from \"tslib\";\nimport { deepEquals, optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { isDefined } from \"../../core/util/TypeCheck\";\nimport { Signal } from \"../../signal/Signal\";\nimport { Source } from \"../Source\";\nimport { generateWaveform } from \"./OscillatorInterface\";\nimport { ToneOscillatorNode } from \"./ToneOscillatorNode\";\nimport { assertRange } from \"../../core/util/Debug\";\nimport { clamp } from \"../../core/util/Math\";\n/**\n * Oscillator supports a number of features including\n * phase rotation, multiple oscillator types (see Oscillator.type),\n * and Transport syncing (see Oscillator.syncFrequency).\n *\n * @example\n * // make and start a 440hz sine tone\n * const osc = new Tone.Oscillator(440, \"sine\").toDestination().start();\n * @category Source\n */\nexport class Oscillator extends Source {\n constructor() {\n super(optionsFromArguments(Oscillator.getDefaults(), arguments, [\"frequency\", \"type\"]));\n this.name = \"Oscillator\";\n /**\n * the main oscillator\n */\n this._oscillator = null;\n const options = optionsFromArguments(Oscillator.getDefaults(), arguments, [\"frequency\", \"type\"]);\n this.frequency = new Signal({\n context: this.context,\n units: \"frequency\",\n value: options.frequency,\n });\n readOnly(this, \"frequency\");\n this.detune = new Signal({\n context: this.context,\n units: \"cents\",\n value: options.detune,\n });\n readOnly(this, \"detune\");\n this._partials = options.partials;\n this._partialCount = options.partialCount;\n this._type = options.type;\n if (options.partialCount && options.type !== \"custom\") {\n this._type = this.baseType + options.partialCount.toString();\n }\n this.phase = options.phase;\n }\n static getDefaults() {\n return Object.assign(Source.getDefaults(), {\n detune: 0,\n frequency: 440,\n partialCount: 0,\n partials: [],\n phase: 0,\n type: \"sine\",\n });\n }\n /**\n * start the oscillator\n */\n _start(time) {\n const computedTime = this.toSeconds(time);\n // new oscillator with previous values\n const oscillator = new ToneOscillatorNode({\n context: this.context,\n onended: () => this.onstop(this),\n });\n this._oscillator = oscillator;\n if (this._wave) {\n this._oscillator.setPeriodicWave(this._wave);\n }\n else {\n this._oscillator.type = this._type;\n }\n // connect the control signal to the oscillator frequency & detune\n this._oscillator.connect(this.output);\n this.frequency.connect(this._oscillator.frequency);\n this.detune.connect(this._oscillator.detune);\n // start the oscillator\n this._oscillator.start(computedTime);\n }\n /**\n * stop the oscillator\n */\n _stop(time) {\n const computedTime = this.toSeconds(time);\n if (this._oscillator) {\n this._oscillator.stop(computedTime);\n }\n }\n /**\n * Restart the oscillator. Does not stop the oscillator, but instead\n * just cancels any scheduled 'stop' from being invoked.\n */\n _restart(time) {\n const computedTime = this.toSeconds(time);\n this.log(\"restart\", computedTime);\n if (this._oscillator) {\n this._oscillator.cancelStop();\n }\n this._state.cancel(computedTime);\n return this;\n }\n /**\n * Sync the signal to the Transport's bpm. Any changes to the transports bpm,\n * will also affect the oscillators frequency.\n * @example\n * const osc = new Tone.Oscillator().toDestination().start();\n * osc.frequency.value = 440;\n * // the ratio between the bpm and the frequency will be maintained\n * osc.syncFrequency();\n * // double the tempo\n * Tone.Transport.bpm.value *= 2;\n * // the frequency of the oscillator is doubled to 880\n */\n syncFrequency() {\n this.context.transport.syncSignal(this.frequency);\n return this;\n }\n /**\n * Unsync the oscillator's frequency from the Transport.\n * See Oscillator.syncFrequency\n */\n unsyncFrequency() {\n this.context.transport.unsyncSignal(this.frequency);\n return this;\n }\n /**\n * Get a cached periodic wave. Avoids having to recompute\n * the oscillator values when they have already been computed\n * with the same values.\n */\n _getCachedPeriodicWave() {\n if (this._type === \"custom\") {\n const oscProps = Oscillator._periodicWaveCache.find(description => {\n return description.phase === this._phase &&\n deepEquals(description.partials, this._partials);\n });\n return oscProps;\n }\n else {\n const oscProps = Oscillator._periodicWaveCache.find(description => {\n return description.type === this._type &&\n description.phase === this._phase;\n });\n this._partialCount = oscProps ? oscProps.partialCount : this._partialCount;\n return oscProps;\n }\n }\n get type() {\n return this._type;\n }\n set type(type) {\n this._type = type;\n const isBasicType = [\"sine\", \"square\", \"sawtooth\", \"triangle\"].indexOf(type) !== -1;\n if (this._phase === 0 && isBasicType) {\n this._wave = undefined;\n this._partialCount = 0;\n // just go with the basic approach\n if (this._oscillator !== null) {\n // already tested that it's a basic type\n this._oscillator.type = type;\n }\n }\n else {\n // first check if the value is cached\n const cache = this._getCachedPeriodicWave();\n if (isDefined(cache)) {\n const { partials, wave } = cache;\n this._wave = wave;\n this._partials = partials;\n if (this._oscillator !== null) {\n this._oscillator.setPeriodicWave(this._wave);\n }\n }\n else {\n const [real, imag] = this._getRealImaginary(type, this._phase);\n const periodicWave = this.context.createPeriodicWave(real, imag);\n this._wave = periodicWave;\n if (this._oscillator !== null) {\n this._oscillator.setPeriodicWave(this._wave);\n }\n // set the cache\n Oscillator._periodicWaveCache.push({\n imag,\n partialCount: this._partialCount,\n partials: this._partials,\n phase: this._phase,\n real,\n type: this._type,\n wave: this._wave,\n });\n if (Oscillator._periodicWaveCache.length > 100) {\n Oscillator._periodicWaveCache.shift();\n }\n }\n }\n }\n get baseType() {\n return this._type.replace(this.partialCount.toString(), \"\");\n }\n set baseType(baseType) {\n if (this.partialCount && this._type !== \"custom\" && baseType !== \"custom\") {\n this.type = baseType + this.partialCount;\n }\n else {\n this.type = baseType;\n }\n }\n get partialCount() {\n return this._partialCount;\n }\n set partialCount(p) {\n assertRange(p, 0);\n let type = this._type;\n const partial = /^(sine|triangle|square|sawtooth)(\\d+)$/.exec(this._type);\n if (partial) {\n type = partial[1];\n }\n if (this._type !== \"custom\") {\n if (p === 0) {\n this.type = type;\n }\n else {\n this.type = type + p.toString();\n }\n }\n else {\n // extend or shorten the partials array\n const fullPartials = new Float32Array(p);\n // copy over the partials array\n this._partials.forEach((v, i) => fullPartials[i] = v);\n this._partials = Array.from(fullPartials);\n this.type = this._type;\n }\n }\n /**\n * Returns the real and imaginary components based\n * on the oscillator type.\n * @returns [real: Float32Array, imaginary: Float32Array]\n */\n _getRealImaginary(type, phase) {\n const fftSize = 4096;\n let periodicWaveSize = fftSize / 2;\n const real = new Float32Array(periodicWaveSize);\n const imag = new Float32Array(periodicWaveSize);\n let partialCount = 1;\n if (type === \"custom\") {\n partialCount = this._partials.length + 1;\n this._partialCount = this._partials.length;\n periodicWaveSize = partialCount;\n // if the partial count is 0, don't bother doing any computation\n if (this._partials.length === 0) {\n return [real, imag];\n }\n }\n else {\n const partial = /^(sine|triangle|square|sawtooth)(\\d+)$/.exec(type);\n if (partial) {\n partialCount = parseInt(partial[2], 10) + 1;\n this._partialCount = parseInt(partial[2], 10);\n type = partial[1];\n partialCount = Math.max(partialCount, 2);\n periodicWaveSize = partialCount;\n }\n else {\n this._partialCount = 0;\n }\n this._partials = [];\n }\n for (let n = 1; n < periodicWaveSize; ++n) {\n const piFactor = 2 / (n * Math.PI);\n let b;\n switch (type) {\n case \"sine\":\n b = (n <= partialCount) ? 1 : 0;\n this._partials[n - 1] = b;\n break;\n case \"square\":\n b = (n & 1) ? 2 * piFactor : 0;\n this._partials[n - 1] = b;\n break;\n case \"sawtooth\":\n b = piFactor * ((n & 1) ? 1 : -1);\n this._partials[n - 1] = b;\n break;\n case \"triangle\":\n if (n & 1) {\n b = 2 * (piFactor * piFactor) * ((((n - 1) >> 1) & 1) ? -1 : 1);\n }\n else {\n b = 0;\n }\n this._partials[n - 1] = b;\n break;\n case \"custom\":\n b = this._partials[n - 1];\n break;\n default:\n throw new TypeError(\"Oscillator: invalid type: \" + type);\n }\n if (b !== 0) {\n real[n] = -b * Math.sin(phase * n);\n imag[n] = b * Math.cos(phase * n);\n }\n else {\n real[n] = 0;\n imag[n] = 0;\n }\n }\n return [real, imag];\n }\n /**\n * Compute the inverse FFT for a given phase.\n */\n _inverseFFT(real, imag, phase) {\n let sum = 0;\n const len = real.length;\n for (let i = 0; i < len; i++) {\n sum += real[i] * Math.cos(i * phase) + imag[i] * Math.sin(i * phase);\n }\n return sum;\n }\n /**\n * Returns the initial value of the oscillator when stopped.\n * E.g. a \"sine\" oscillator with phase = 90 would return an initial value of -1.\n */\n getInitialValue() {\n const [real, imag] = this._getRealImaginary(this._type, 0);\n let maxValue = 0;\n const twoPi = Math.PI * 2;\n const testPositions = 32;\n // check for peaks in 16 places\n for (let i = 0; i < testPositions; i++) {\n maxValue = Math.max(this._inverseFFT(real, imag, (i / testPositions) * twoPi), maxValue);\n }\n return clamp(-this._inverseFFT(real, imag, this._phase) / maxValue, -1, 1);\n }\n get partials() {\n return this._partials.slice(0, this.partialCount);\n }\n set partials(partials) {\n this._partials = partials;\n this._partialCount = this._partials.length;\n if (partials.length) {\n this.type = \"custom\";\n }\n }\n get phase() {\n return this._phase * (180 / Math.PI);\n }\n set phase(phase) {\n this._phase = phase * Math.PI / 180;\n // reset the type\n this.type = this._type;\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n dispose() {\n super.dispose();\n if (this._oscillator !== null) {\n this._oscillator.dispose();\n }\n this._wave = undefined;\n this.frequency.dispose();\n this.detune.dispose();\n return this;\n }\n}\n/**\n * Cache the periodic waves to avoid having to redo computations\n */\nOscillator._periodicWaveCache = [];\n//# sourceMappingURL=Oscillator.js.map","import { optionsFromArguments } from \"../core/util/Defaults\";\nimport { ToneAudioNode } from \"../core/context/ToneAudioNode\";\nimport { connectSignal } from \"./Signal\";\n/**\n * A signal operator has an input and output and modifies the signal.\n */\nexport class SignalOperator extends ToneAudioNode {\n constructor() {\n super(Object.assign(optionsFromArguments(SignalOperator.getDefaults(), arguments, [\"context\"])));\n }\n connect(destination, outputNum = 0, inputNum = 0) {\n connectSignal(this, destination, outputNum, inputNum);\n return this;\n }\n}\n//# sourceMappingURL=SignalOperator.js.map","import { optionsFromArguments } from \"../core/util/Defaults\";\nimport { isArray, isFunction } from \"../core/util/TypeCheck\";\nimport { assert } from \"../core/util/Debug\";\nimport { Signal } from \"./Signal\";\nimport { SignalOperator } from \"./SignalOperator\";\n/**\n * Wraps the native Web Audio API\n * [WaveShaperNode](http://webaudio.github.io/web-audio-api/#the-waveshapernode-interface).\n *\n * @example\n * const osc = new Tone.Oscillator().toDestination().start();\n * // multiply the output of the signal by 2 using the waveshaper's function\n * const timesTwo = new Tone.WaveShaper((val) => val * 2, 2048).connect(osc.frequency);\n * const signal = new Tone.Signal(440).connect(timesTwo);\n * @category Signal\n */\nexport class WaveShaper extends SignalOperator {\n constructor() {\n super(Object.assign(optionsFromArguments(WaveShaper.getDefaults(), arguments, [\"mapping\", \"length\"])));\n this.name = \"WaveShaper\";\n /**\n * the waveshaper node\n */\n this._shaper = this.context.createWaveShaper();\n /**\n * The input to the waveshaper node.\n */\n this.input = this._shaper;\n /**\n * The output from the waveshaper node\n */\n this.output = this._shaper;\n const options = optionsFromArguments(WaveShaper.getDefaults(), arguments, [\"mapping\", \"length\"]);\n if (isArray(options.mapping) || options.mapping instanceof Float32Array) {\n this.curve = Float32Array.from(options.mapping);\n }\n else if (isFunction(options.mapping)) {\n this.setMap(options.mapping, options.length);\n }\n }\n static getDefaults() {\n return Object.assign(Signal.getDefaults(), {\n length: 1024,\n });\n }\n /**\n * Uses a mapping function to set the value of the curve.\n * @param mapping The function used to define the values.\n * The mapping function take two arguments:\n * the first is the value at the current position\n * which goes from -1 to 1 over the number of elements\n * in the curve array. The second argument is the array position.\n * @example\n * const shaper = new Tone.WaveShaper();\n * // map the input signal from [-1, 1] to [0, 10]\n * shaper.setMap((val, index) => (val + 1) * 5);\n */\n setMap(mapping, length = 1024) {\n const array = new Float32Array(length);\n for (let i = 0, len = length; i < len; i++) {\n const normalized = (i / (len - 1)) * 2 - 1;\n array[i] = mapping(normalized, i);\n }\n this.curve = array;\n return this;\n }\n /**\n * The array to set as the waveshaper curve. For linear curves\n * array length does not make much difference, but for complex curves\n * longer arrays will provide smoother interpolation.\n */\n get curve() {\n return this._shaper.curve;\n }\n set curve(mapping) {\n this._shaper.curve = mapping;\n }\n /**\n * Specifies what type of oversampling (if any) should be used when\n * applying the shaping curve. Can either be \"none\", \"2x\" or \"4x\".\n */\n get oversample() {\n return this._shaper.oversample;\n }\n set oversample(oversampling) {\n const isOverSampleType = [\"none\", \"2x\", \"4x\"].some(str => str.includes(oversampling));\n assert(isOverSampleType, \"oversampling must be either 'none', '2x', or '4x'\");\n this._shaper.oversample = oversampling;\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this._shaper.disconnect();\n return this;\n }\n}\n//# sourceMappingURL=WaveShaper.js.map","import { SignalOperator } from \"./SignalOperator\";\nimport { WaveShaper } from \"./WaveShaper\";\n/**\n * AudioToGain converts an input in AudioRange [-1,1] to NormalRange [0,1].\n * See [[GainToAudio]].\n * @category Signal\n */\nexport class AudioToGain extends SignalOperator {\n constructor() {\n super(...arguments);\n this.name = \"AudioToGain\";\n /**\n * The node which converts the audio ranges\n */\n this._norm = new WaveShaper({\n context: this.context,\n mapping: x => (x + 1) / 2,\n });\n /**\n * The AudioRange input [-1, 1]\n */\n this.input = this._norm;\n /**\n * The GainRange output [0, 1]\n */\n this.output = this._norm;\n }\n /**\n * clean up\n */\n dispose() {\n super.dispose();\n this._norm.dispose();\n return this;\n }\n}\n//# sourceMappingURL=AudioToGain.js.map","import { Gain } from \"../core/context/Gain\";\nimport { optionsFromArguments } from \"../core/util/Defaults\";\nimport { Signal } from \"./Signal\";\n/**\n * Multiply two incoming signals. Or, if a number is given in the constructor,\n * multiplies the incoming signal by that value.\n *\n * @example\n * // multiply two signals\n * const mult = new Tone.Multiply();\n * const sigA = new Tone.Signal(3);\n * const sigB = new Tone.Signal(4);\n * sigA.connect(mult);\n * sigB.connect(mult.factor);\n * // output of mult is 12.\n * @example\n * // multiply a signal and a number\n * const mult = new Tone.Multiply(10);\n * const sig = new Tone.Signal(2).connect(mult);\n * // the output of mult is 20.\n * @category Signal\n */\nexport class Multiply extends Signal {\n constructor() {\n super(Object.assign(optionsFromArguments(Multiply.getDefaults(), arguments, [\"value\"])));\n this.name = \"Multiply\";\n /**\n * Indicates if the value should be overridden on connection\n */\n this.override = false;\n const options = optionsFromArguments(Multiply.getDefaults(), arguments, [\"value\"]);\n this._mult = this.input = this.output = new Gain({\n context: this.context,\n minValue: options.minValue,\n maxValue: options.maxValue,\n });\n this.factor = this._param = this._mult.gain;\n this.factor.setValueAtTime(options.value, 0);\n }\n static getDefaults() {\n return Object.assign(Signal.getDefaults(), {\n value: 0,\n });\n }\n dispose() {\n super.dispose();\n this._mult.dispose();\n return this;\n }\n}\n//# sourceMappingURL=Multiply.js.map","import { __awaiter } from \"tslib\";\nimport { Gain } from \"../../core/context/Gain\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { AudioToGain } from \"../../signal/AudioToGain\";\nimport { Multiply } from \"../../signal/Multiply\";\nimport { Source } from \"../Source\";\nimport { Oscillator } from \"./Oscillator\";\nimport { generateWaveform } from \"./OscillatorInterface\";\n/**\n * An amplitude modulated oscillator node. It is implemented with\n * two oscillators, one which modulators the other's amplitude\n * through a gain node.\n * ```\n * +-------------+ +----------+\n * | Carrier Osc +>------> GainNode |\n * +-------------+ | +--->Output\n * +---> gain |\n * +---------------+ | +----------+\n * | Modulator Osc +>---+\n * +---------------+\n * ```\n * @example\n * return Tone.Offline(() => {\n * \tconst amOsc = new Tone.AMOscillator(30, \"sine\", \"square\").toDestination().start();\n * }, 0.2, 1);\n * @category Source\n */\nexport class AMOscillator extends Source {\n constructor() {\n super(optionsFromArguments(AMOscillator.getDefaults(), arguments, [\"frequency\", \"type\", \"modulationType\"]));\n this.name = \"AMOscillator\";\n /**\n * convert the -1,1 output to 0,1\n */\n this._modulationScale = new AudioToGain({ context: this.context });\n /**\n * the node where the modulation happens\n */\n this._modulationNode = new Gain({\n context: this.context,\n });\n const options = optionsFromArguments(AMOscillator.getDefaults(), arguments, [\"frequency\", \"type\", \"modulationType\"]);\n this._carrier = new Oscillator({\n context: this.context,\n detune: options.detune,\n frequency: options.frequency,\n onstop: () => this.onstop(this),\n phase: options.phase,\n type: options.type,\n });\n this.frequency = this._carrier.frequency,\n this.detune = this._carrier.detune;\n this._modulator = new Oscillator({\n context: this.context,\n phase: options.phase,\n type: options.modulationType,\n });\n this.harmonicity = new Multiply({\n context: this.context,\n units: \"positive\",\n value: options.harmonicity,\n });\n // connections\n this.frequency.chain(this.harmonicity, this._modulator.frequency);\n this._modulator.chain(this._modulationScale, this._modulationNode.gain);\n this._carrier.chain(this._modulationNode, this.output);\n readOnly(this, [\"frequency\", \"detune\", \"harmonicity\"]);\n }\n static getDefaults() {\n return Object.assign(Oscillator.getDefaults(), {\n harmonicity: 1,\n modulationType: \"square\",\n });\n }\n /**\n * start the oscillator\n */\n _start(time) {\n this._modulator.start(time);\n this._carrier.start(time);\n }\n /**\n * stop the oscillator\n */\n _stop(time) {\n this._modulator.stop(time);\n this._carrier.stop(time);\n }\n _restart(time) {\n this._modulator.restart(time);\n this._carrier.restart(time);\n }\n /**\n * The type of the carrier oscillator\n */\n get type() {\n return this._carrier.type;\n }\n set type(type) {\n this._carrier.type = type;\n }\n get baseType() {\n return this._carrier.baseType;\n }\n set baseType(baseType) {\n this._carrier.baseType = baseType;\n }\n get partialCount() {\n return this._carrier.partialCount;\n }\n set partialCount(partialCount) {\n this._carrier.partialCount = partialCount;\n }\n /**\n * The type of the modulator oscillator\n */\n get modulationType() {\n return this._modulator.type;\n }\n set modulationType(type) {\n this._modulator.type = type;\n }\n get phase() {\n return this._carrier.phase;\n }\n set phase(phase) {\n this._carrier.phase = phase;\n this._modulator.phase = phase;\n }\n get partials() {\n return this._carrier.partials;\n }\n set partials(partials) {\n this._carrier.partials = partials;\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this.frequency.dispose();\n this.detune.dispose();\n this.harmonicity.dispose();\n this._carrier.dispose();\n this._modulator.dispose();\n this._modulationNode.dispose();\n this._modulationScale.dispose();\n return this;\n }\n}\n//# sourceMappingURL=AMOscillator.js.map","import { __awaiter } from \"tslib\";\nimport { Gain } from \"../../core/context/Gain\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { Multiply } from \"../../signal/Multiply\";\nimport { Signal } from \"../../signal/Signal\";\nimport { Source } from \"../Source\";\nimport { Oscillator } from \"./Oscillator\";\nimport { generateWaveform } from \"./OscillatorInterface\";\n/**\n * FMOscillator implements a frequency modulation synthesis\n * ```\n * +-------------+\n * +---------------+ +-------------+ | Carrier Osc |\n * | Modulator Osc +>-------> GainNode | | +--->Output\n * +---------------+ | +>----> frequency |\n * +--> gain | +-------------+\n * | +-------------+\n * +-----------------+ |\n * | modulationIndex +>--+\n * +-----------------+\n * ```\n *\n * @example\n * return Tone.Offline(() => {\n * \tconst fmOsc = new Tone.FMOscillator({\n * \t\tfrequency: 200,\n * \t\ttype: \"square\",\n * \t\tmodulationType: \"triangle\",\n * \t\tharmonicity: 0.2,\n * \t\tmodulationIndex: 3\n * \t}).toDestination().start();\n * }, 0.1, 1);\n * @category Source\n */\nexport class FMOscillator extends Source {\n constructor() {\n super(optionsFromArguments(FMOscillator.getDefaults(), arguments, [\"frequency\", \"type\", \"modulationType\"]));\n this.name = \"FMOscillator\";\n /**\n * the node where the modulation happens\n */\n this._modulationNode = new Gain({\n context: this.context,\n gain: 0,\n });\n const options = optionsFromArguments(FMOscillator.getDefaults(), arguments, [\"frequency\", \"type\", \"modulationType\"]);\n this._carrier = new Oscillator({\n context: this.context,\n detune: options.detune,\n frequency: 0,\n onstop: () => this.onstop(this),\n phase: options.phase,\n type: options.type,\n });\n this.detune = this._carrier.detune;\n this.frequency = new Signal({\n context: this.context,\n units: \"frequency\",\n value: options.frequency,\n });\n this._modulator = new Oscillator({\n context: this.context,\n phase: options.phase,\n type: options.modulationType,\n });\n this.harmonicity = new Multiply({\n context: this.context,\n units: \"positive\",\n value: options.harmonicity,\n });\n this.modulationIndex = new Multiply({\n context: this.context,\n units: \"positive\",\n value: options.modulationIndex,\n });\n // connections\n this.frequency.connect(this._carrier.frequency);\n this.frequency.chain(this.harmonicity, this._modulator.frequency);\n this.frequency.chain(this.modulationIndex, this._modulationNode);\n this._modulator.connect(this._modulationNode.gain);\n this._modulationNode.connect(this._carrier.frequency);\n this._carrier.connect(this.output);\n this.detune.connect(this._modulator.detune);\n readOnly(this, [\"modulationIndex\", \"frequency\", \"detune\", \"harmonicity\"]);\n }\n static getDefaults() {\n return Object.assign(Oscillator.getDefaults(), {\n harmonicity: 1,\n modulationIndex: 2,\n modulationType: \"square\",\n });\n }\n /**\n * start the oscillator\n */\n _start(time) {\n this._modulator.start(time);\n this._carrier.start(time);\n }\n /**\n * stop the oscillator\n */\n _stop(time) {\n this._modulator.stop(time);\n this._carrier.stop(time);\n }\n _restart(time) {\n this._modulator.restart(time);\n this._carrier.restart(time);\n return this;\n }\n get type() {\n return this._carrier.type;\n }\n set type(type) {\n this._carrier.type = type;\n }\n get baseType() {\n return this._carrier.baseType;\n }\n set baseType(baseType) {\n this._carrier.baseType = baseType;\n }\n get partialCount() {\n return this._carrier.partialCount;\n }\n set partialCount(partialCount) {\n this._carrier.partialCount = partialCount;\n }\n /**\n * The type of the modulator oscillator\n */\n get modulationType() {\n return this._modulator.type;\n }\n set modulationType(type) {\n this._modulator.type = type;\n }\n get phase() {\n return this._carrier.phase;\n }\n set phase(phase) {\n this._carrier.phase = phase;\n this._modulator.phase = phase;\n }\n get partials() {\n return this._carrier.partials;\n }\n set partials(partials) {\n this._carrier.partials = partials;\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this.frequency.dispose();\n this.harmonicity.dispose();\n this._carrier.dispose();\n this._modulator.dispose();\n this._modulationNode.dispose();\n this.modulationIndex.dispose();\n return this;\n }\n}\n//# sourceMappingURL=FMOscillator.js.map","import { __awaiter } from \"tslib\";\nimport { Gain } from \"../../core/context/Gain\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { Signal } from \"../../signal/Signal\";\nimport { WaveShaper } from \"../../signal/WaveShaper\";\nimport { Source } from \"../Source\";\nimport { Oscillator } from \"./Oscillator\";\nimport { generateWaveform } from \"./OscillatorInterface\";\n/**\n * PulseOscillator is an oscillator with control over pulse width,\n * also known as the duty cycle. At 50% duty cycle (width = 0) the wave is\n * a square wave.\n * [Read more](https://wigglewave.wordpress.com/2014/08/16/pulse-waveforms-and-harmonics/).\n * ```\n * width = -0.25 width = 0.0 width = 0.25\n *\n * +-----+ +-------+ + +-------+ +-+\n * | | | | | | |\n * | | | | | | |\n * +-+ +-------+ + +-------+ +-----+\n *\n *\n * width = -0.5 width = 0.5\n *\n * +---+ +-------+ +---+\n * | | | |\n * | | | |\n * +---+ +-------+ +---+\n *\n *\n * width = -0.75 width = 0.75\n *\n * +-+ +-------+ +-----+\n * | | | |\n * | | | |\n * +-----+ +-------+ +-+\n * ```\n * @example\n * return Tone.Offline(() => {\n * \tconst pulse = new Tone.PulseOscillator(50, 0.4).toDestination().start();\n * }, 0.1, 1);\n * @category Source\n */\nexport class PulseOscillator extends Source {\n constructor() {\n super(optionsFromArguments(PulseOscillator.getDefaults(), arguments, [\"frequency\", \"width\"]));\n this.name = \"PulseOscillator\";\n /**\n * gate the width amount\n */\n this._widthGate = new Gain({\n context: this.context,\n gain: 0,\n });\n /**\n * Threshold the signal to turn it into a square\n */\n this._thresh = new WaveShaper({\n context: this.context,\n mapping: val => val <= 0 ? -1 : 1,\n });\n const options = optionsFromArguments(PulseOscillator.getDefaults(), arguments, [\"frequency\", \"width\"]);\n this.width = new Signal({\n context: this.context,\n units: \"audioRange\",\n value: options.width,\n });\n this._triangle = new Oscillator({\n context: this.context,\n detune: options.detune,\n frequency: options.frequency,\n onstop: () => this.onstop(this),\n phase: options.phase,\n type: \"triangle\",\n });\n this.frequency = this._triangle.frequency;\n this.detune = this._triangle.detune;\n // connections\n this._triangle.chain(this._thresh, this.output);\n this.width.chain(this._widthGate, this._thresh);\n readOnly(this, [\"width\", \"frequency\", \"detune\"]);\n }\n static getDefaults() {\n return Object.assign(Source.getDefaults(), {\n detune: 0,\n frequency: 440,\n phase: 0,\n type: \"pulse\",\n width: 0.2,\n });\n }\n /**\n * start the oscillator\n */\n _start(time) {\n time = this.toSeconds(time);\n this._triangle.start(time);\n this._widthGate.gain.setValueAtTime(1, time);\n }\n /**\n * stop the oscillator\n */\n _stop(time) {\n time = this.toSeconds(time);\n this._triangle.stop(time);\n // the width is still connected to the output.\n // that needs to be stopped also\n this._widthGate.gain.cancelScheduledValues(time);\n this._widthGate.gain.setValueAtTime(0, time);\n }\n _restart(time) {\n this._triangle.restart(time);\n this._widthGate.gain.cancelScheduledValues(time);\n this._widthGate.gain.setValueAtTime(1, time);\n }\n /**\n * The phase of the oscillator in degrees.\n */\n get phase() {\n return this._triangle.phase;\n }\n set phase(phase) {\n this._triangle.phase = phase;\n }\n /**\n * The type of the oscillator. Always returns \"pulse\".\n */\n get type() {\n return \"pulse\";\n }\n /**\n * The baseType of the oscillator. Always returns \"pulse\".\n */\n get baseType() {\n return \"pulse\";\n }\n /**\n * The partials of the waveform. Cannot set partials for this waveform type\n */\n get partials() {\n return [];\n }\n /**\n * No partials for this waveform type.\n */\n get partialCount() {\n return 0;\n }\n /**\n * *Internal use* The carrier oscillator type is fed through the\n * waveshaper node to create the pulse. Using different carrier oscillators\n * changes oscillator's behavior.\n */\n set carrierType(type) {\n this._triangle.type = type;\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n /**\n * Clean up method.\n */\n dispose() {\n super.dispose();\n this._triangle.dispose();\n this.width.dispose();\n this._widthGate.dispose();\n this._thresh.dispose();\n return this;\n }\n}\n//# sourceMappingURL=PulseOscillator.js.map","import { __awaiter } from \"tslib\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { noOp, readOnly } from \"../../core/util/Interface\";\nimport { Signal } from \"../../signal/Signal\";\nimport { Source } from \"../Source\";\nimport { Oscillator } from \"./Oscillator\";\nimport { generateWaveform } from \"./OscillatorInterface\";\nimport { assertRange } from \"../../core/util/Debug\";\n/**\n * FatOscillator is an array of oscillators with detune spread between the oscillators\n * @example\n * const fatOsc = new Tone.FatOscillator(\"Ab3\", \"sawtooth\", 40).toDestination().start();\n * @category Source\n */\nexport class FatOscillator extends Source {\n constructor() {\n super(optionsFromArguments(FatOscillator.getDefaults(), arguments, [\"frequency\", \"type\", \"spread\"]));\n this.name = \"FatOscillator\";\n /**\n * The array of oscillators\n */\n this._oscillators = [];\n const options = optionsFromArguments(FatOscillator.getDefaults(), arguments, [\"frequency\", \"type\", \"spread\"]);\n this.frequency = new Signal({\n context: this.context,\n units: \"frequency\",\n value: options.frequency,\n });\n this.detune = new Signal({\n context: this.context,\n units: \"cents\",\n value: options.detune,\n });\n this._spread = options.spread;\n this._type = options.type;\n this._phase = options.phase;\n this._partials = options.partials;\n this._partialCount = options.partialCount;\n // set the count initially\n this.count = options.count;\n readOnly(this, [\"frequency\", \"detune\"]);\n }\n static getDefaults() {\n return Object.assign(Oscillator.getDefaults(), {\n count: 3,\n spread: 20,\n type: \"sawtooth\",\n });\n }\n /**\n * start the oscillator\n */\n _start(time) {\n time = this.toSeconds(time);\n this._forEach(osc => osc.start(time));\n }\n /**\n * stop the oscillator\n */\n _stop(time) {\n time = this.toSeconds(time);\n this._forEach(osc => osc.stop(time));\n }\n _restart(time) {\n this._forEach(osc => osc.restart(time));\n }\n /**\n * Iterate over all of the oscillators\n */\n _forEach(iterator) {\n for (let i = 0; i < this._oscillators.length; i++) {\n iterator(this._oscillators[i], i);\n }\n }\n /**\n * The type of the oscillator\n */\n get type() {\n return this._type;\n }\n set type(type) {\n this._type = type;\n this._forEach(osc => osc.type = type);\n }\n /**\n * The detune spread between the oscillators. If \"count\" is\n * set to 3 oscillators and the \"spread\" is set to 40,\n * the three oscillators would be detuned like this: [-20, 0, 20]\n * for a total detune spread of 40 cents.\n * @example\n * const fatOsc = new Tone.FatOscillator().toDestination().start();\n * fatOsc.spread = 70;\n */\n get spread() {\n return this._spread;\n }\n set spread(spread) {\n this._spread = spread;\n if (this._oscillators.length > 1) {\n const start = -spread / 2;\n const step = spread / (this._oscillators.length - 1);\n this._forEach((osc, i) => osc.detune.value = start + step * i);\n }\n }\n /**\n * The number of detuned oscillators. Must be an integer greater than 1.\n * @example\n * const fatOsc = new Tone.FatOscillator(\"C#3\", \"sawtooth\").toDestination().start();\n * // use 4 sawtooth oscillators\n * fatOsc.count = 4;\n */\n get count() {\n return this._oscillators.length;\n }\n set count(count) {\n assertRange(count, 1);\n if (this._oscillators.length !== count) {\n // dispose the previous oscillators\n this._forEach(osc => osc.dispose());\n this._oscillators = [];\n for (let i = 0; i < count; i++) {\n const osc = new Oscillator({\n context: this.context,\n volume: -6 - count * 1.1,\n type: this._type,\n phase: this._phase + (i / count) * 360,\n partialCount: this._partialCount,\n onstop: i === 0 ? () => this.onstop(this) : noOp,\n });\n if (this.type === \"custom\") {\n osc.partials = this._partials;\n }\n this.frequency.connect(osc.frequency);\n this.detune.connect(osc.detune);\n osc.detune.overridden = false;\n osc.connect(this.output);\n this._oscillators[i] = osc;\n }\n // set the spread\n this.spread = this._spread;\n if (this.state === \"started\") {\n this._forEach(osc => osc.start());\n }\n }\n }\n get phase() {\n return this._phase;\n }\n set phase(phase) {\n this._phase = phase;\n this._forEach((osc, i) => osc.phase = this._phase + (i / this.count) * 360);\n }\n get baseType() {\n return this._oscillators[0].baseType;\n }\n set baseType(baseType) {\n this._forEach(osc => osc.baseType = baseType);\n this._type = this._oscillators[0].type;\n }\n get partials() {\n return this._oscillators[0].partials;\n }\n set partials(partials) {\n this._partials = partials;\n this._partialCount = this._partials.length;\n if (partials.length) {\n this._type = \"custom\";\n this._forEach(osc => osc.partials = partials);\n }\n }\n get partialCount() {\n return this._oscillators[0].partialCount;\n }\n set partialCount(partialCount) {\n this._partialCount = partialCount;\n this._forEach(osc => osc.partialCount = partialCount);\n this._type = this._oscillators[0].type;\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this.frequency.dispose();\n this.detune.dispose();\n this._forEach(osc => osc.dispose());\n return this;\n }\n}\n//# sourceMappingURL=FatOscillator.js.map","import { __awaiter } from \"tslib\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { Multiply } from \"../../signal/Multiply\";\nimport { Source } from \"../Source\";\nimport { Oscillator } from \"./Oscillator\";\nimport { generateWaveform } from \"./OscillatorInterface\";\nimport { PulseOscillator } from \"./PulseOscillator\";\n/**\n * PWMOscillator modulates the width of a Tone.PulseOscillator\n * at the modulationFrequency. This has the effect of continuously\n * changing the timbre of the oscillator by altering the harmonics\n * generated.\n * @example\n * return Tone.Offline(() => {\n * \tconst pwm = new Tone.PWMOscillator(60, 0.3).toDestination().start();\n * }, 0.1, 1);\n * @category Source\n */\nexport class PWMOscillator extends Source {\n constructor() {\n super(optionsFromArguments(PWMOscillator.getDefaults(), arguments, [\"frequency\", \"modulationFrequency\"]));\n this.name = \"PWMOscillator\";\n this.sourceType = \"pwm\";\n /**\n * Scale the oscillator so it doesn't go silent\n * at the extreme values.\n */\n this._scale = new Multiply({\n context: this.context,\n value: 2,\n });\n const options = optionsFromArguments(PWMOscillator.getDefaults(), arguments, [\"frequency\", \"modulationFrequency\"]);\n this._pulse = new PulseOscillator({\n context: this.context,\n frequency: options.modulationFrequency,\n });\n // change the pulse oscillator type\n this._pulse.carrierType = \"sine\";\n this.modulationFrequency = this._pulse.frequency;\n this._modulator = new Oscillator({\n context: this.context,\n detune: options.detune,\n frequency: options.frequency,\n onstop: () => this.onstop(this),\n phase: options.phase,\n });\n this.frequency = this._modulator.frequency;\n this.detune = this._modulator.detune;\n // connections\n this._modulator.chain(this._scale, this._pulse.width);\n this._pulse.connect(this.output);\n readOnly(this, [\"modulationFrequency\", \"frequency\", \"detune\"]);\n }\n static getDefaults() {\n return Object.assign(Source.getDefaults(), {\n detune: 0,\n frequency: 440,\n modulationFrequency: 0.4,\n phase: 0,\n type: \"pwm\",\n });\n }\n /**\n * start the oscillator\n */\n _start(time) {\n time = this.toSeconds(time);\n this._modulator.start(time);\n this._pulse.start(time);\n }\n /**\n * stop the oscillator\n */\n _stop(time) {\n time = this.toSeconds(time);\n this._modulator.stop(time);\n this._pulse.stop(time);\n }\n /**\n * restart the oscillator\n */\n _restart(time) {\n this._modulator.restart(time);\n this._pulse.restart(time);\n }\n /**\n * The type of the oscillator. Always returns \"pwm\".\n */\n get type() {\n return \"pwm\";\n }\n /**\n * The baseType of the oscillator. Always returns \"pwm\".\n */\n get baseType() {\n return \"pwm\";\n }\n /**\n * The partials of the waveform. Cannot set partials for this waveform type\n */\n get partials() {\n return [];\n }\n /**\n * No partials for this waveform type.\n */\n get partialCount() {\n return 0;\n }\n /**\n * The phase of the oscillator in degrees.\n */\n get phase() {\n return this._modulator.phase;\n }\n set phase(phase) {\n this._modulator.phase = phase;\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n /**\n * Clean up.\n */\n dispose() {\n super.dispose();\n this._pulse.dispose();\n this._scale.dispose();\n this._modulator.dispose();\n return this;\n }\n}\n//# sourceMappingURL=PWMOscillator.js.map","import { __awaiter } from \"tslib\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { isNumber, isString } from \"../../core/util/TypeCheck\";\nimport { Signal } from \"../../signal/Signal\";\nimport { Source } from \"../Source\";\nimport { AMOscillator } from \"./AMOscillator\";\nimport { FatOscillator } from \"./FatOscillator\";\nimport { FMOscillator } from \"./FMOscillator\";\nimport { Oscillator } from \"./Oscillator\";\nimport { generateWaveform } from \"./OscillatorInterface\";\nimport { PulseOscillator } from \"./PulseOscillator\";\nimport { PWMOscillator } from \"./PWMOscillator\";\nconst OmniOscillatorSourceMap = {\n am: AMOscillator,\n fat: FatOscillator,\n fm: FMOscillator,\n oscillator: Oscillator,\n pulse: PulseOscillator,\n pwm: PWMOscillator,\n};\n/**\n * OmniOscillator aggregates all of the oscillator types into one.\n * @example\n * return Tone.Offline(() => {\n * \tconst omniOsc = new Tone.OmniOscillator(\"C#4\", \"pwm\").toDestination().start();\n * }, 0.1, 1);\n * @category Source\n */\nexport class OmniOscillator extends Source {\n constructor() {\n super(optionsFromArguments(OmniOscillator.getDefaults(), arguments, [\"frequency\", \"type\"]));\n this.name = \"OmniOscillator\";\n const options = optionsFromArguments(OmniOscillator.getDefaults(), arguments, [\"frequency\", \"type\"]);\n this.frequency = new Signal({\n context: this.context,\n units: \"frequency\",\n value: options.frequency,\n });\n this.detune = new Signal({\n context: this.context,\n units: \"cents\",\n value: options.detune,\n });\n readOnly(this, [\"frequency\", \"detune\"]);\n // set the options\n this.set(options);\n }\n static getDefaults() {\n return Object.assign(Oscillator.getDefaults(), FMOscillator.getDefaults(), AMOscillator.getDefaults(), FatOscillator.getDefaults(), PulseOscillator.getDefaults(), PWMOscillator.getDefaults());\n }\n /**\n * start the oscillator\n */\n _start(time) {\n this._oscillator.start(time);\n }\n /**\n * start the oscillator\n */\n _stop(time) {\n this._oscillator.stop(time);\n }\n _restart(time) {\n this._oscillator.restart(time);\n return this;\n }\n /**\n * The type of the oscillator. Can be any of the basic types: sine, square, triangle, sawtooth. Or\n * prefix the basic types with \"fm\", \"am\", or \"fat\" to use the FMOscillator, AMOscillator or FatOscillator\n * types. The oscillator could also be set to \"pwm\" or \"pulse\". All of the parameters of the\n * oscillator's class are accessible when the oscillator is set to that type, but throws an error\n * when it's not.\n * @example\n * const omniOsc = new Tone.OmniOscillator().toDestination().start();\n * omniOsc.type = \"pwm\";\n * // modulationFrequency is parameter which is available\n * // only when the type is \"pwm\".\n * omniOsc.modulationFrequency.value = 0.5;\n */\n get type() {\n let prefix = \"\";\n if ([\"am\", \"fm\", \"fat\"].some(p => this._sourceType === p)) {\n prefix = this._sourceType;\n }\n return prefix + this._oscillator.type;\n }\n set type(type) {\n if (type.substr(0, 2) === \"fm\") {\n this._createNewOscillator(\"fm\");\n this._oscillator = this._oscillator;\n this._oscillator.type = type.substr(2);\n }\n else if (type.substr(0, 2) === \"am\") {\n this._createNewOscillator(\"am\");\n this._oscillator = this._oscillator;\n this._oscillator.type = type.substr(2);\n }\n else if (type.substr(0, 3) === \"fat\") {\n this._createNewOscillator(\"fat\");\n this._oscillator = this._oscillator;\n this._oscillator.type = type.substr(3);\n }\n else if (type === \"pwm\") {\n this._createNewOscillator(\"pwm\");\n this._oscillator = this._oscillator;\n }\n else if (type === \"pulse\") {\n this._createNewOscillator(\"pulse\");\n }\n else {\n this._createNewOscillator(\"oscillator\");\n this._oscillator = this._oscillator;\n this._oscillator.type = type;\n }\n }\n /**\n * The value is an empty array when the type is not \"custom\".\n * This is not available on \"pwm\" and \"pulse\" oscillator types.\n * See [[Oscillator.partials]]\n */\n get partials() {\n return this._oscillator.partials;\n }\n set partials(partials) {\n if (!this._getOscType(this._oscillator, \"pulse\") && !this._getOscType(this._oscillator, \"pwm\")) {\n this._oscillator.partials = partials;\n }\n }\n get partialCount() {\n return this._oscillator.partialCount;\n }\n set partialCount(partialCount) {\n if (!this._getOscType(this._oscillator, \"pulse\") && !this._getOscType(this._oscillator, \"pwm\")) {\n this._oscillator.partialCount = partialCount;\n }\n }\n set(props) {\n // make sure the type is set first\n if (Reflect.has(props, \"type\") && props.type) {\n this.type = props.type;\n }\n // then set the rest\n super.set(props);\n return this;\n }\n /**\n * connect the oscillator to the frequency and detune signals\n */\n _createNewOscillator(oscType) {\n if (oscType !== this._sourceType) {\n this._sourceType = oscType;\n const OscConstructor = OmniOscillatorSourceMap[oscType];\n // short delay to avoid clicks on the change\n const now = this.now();\n if (this._oscillator) {\n const oldOsc = this._oscillator;\n oldOsc.stop(now);\n // dispose the old one\n this.context.setTimeout(() => oldOsc.dispose(), this.blockTime);\n }\n this._oscillator = new OscConstructor({\n context: this.context,\n });\n this.frequency.connect(this._oscillator.frequency);\n this.detune.connect(this._oscillator.detune);\n this._oscillator.connect(this.output);\n this._oscillator.onstop = () => this.onstop(this);\n if (this.state === \"started\") {\n this._oscillator.start(now);\n }\n }\n }\n get phase() {\n return this._oscillator.phase;\n }\n set phase(phase) {\n this._oscillator.phase = phase;\n }\n /**\n * The source type of the oscillator.\n * @example\n * const omniOsc = new Tone.OmniOscillator(440, \"fmsquare\");\n * console.log(omniOsc.sourceType); // 'fm'\n */\n get sourceType() {\n return this._sourceType;\n }\n set sourceType(sType) {\n // the basetype defaults to sine\n let baseType = \"sine\";\n if (this._oscillator.type !== \"pwm\" && this._oscillator.type !== \"pulse\") {\n baseType = this._oscillator.type;\n }\n // set the type\n if (sType === \"fm\") {\n this.type = \"fm\" + baseType;\n }\n else if (sType === \"am\") {\n this.type = \"am\" + baseType;\n }\n else if (sType === \"fat\") {\n this.type = \"fat\" + baseType;\n }\n else if (sType === \"oscillator\") {\n this.type = baseType;\n }\n else if (sType === \"pulse\") {\n this.type = \"pulse\";\n }\n else if (sType === \"pwm\") {\n this.type = \"pwm\";\n }\n }\n _getOscType(osc, sourceType) {\n return osc instanceof OmniOscillatorSourceMap[sourceType];\n }\n /**\n * The base type of the oscillator. See [[Oscillator.baseType]]\n * @example\n * const omniOsc = new Tone.OmniOscillator(440, \"fmsquare4\");\n * console.log(omniOsc.sourceType, omniOsc.baseType, omniOsc.partialCount);\n */\n get baseType() {\n return this._oscillator.baseType;\n }\n set baseType(baseType) {\n if (!this._getOscType(this._oscillator, \"pulse\") &&\n !this._getOscType(this._oscillator, \"pwm\") &&\n baseType !== \"pulse\" && baseType !== \"pwm\") {\n this._oscillator.baseType = baseType;\n }\n }\n /**\n * The width of the oscillator when sourceType === \"pulse\".\n * See [[PWMOscillator.width]]\n */\n get width() {\n if (this._getOscType(this._oscillator, \"pulse\")) {\n return this._oscillator.width;\n }\n else {\n return undefined;\n }\n }\n /**\n * The number of detuned oscillators when sourceType === \"fat\".\n * See [[FatOscillator.count]]\n */\n get count() {\n if (this._getOscType(this._oscillator, \"fat\")) {\n return this._oscillator.count;\n }\n else {\n return undefined;\n }\n }\n set count(count) {\n if (this._getOscType(this._oscillator, \"fat\") && isNumber(count)) {\n this._oscillator.count = count;\n }\n }\n /**\n * The detune spread between the oscillators when sourceType === \"fat\".\n * See [[FatOscillator.count]]\n */\n get spread() {\n if (this._getOscType(this._oscillator, \"fat\")) {\n return this._oscillator.spread;\n }\n else {\n return undefined;\n }\n }\n set spread(spread) {\n if (this._getOscType(this._oscillator, \"fat\") && isNumber(spread)) {\n this._oscillator.spread = spread;\n }\n }\n /**\n * The type of the modulator oscillator. Only if the oscillator is set to \"am\" or \"fm\" types.\n * See [[AMOscillator]] or [[FMOscillator]]\n */\n get modulationType() {\n if (this._getOscType(this._oscillator, \"fm\") || this._getOscType(this._oscillator, \"am\")) {\n return this._oscillator.modulationType;\n }\n else {\n return undefined;\n }\n }\n set modulationType(mType) {\n if ((this._getOscType(this._oscillator, \"fm\") || this._getOscType(this._oscillator, \"am\")) && isString(mType)) {\n this._oscillator.modulationType = mType;\n }\n }\n /**\n * The modulation index when the sourceType === \"fm\"\n * See [[FMOscillator]].\n */\n get modulationIndex() {\n if (this._getOscType(this._oscillator, \"fm\")) {\n return this._oscillator.modulationIndex;\n }\n else {\n return undefined;\n }\n }\n /**\n * Harmonicity is the frequency ratio between the carrier and the modulator oscillators.\n * See [[AMOscillator]] or [[FMOscillator]]\n */\n get harmonicity() {\n if (this._getOscType(this._oscillator, \"fm\") || this._getOscType(this._oscillator, \"am\")) {\n return this._oscillator.harmonicity;\n }\n else {\n return undefined;\n }\n }\n /**\n * The modulationFrequency Signal of the oscillator when sourceType === \"pwm\"\n * see [[PWMOscillator]]\n * @min 0.1\n * @max 5\n */\n get modulationFrequency() {\n if (this._getOscType(this._oscillator, \"pwm\")) {\n return this._oscillator.modulationFrequency;\n }\n else {\n return undefined;\n }\n }\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n return generateWaveform(this, length);\n });\n }\n dispose() {\n super.dispose();\n this.detune.dispose();\n this.frequency.dispose();\n this._oscillator.dispose();\n return this;\n }\n}\n//# sourceMappingURL=OmniOscillator.js.map","import { assertRange } from \"./Debug\";\n/**\n * Assert that the number is in the given range.\n */\nexport function range(min, max = Infinity) {\n const valueMap = new WeakMap();\n return function (target, propertyKey) {\n Reflect.defineProperty(target, propertyKey, {\n configurable: true,\n enumerable: true,\n get: function () {\n return valueMap.get(this);\n },\n set: function (newValue) {\n assertRange(newValue, min, max);\n valueMap.set(this, newValue);\n }\n });\n };\n}\n/**\n * Convert the time to seconds and assert that the time is in between the two\n * values when being set.\n */\nexport function timeRange(min, max = Infinity) {\n const valueMap = new WeakMap();\n return function (target, propertyKey) {\n Reflect.defineProperty(target, propertyKey, {\n configurable: true,\n enumerable: true,\n get: function () {\n return valueMap.get(this);\n },\n set: function (newValue) {\n assertRange(this.toSeconds(newValue), min, max);\n valueMap.set(this, newValue);\n }\n });\n };\n}\n//# sourceMappingURL=Decorator.js.map","import { __awaiter, __decorate } from \"tslib\";\nimport { ToneAudioBuffer } from \"../../core/context/ToneAudioBuffer\";\nimport { defaultArg, optionsFromArguments } from \"../../core/util/Defaults\";\nimport { noOp } from \"../../core/util/Interface\";\nimport { isUndef } from \"../../core/util/TypeCheck\";\nimport { Source } from \"../Source\";\nimport { ToneBufferSource } from \"./ToneBufferSource\";\nimport { assertRange } from \"../../core/util/Debug\";\nimport { timeRange } from \"../../core/util/Decorator\";\n/**\n * Player is an audio file player with start, loop, and stop functions.\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/gong_1.mp3\").toDestination();\n * // play as soon as the buffer is loaded\n * player.autostart = true;\n * @category Source\n */\nexport class Player extends Source {\n constructor() {\n super(optionsFromArguments(Player.getDefaults(), arguments, [\"url\", \"onload\"]));\n this.name = \"Player\";\n /**\n * All of the active buffer source nodes\n */\n this._activeSources = new Set();\n const options = optionsFromArguments(Player.getDefaults(), arguments, [\"url\", \"onload\"]);\n this._buffer = new ToneAudioBuffer({\n onload: this._onload.bind(this, options.onload),\n onerror: options.onerror,\n reverse: options.reverse,\n url: options.url,\n });\n this.autostart = options.autostart;\n this._loop = options.loop;\n this._loopStart = options.loopStart;\n this._loopEnd = options.loopEnd;\n this._playbackRate = options.playbackRate;\n this.fadeIn = options.fadeIn;\n this.fadeOut = options.fadeOut;\n }\n static getDefaults() {\n return Object.assign(Source.getDefaults(), {\n autostart: false,\n fadeIn: 0,\n fadeOut: 0,\n loop: false,\n loopEnd: 0,\n loopStart: 0,\n onload: noOp,\n onerror: noOp,\n playbackRate: 1,\n reverse: false,\n });\n }\n /**\n * Load the audio file as an audio buffer.\n * Decodes the audio asynchronously and invokes\n * the callback once the audio buffer loads.\n * Note: this does not need to be called if a url\n * was passed in to the constructor. Only use this\n * if you want to manually load a new url.\n * @param url The url of the buffer to load. Filetype support depends on the browser.\n */\n load(url) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._buffer.load(url);\n this._onload();\n return this;\n });\n }\n /**\n * Internal callback when the buffer is loaded.\n */\n _onload(callback = noOp) {\n callback();\n if (this.autostart) {\n this.start();\n }\n }\n /**\n * Internal callback when the buffer is done playing.\n */\n _onSourceEnd(source) {\n // invoke the onstop function\n this.onstop(this);\n // delete the source from the active sources\n this._activeSources.delete(source);\n if (this._activeSources.size === 0 && !this._synced &&\n this._state.getValueAtTime(this.now()) === \"started\") {\n // remove the 'implicitEnd' event and replace with an explicit end\n this._state.cancel(this.now());\n this._state.setStateAtTime(\"stopped\", this.now());\n }\n }\n /**\n * Play the buffer at the given startTime. Optionally add an offset\n * and/or duration which will play the buffer from a position\n * within the buffer for the given duration.\n *\n * @param time When the player should start.\n * @param offset The offset from the beginning of the sample to start at.\n * @param duration How long the sample should play. If no duration is given, it will default to the full length of the sample (minus any offset)\n */\n start(time, offset, duration) {\n super.start(time, offset, duration);\n return this;\n }\n /**\n * Internal start method\n */\n _start(startTime, offset, duration) {\n // if it's a loop the default offset is the loopStart point\n if (this._loop) {\n offset = defaultArg(offset, this._loopStart);\n }\n else {\n // otherwise the default offset is 0\n offset = defaultArg(offset, 0);\n }\n // compute the values in seconds\n const computedOffset = this.toSeconds(offset);\n // compute the duration which is either the passed in duration of the buffer.duration - offset\n const origDuration = duration;\n duration = defaultArg(duration, Math.max(this._buffer.duration - computedOffset, 0));\n let computedDuration = this.toSeconds(duration);\n // scale it by the playback rate\n computedDuration = computedDuration / this._playbackRate;\n // get the start time\n startTime = this.toSeconds(startTime);\n // make the source\n const source = new ToneBufferSource({\n url: this._buffer,\n context: this.context,\n fadeIn: this.fadeIn,\n fadeOut: this.fadeOut,\n loop: this._loop,\n loopEnd: this._loopEnd,\n loopStart: this._loopStart,\n onended: this._onSourceEnd.bind(this),\n playbackRate: this._playbackRate,\n }).connect(this.output);\n // set the looping properties\n if (!this._loop && !this._synced) {\n // cancel the previous stop\n this._state.cancel(startTime + computedDuration);\n // if it's not looping, set the state change at the end of the sample\n this._state.setStateAtTime(\"stopped\", startTime + computedDuration, {\n implicitEnd: true,\n });\n }\n // add it to the array of active sources\n this._activeSources.add(source);\n // start it\n if (this._loop && isUndef(origDuration)) {\n source.start(startTime, computedOffset);\n }\n else {\n // subtract the fade out time\n source.start(startTime, computedOffset, computedDuration - this.toSeconds(this.fadeOut));\n }\n }\n /**\n * Stop playback.\n */\n _stop(time) {\n const computedTime = this.toSeconds(time);\n this._activeSources.forEach(source => source.stop(computedTime));\n }\n /**\n * Stop and then restart the player from the beginning (or offset)\n * @param time When the player should start.\n * @param offset The offset from the beginning of the sample to start at.\n * @param duration How long the sample should play. If no duration is given,\n * \t\t\t\t\tit will default to the full length of the sample (minus any offset)\n */\n restart(time, offset, duration) {\n super.restart(time, offset, duration);\n return this;\n }\n _restart(time, offset, duration) {\n this._stop(time);\n this._start(time, offset, duration);\n }\n /**\n * Seek to a specific time in the player's buffer. If the\n * source is no longer playing at that time, it will stop.\n * @param offset The time to seek to.\n * @param when The time for the seek event to occur.\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/gurgling_theremin_1.mp3\", () => {\n * \tplayer.start();\n * \t// seek to the offset in 1 second from now\n * \tplayer.seek(0.4, \"+1\");\n * }).toDestination();\n */\n seek(offset, when) {\n const computedTime = this.toSeconds(when);\n if (this._state.getValueAtTime(computedTime) === \"started\") {\n const computedOffset = this.toSeconds(offset);\n // if it's currently playing, stop it\n this._stop(computedTime);\n // restart it at the given time\n this._start(computedTime, computedOffset);\n }\n return this;\n }\n /**\n * Set the loop start and end. Will only loop if loop is set to true.\n * @param loopStart The loop start time\n * @param loopEnd The loop end time\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/malevoices_aa2_F3.mp3\").toDestination();\n * // loop between the given points\n * player.setLoopPoints(0.2, 0.3);\n * player.loop = true;\n * player.autostart = true;\n */\n setLoopPoints(loopStart, loopEnd) {\n this.loopStart = loopStart;\n this.loopEnd = loopEnd;\n return this;\n }\n /**\n * If loop is true, the loop will start at this position.\n */\n get loopStart() {\n return this._loopStart;\n }\n set loopStart(loopStart) {\n this._loopStart = loopStart;\n if (this.buffer.loaded) {\n assertRange(this.toSeconds(loopStart), 0, this.buffer.duration);\n }\n // get the current source\n this._activeSources.forEach(source => {\n source.loopStart = loopStart;\n });\n }\n /**\n * If loop is true, the loop will end at this position.\n */\n get loopEnd() {\n return this._loopEnd;\n }\n set loopEnd(loopEnd) {\n this._loopEnd = loopEnd;\n if (this.buffer.loaded) {\n assertRange(this.toSeconds(loopEnd), 0, this.buffer.duration);\n }\n // get the current source\n this._activeSources.forEach(source => {\n source.loopEnd = loopEnd;\n });\n }\n /**\n * The audio buffer belonging to the player.\n */\n get buffer() {\n return this._buffer;\n }\n set buffer(buffer) {\n this._buffer.set(buffer);\n }\n /**\n * If the buffer should loop once it's over.\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/drum-samples/breakbeat.mp3\").toDestination();\n * player.loop = true;\n * player.autostart = true;\n */\n get loop() {\n return this._loop;\n }\n set loop(loop) {\n // if no change, do nothing\n if (this._loop === loop) {\n return;\n }\n this._loop = loop;\n // set the loop of all of the sources\n this._activeSources.forEach(source => {\n source.loop = loop;\n });\n if (loop) {\n // remove the next stopEvent\n const stopEvent = this._state.getNextState(\"stopped\", this.now());\n if (stopEvent) {\n this._state.cancel(stopEvent.time);\n }\n }\n }\n /**\n * Normal speed is 1. The pitch will change with the playback rate.\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/femalevoices_aa2_A5.mp3\").toDestination();\n * // play at 1/4 speed\n * player.playbackRate = 0.25;\n * // play as soon as the buffer is loaded\n * player.autostart = true;\n */\n get playbackRate() {\n return this._playbackRate;\n }\n set playbackRate(rate) {\n this._playbackRate = rate;\n const now = this.now();\n // cancel the stop event since it's at a different time now\n const stopEvent = this._state.getNextState(\"stopped\", now);\n if (stopEvent && stopEvent.implicitEnd) {\n this._state.cancel(stopEvent.time);\n this._activeSources.forEach(source => source.cancelStop());\n }\n // set all the sources\n this._activeSources.forEach(source => {\n source.playbackRate.setValueAtTime(rate, now);\n });\n }\n /**\n * If the buffer should be reversed\n * @example\n * const player = new Tone.Player(\"https://tonejs.github.io/audio/berklee/chime_1.mp3\").toDestination();\n * player.autostart = true;\n * player.reverse = true;\n */\n get reverse() {\n return this._buffer.reverse;\n }\n set reverse(rev) {\n this._buffer.reverse = rev;\n }\n /**\n * If the buffer is loaded\n */\n get loaded() {\n return this._buffer.loaded;\n }\n dispose() {\n super.dispose();\n // disconnect all of the players\n this._activeSources.forEach(source => source.dispose());\n this._activeSources.clear();\n this._buffer.dispose();\n return this;\n }\n}\n__decorate([\n timeRange(0)\n], Player.prototype, \"fadeIn\", void 0);\n__decorate([\n timeRange(0)\n], Player.prototype, \"fadeOut\", void 0);\n//# sourceMappingURL=Player.js.map","import { __awaiter, __decorate } from \"tslib\";\nimport { ToneAudioNode } from \"../../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { isArray, isObject, isString } from \"../../core/util/TypeCheck\";\nimport { connectSignal, Signal } from \"../../signal/Signal\";\nimport { OfflineContext } from \"../../core/context/OfflineContext\";\nimport { assert } from \"../../core/util/Debug\";\nimport { range, timeRange } from \"../../core/util/Decorator\";\n/**\n * Envelope is an [ADSR](https://en.wikipedia.org/wiki/Synthesizer#ADSR_envelope)\n * envelope generator. Envelope outputs a signal which\n * can be connected to an AudioParam or Tone.Signal.\n * ```\n * /\\\n * / \\\n * / \\\n * / \\\n * / \\___________\n * / \\\n * / \\\n * / \\\n * / \\\n * ```\n * @example\n * return Tone.Offline(() => {\n * \tconst env = new Tone.Envelope({\n * \t\tattack: 0.1,\n * \t\tdecay: 0.2,\n * \t\tsustain: 0.5,\n * \t\trelease: 0.8,\n * \t}).toDestination();\n * \tenv.triggerAttackRelease(0.5);\n * }, 1.5, 1);\n * @category Component\n */\nexport class Envelope extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Envelope.getDefaults(), arguments, [\"attack\", \"decay\", \"sustain\", \"release\"]));\n this.name = \"Envelope\";\n /**\n * the signal which is output.\n */\n this._sig = new Signal({\n context: this.context,\n value: 0,\n });\n /**\n * The output signal of the envelope\n */\n this.output = this._sig;\n /**\n * Envelope has no input\n */\n this.input = undefined;\n const options = optionsFromArguments(Envelope.getDefaults(), arguments, [\"attack\", \"decay\", \"sustain\", \"release\"]);\n this.attack = options.attack;\n this.decay = options.decay;\n this.sustain = options.sustain;\n this.release = options.release;\n this.attackCurve = options.attackCurve;\n this.releaseCurve = options.releaseCurve;\n this.decayCurve = options.decayCurve;\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n attack: 0.01,\n attackCurve: \"linear\",\n decay: 0.1,\n decayCurve: \"exponential\",\n release: 1,\n releaseCurve: \"exponential\",\n sustain: 0.5,\n });\n }\n /**\n * Read the current value of the envelope. Useful for\n * synchronizing visual output to the envelope.\n */\n get value() {\n return this.getValueAtTime(this.now());\n }\n /**\n * Get the curve\n * @param curve\n * @param direction In/Out\n * @return The curve name\n */\n _getCurve(curve, direction) {\n if (isString(curve)) {\n return curve;\n }\n else {\n // look up the name in the curves array\n let curveName;\n for (curveName in EnvelopeCurves) {\n if (EnvelopeCurves[curveName][direction] === curve) {\n return curveName;\n }\n }\n // return the custom curve\n return curve;\n }\n }\n /**\n * Assign a the curve to the given name using the direction\n * @param name\n * @param direction In/Out\n * @param curve\n */\n _setCurve(name, direction, curve) {\n // check if it's a valid type\n if (isString(curve) && Reflect.has(EnvelopeCurves, curve)) {\n const curveDef = EnvelopeCurves[curve];\n if (isObject(curveDef)) {\n if (name !== \"_decayCurve\") {\n this[name] = curveDef[direction];\n }\n }\n else {\n this[name] = curveDef;\n }\n }\n else if (isArray(curve) && name !== \"_decayCurve\") {\n this[name] = curve;\n }\n else {\n throw new Error(\"Envelope: invalid curve: \" + curve);\n }\n }\n /**\n * The shape of the attack.\n * Can be any of these strings:\n * * \"linear\"\n * * \"exponential\"\n * * \"sine\"\n * * \"cosine\"\n * * \"bounce\"\n * * \"ripple\"\n * * \"step\"\n *\n * Can also be an array which describes the curve. Values\n * in the array are evenly subdivided and linearly\n * interpolated over the duration of the attack.\n * @example\n * return Tone.Offline(() => {\n * \tconst env = new Tone.Envelope(0.4).toDestination();\n * \tenv.attackCurve = \"linear\";\n * \tenv.triggerAttack();\n * }, 1, 1);\n */\n get attackCurve() {\n return this._getCurve(this._attackCurve, \"In\");\n }\n set attackCurve(curve) {\n this._setCurve(\"_attackCurve\", \"In\", curve);\n }\n /**\n * The shape of the release. See the attack curve types.\n * @example\n * return Tone.Offline(() => {\n * \tconst env = new Tone.Envelope({\n * \t\trelease: 0.8\n * \t}).toDestination();\n * \tenv.triggerAttack();\n * \t// release curve could also be defined by an array\n * \tenv.releaseCurve = [1, 0.3, 0.4, 0.2, 0.7, 0];\n * \tenv.triggerRelease(0.2);\n * }, 1, 1);\n */\n get releaseCurve() {\n return this._getCurve(this._releaseCurve, \"Out\");\n }\n set releaseCurve(curve) {\n this._setCurve(\"_releaseCurve\", \"Out\", curve);\n }\n /**\n * The shape of the decay either \"linear\" or \"exponential\"\n * @example\n * return Tone.Offline(() => {\n * \tconst env = new Tone.Envelope({\n * \t\tsustain: 0.1,\n * \t\tdecay: 0.5\n * \t}).toDestination();\n * \tenv.decayCurve = \"linear\";\n * \tenv.triggerAttack();\n * }, 1, 1);\n */\n get decayCurve() {\n return this._decayCurve;\n }\n set decayCurve(curve) {\n assert([\"linear\", \"exponential\"].some(c => c === curve), `Invalid envelope curve: ${curve}`);\n this._decayCurve = curve;\n }\n /**\n * Trigger the attack/decay portion of the ADSR envelope.\n * @param time When the attack should start.\n * @param velocity The velocity of the envelope scales the vales.\n * number between 0-1\n * @example\n * const env = new Tone.AmplitudeEnvelope().toDestination();\n * const osc = new Tone.Oscillator().connect(env).start();\n * // trigger the attack 0.5 seconds from now with a velocity of 0.2\n * env.triggerAttack(\"+0.5\", 0.2);\n */\n triggerAttack(time, velocity = 1) {\n this.log(\"triggerAttack\", time, velocity);\n time = this.toSeconds(time);\n const originalAttack = this.toSeconds(this.attack);\n let attack = originalAttack;\n const decay = this.toSeconds(this.decay);\n // check if it's not a complete attack\n const currentValue = this.getValueAtTime(time);\n if (currentValue > 0) {\n // subtract the current value from the attack time\n const attackRate = 1 / attack;\n const remainingDistance = 1 - currentValue;\n // the attack is now the remaining time\n attack = remainingDistance / attackRate;\n }\n // attack\n if (attack < this.sampleTime) {\n this._sig.cancelScheduledValues(time);\n // case where the attack time is 0 should set instantly\n this._sig.setValueAtTime(velocity, time);\n }\n else if (this._attackCurve === \"linear\") {\n this._sig.linearRampTo(velocity, attack, time);\n }\n else if (this._attackCurve === \"exponential\") {\n this._sig.targetRampTo(velocity, attack, time);\n }\n else {\n this._sig.cancelAndHoldAtTime(time);\n let curve = this._attackCurve;\n // find the starting position in the curve\n for (let i = 1; i < curve.length; i++) {\n // the starting index is between the two values\n if (curve[i - 1] <= currentValue && currentValue <= curve[i]) {\n curve = this._attackCurve.slice(i);\n // the first index is the current value\n curve[0] = currentValue;\n break;\n }\n }\n this._sig.setValueCurveAtTime(curve, time, attack, velocity);\n }\n // decay\n if (decay && this.sustain < 1) {\n const decayValue = velocity * this.sustain;\n const decayStart = time + attack;\n this.log(\"decay\", decayStart);\n if (this._decayCurve === \"linear\") {\n this._sig.linearRampToValueAtTime(decayValue, decay + decayStart);\n }\n else {\n this._sig.exponentialApproachValueAtTime(decayValue, decayStart, decay);\n }\n }\n return this;\n }\n /**\n * Triggers the release of the envelope.\n * @param time When the release portion of the envelope should start.\n * @example\n * const env = new Tone.AmplitudeEnvelope().toDestination();\n * const osc = new Tone.Oscillator({\n * \ttype: \"sawtooth\"\n * }).connect(env).start();\n * env.triggerAttack();\n * // trigger the release half a second after the attack\n * env.triggerRelease(\"+0.5\");\n */\n triggerRelease(time) {\n this.log(\"triggerRelease\", time);\n time = this.toSeconds(time);\n const currentValue = this.getValueAtTime(time);\n if (currentValue > 0) {\n const release = this.toSeconds(this.release);\n if (release < this.sampleTime) {\n this._sig.setValueAtTime(0, time);\n }\n else if (this._releaseCurve === \"linear\") {\n this._sig.linearRampTo(0, release, time);\n }\n else if (this._releaseCurve === \"exponential\") {\n this._sig.targetRampTo(0, release, time);\n }\n else {\n assert(isArray(this._releaseCurve), \"releaseCurve must be either 'linear', 'exponential' or an array\");\n this._sig.cancelAndHoldAtTime(time);\n this._sig.setValueCurveAtTime(this._releaseCurve, time, release, currentValue);\n }\n }\n return this;\n }\n /**\n * Get the scheduled value at the given time. This will\n * return the unconverted (raw) value.\n * @example\n * const env = new Tone.Envelope(0.5, 1, 0.4, 2);\n * env.triggerAttackRelease(2);\n * setInterval(() => console.log(env.getValueAtTime(Tone.now())), 100);\n */\n getValueAtTime(time) {\n return this._sig.getValueAtTime(time);\n }\n /**\n * triggerAttackRelease is shorthand for triggerAttack, then waiting\n * some duration, then triggerRelease.\n * @param duration The duration of the sustain.\n * @param time When the attack should be triggered.\n * @param velocity The velocity of the envelope.\n * @example\n * const env = new Tone.AmplitudeEnvelope().toDestination();\n * const osc = new Tone.Oscillator().connect(env).start();\n * // trigger the release 0.5 seconds after the attack\n * env.triggerAttackRelease(0.5);\n */\n triggerAttackRelease(duration, time, velocity = 1) {\n time = this.toSeconds(time);\n this.triggerAttack(time, velocity);\n this.triggerRelease(time + this.toSeconds(duration));\n return this;\n }\n /**\n * Cancels all scheduled envelope changes after the given time.\n */\n cancel(after) {\n this._sig.cancelScheduledValues(this.toSeconds(after));\n return this;\n }\n /**\n * Connect the envelope to a destination node.\n */\n connect(destination, outputNumber = 0, inputNumber = 0) {\n connectSignal(this, destination, outputNumber, inputNumber);\n return this;\n }\n /**\n * Render the envelope curve to an array of the given length.\n * Good for visualizing the envelope curve. Rescales the duration of the\n * envelope to fit the length.\n */\n asArray(length = 1024) {\n return __awaiter(this, void 0, void 0, function* () {\n const duration = length / this.context.sampleRate;\n const context = new OfflineContext(1, duration, this.context.sampleRate);\n // normalize the ADSR for the given duration with 20% sustain time\n const attackPortion = this.toSeconds(this.attack) + this.toSeconds(this.decay);\n const envelopeDuration = attackPortion + this.toSeconds(this.release);\n const sustainTime = envelopeDuration * 0.1;\n const totalDuration = envelopeDuration + sustainTime;\n // @ts-ignore\n const clone = new this.constructor(Object.assign(this.get(), {\n attack: duration * this.toSeconds(this.attack) / totalDuration,\n decay: duration * this.toSeconds(this.decay) / totalDuration,\n release: duration * this.toSeconds(this.release) / totalDuration,\n context\n }));\n clone._sig.toDestination();\n clone.triggerAttackRelease(duration * (attackPortion + sustainTime) / totalDuration, 0);\n const buffer = yield context.render();\n return buffer.getChannelData(0);\n });\n }\n dispose() {\n super.dispose();\n this._sig.dispose();\n return this;\n }\n}\n__decorate([\n timeRange(0)\n], Envelope.prototype, \"attack\", void 0);\n__decorate([\n timeRange(0)\n], Envelope.prototype, \"decay\", void 0);\n__decorate([\n range(0, 1)\n], Envelope.prototype, \"sustain\", void 0);\n__decorate([\n timeRange(0)\n], Envelope.prototype, \"release\", void 0);\n/**\n * Generate some complex envelope curves.\n */\nconst EnvelopeCurves = (() => {\n const curveLen = 128;\n let i;\n let k;\n // cosine curve\n const cosineCurve = [];\n for (i = 0; i < curveLen; i++) {\n cosineCurve[i] = Math.sin((i / (curveLen - 1)) * (Math.PI / 2));\n }\n // ripple curve\n const rippleCurve = [];\n const rippleCurveFreq = 6.4;\n for (i = 0; i < curveLen - 1; i++) {\n k = (i / (curveLen - 1));\n const sineWave = Math.sin(k * (Math.PI * 2) * rippleCurveFreq - Math.PI / 2) + 1;\n rippleCurve[i] = sineWave / 10 + k * 0.83;\n }\n rippleCurve[curveLen - 1] = 1;\n // stairs curve\n const stairsCurve = [];\n const steps = 5;\n for (i = 0; i < curveLen; i++) {\n stairsCurve[i] = Math.ceil((i / (curveLen - 1)) * steps) / steps;\n }\n // in-out easing curve\n const sineCurve = [];\n for (i = 0; i < curveLen; i++) {\n k = i / (curveLen - 1);\n sineCurve[i] = 0.5 * (1 - Math.cos(Math.PI * k));\n }\n // a bounce curve\n const bounceCurve = [];\n for (i = 0; i < curveLen; i++) {\n k = i / (curveLen - 1);\n const freq = Math.pow(k, 3) * 4 + 0.2;\n const val = Math.cos(freq * Math.PI * 2 * k);\n bounceCurve[i] = Math.abs(val * (1 - k));\n }\n /**\n * Invert a value curve to make it work for the release\n */\n function invertCurve(curve) {\n const out = new Array(curve.length);\n for (let j = 0; j < curve.length; j++) {\n out[j] = 1 - curve[j];\n }\n return out;\n }\n /**\n * reverse the curve\n */\n function reverseCurve(curve) {\n return curve.slice(0).reverse();\n }\n /**\n * attack and release curve arrays\n */\n return {\n bounce: {\n In: invertCurve(bounceCurve),\n Out: bounceCurve,\n },\n cosine: {\n In: cosineCurve,\n Out: reverseCurve(cosineCurve),\n },\n exponential: \"exponential\",\n linear: \"linear\",\n ripple: {\n In: rippleCurve,\n Out: invertCurve(rippleCurve),\n },\n sine: {\n In: sineCurve,\n Out: invertCurve(sineCurve),\n },\n step: {\n In: stairsCurve,\n Out: invertCurve(stairsCurve),\n },\n };\n})();\n//# sourceMappingURL=Envelope.js.map","import { Volume } from \"../component/channel/Volume\";\nimport { ToneAudioNode } from \"../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../core/util/Defaults\";\nimport { readOnly } from \"../core/util/Interface\";\n/**\n * Base-class for all instruments\n */\nexport class Instrument extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Instrument.getDefaults(), arguments));\n /**\n * Keep track of all events scheduled to the transport\n * when the instrument is 'synced'\n */\n this._scheduledEvents = [];\n /**\n * If the instrument is currently synced\n */\n this._synced = false;\n this._original_triggerAttack = this.triggerAttack;\n this._original_triggerRelease = this.triggerRelease;\n const options = optionsFromArguments(Instrument.getDefaults(), arguments);\n this._volume = this.output = new Volume({\n context: this.context,\n volume: options.volume,\n });\n this.volume = this._volume.volume;\n readOnly(this, \"volume\");\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n volume: 0,\n });\n }\n /**\n * Sync the instrument to the Transport. All subsequent calls of\n * [[triggerAttack]] and [[triggerRelease]] will be scheduled along the transport.\n * @example\n * const fmSynth = new Tone.FMSynth().toDestination();\n * fmSynth.volume.value = -6;\n * fmSynth.sync();\n * // schedule 3 notes when the transport first starts\n * fmSynth.triggerAttackRelease(\"C4\", \"8n\", 0);\n * fmSynth.triggerAttackRelease(\"E4\", \"8n\", \"8n\");\n * fmSynth.triggerAttackRelease(\"G4\", \"8n\", \"4n\");\n * // start the transport to hear the notes\n * Tone.Transport.start();\n */\n sync() {\n if (this._syncState()) {\n this._syncMethod(\"triggerAttack\", 1);\n this._syncMethod(\"triggerRelease\", 0);\n }\n return this;\n }\n /**\n * set _sync\n */\n _syncState() {\n let changed = false;\n if (!this._synced) {\n this._synced = true;\n changed = true;\n }\n return changed;\n }\n /**\n * Wrap the given method so that it can be synchronized\n * @param method Which method to wrap and sync\n * @param timePosition What position the time argument appears in\n */\n _syncMethod(method, timePosition) {\n const originalMethod = this[\"_original_\" + method] = this[method];\n this[method] = (...args) => {\n const time = args[timePosition];\n const id = this.context.transport.schedule((t) => {\n args[timePosition] = t;\n originalMethod.apply(this, args);\n }, time);\n this._scheduledEvents.push(id);\n };\n }\n /**\n * Unsync the instrument from the Transport\n */\n unsync() {\n this._scheduledEvents.forEach(id => this.context.transport.clear(id));\n this._scheduledEvents = [];\n if (this._synced) {\n this._synced = false;\n this.triggerAttack = this._original_triggerAttack;\n this.triggerRelease = this._original_triggerRelease;\n }\n return this;\n }\n /**\n * Trigger the attack and then the release after the duration.\n * @param note The note to trigger.\n * @param duration How long the note should be held for before\n * triggering the release. This value must be greater than 0.\n * @param time When the note should be triggered.\n * @param velocity The velocity the note should be triggered at.\n * @example\n * const synth = new Tone.Synth().toDestination();\n * // trigger \"C4\" for the duration of an 8th note\n * synth.triggerAttackRelease(\"C4\", \"8n\");\n */\n triggerAttackRelease(note, duration, time, velocity) {\n const computedTime = this.toSeconds(time);\n const computedDuration = this.toSeconds(duration);\n this.triggerAttack(note, computedTime, velocity);\n this.triggerRelease(computedTime + computedDuration);\n return this;\n }\n /**\n * clean up\n * @returns {Instrument} this\n */\n dispose() {\n super.dispose();\n this._volume.dispose();\n this.unsync();\n this._scheduledEvents = [];\n return this;\n }\n}\n//# sourceMappingURL=Instrument.js.map","import { __decorate } from \"tslib\";\nimport { FrequencyClass } from \"../core/type/Frequency\";\nimport { optionsFromArguments } from \"../core/util/Defaults\";\nimport { noOp } from \"../core/util/Interface\";\nimport { Instrument } from \"../instrument/Instrument\";\nimport { timeRange } from \"../core/util/Decorator\";\n/**\n * Abstract base class for other monophonic instruments to extend.\n */\nexport class Monophonic extends Instrument {\n constructor() {\n super(optionsFromArguments(Monophonic.getDefaults(), arguments));\n const options = optionsFromArguments(Monophonic.getDefaults(), arguments);\n this.portamento = options.portamento;\n this.onsilence = options.onsilence;\n }\n static getDefaults() {\n return Object.assign(Instrument.getDefaults(), {\n detune: 0,\n onsilence: noOp,\n portamento: 0,\n });\n }\n /**\n * Trigger the attack of the note optionally with a given velocity.\n * @param note The note to trigger.\n * @param time When the note should start.\n * @param velocity The velocity scaler determines how \"loud\" the note will be triggered.\n * @example\n * const synth = new Tone.Synth().toDestination();\n * // trigger the note a half second from now at half velocity\n * synth.triggerAttack(\"C4\", \"+0.5\", 0.5);\n */\n triggerAttack(note, time, velocity = 1) {\n this.log(\"triggerAttack\", note, time, velocity);\n const seconds = this.toSeconds(time);\n this._triggerEnvelopeAttack(seconds, velocity);\n this.setNote(note, seconds);\n return this;\n }\n /**\n * Trigger the release portion of the envelope\n * @param time If no time is given, the release happens immediatly\n * @example\n * const synth = new Tone.Synth().toDestination();\n * synth.triggerAttack(\"C4\");\n * // trigger the release a second from now\n * synth.triggerRelease(\"+1\");\n */\n triggerRelease(time) {\n this.log(\"triggerRelease\", time);\n const seconds = this.toSeconds(time);\n this._triggerEnvelopeRelease(seconds);\n return this;\n }\n /**\n * Set the note at the given time. If no time is given, the note\n * will set immediately.\n * @param note The note to change to.\n * @param time The time when the note should be set.\n * @example\n * const synth = new Tone.Synth().toDestination();\n * synth.triggerAttack(\"C4\");\n * // change to F#6 in one quarter note from now.\n * synth.setNote(\"F#6\", \"+4n\");\n */\n setNote(note, time) {\n const computedTime = this.toSeconds(time);\n const computedFrequency = note instanceof FrequencyClass ? note.toFrequency() : note;\n if (this.portamento > 0 && this.getLevelAtTime(computedTime) > 0.05) {\n const portTime = this.toSeconds(this.portamento);\n this.frequency.exponentialRampTo(computedFrequency, portTime, computedTime);\n }\n else {\n this.frequency.setValueAtTime(computedFrequency, computedTime);\n }\n return this;\n }\n}\n__decorate([\n timeRange(0)\n], Monophonic.prototype, \"portamento\", void 0);\n//# sourceMappingURL=Monophonic.js.map","import { Gain } from \"../../core/context/Gain\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { Envelope } from \"./Envelope\";\n/**\n * AmplitudeEnvelope is a Tone.Envelope connected to a gain node.\n * Unlike Tone.Envelope, which outputs the envelope's value, AmplitudeEnvelope accepts\n * an audio signal as the input and will apply the envelope to the amplitude\n * of the signal.\n * Read more about ADSR Envelopes on [Wikipedia](https://en.wikipedia.org/wiki/Synthesizer#ADSR_envelope).\n *\n * @example\n * return Tone.Offline(() => {\n * \tconst ampEnv = new Tone.AmplitudeEnvelope({\n * \t\tattack: 0.1,\n * \t\tdecay: 0.2,\n * \t\tsustain: 1.0,\n * \t\trelease: 0.8\n * \t}).toDestination();\n * \t// create an oscillator and connect it\n * \tconst osc = new Tone.Oscillator().connect(ampEnv).start();\n * \t// trigger the envelopes attack and release \"8t\" apart\n * \tampEnv.triggerAttackRelease(\"8t\");\n * }, 1.5, 1);\n * @category Component\n */\nexport class AmplitudeEnvelope extends Envelope {\n constructor() {\n super(optionsFromArguments(AmplitudeEnvelope.getDefaults(), arguments, [\"attack\", \"decay\", \"sustain\", \"release\"]));\n this.name = \"AmplitudeEnvelope\";\n this._gainNode = new Gain({\n context: this.context,\n gain: 0,\n });\n this.output = this._gainNode;\n this.input = this._gainNode;\n this._sig.connect(this._gainNode.gain);\n this.output = this._gainNode;\n this.input = this._gainNode;\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this._gainNode.dispose();\n return this;\n }\n}\n//# sourceMappingURL=AmplitudeEnvelope.js.map","import { AmplitudeEnvelope } from \"../component/envelope/AmplitudeEnvelope\";\nimport { Envelope } from \"../component/envelope/Envelope\";\nimport { ToneAudioNode } from \"../core/context/ToneAudioNode\";\nimport { omitFromObject, optionsFromArguments } from \"../core/util/Defaults\";\nimport { readOnly } from \"../core/util/Interface\";\nimport { OmniOscillator } from \"../source/oscillator/OmniOscillator\";\nimport { Source } from \"../source/Source\";\nimport { Monophonic } from \"./Monophonic\";\n/**\n * Synth is composed simply of a [[OmniOscillator]] routed through an [[AmplitudeEnvelope]].\n * ```\n * +----------------+ +-------------------+\n * | OmniOscillator +>--> AmplitudeEnvelope +>--> Output\n * +----------------+ +-------------------+\n * ```\n * @example\n * const synth = new Tone.Synth().toDestination();\n * synth.triggerAttackRelease(\"C4\", \"8n\");\n * @category Instrument\n */\nexport class Synth extends Monophonic {\n constructor() {\n super(optionsFromArguments(Synth.getDefaults(), arguments));\n this.name = \"Synth\";\n const options = optionsFromArguments(Synth.getDefaults(), arguments);\n this.oscillator = new OmniOscillator(Object.assign({\n context: this.context,\n detune: options.detune,\n onstop: () => this.onsilence(this),\n }, options.oscillator));\n this.frequency = this.oscillator.frequency;\n this.detune = this.oscillator.detune;\n this.envelope = new AmplitudeEnvelope(Object.assign({\n context: this.context,\n }, options.envelope));\n // connect the oscillators to the output\n this.oscillator.chain(this.envelope, this.output);\n readOnly(this, [\"oscillator\", \"frequency\", \"detune\", \"envelope\"]);\n }\n static getDefaults() {\n return Object.assign(Monophonic.getDefaults(), {\n envelope: Object.assign(omitFromObject(Envelope.getDefaults(), Object.keys(ToneAudioNode.getDefaults())), {\n attack: 0.005,\n decay: 0.1,\n release: 1,\n sustain: 0.3,\n }),\n oscillator: Object.assign(omitFromObject(OmniOscillator.getDefaults(), [...Object.keys(Source.getDefaults()), \"frequency\", \"detune\"]), {\n type: \"triangle\",\n }),\n });\n }\n /**\n * start the attack portion of the envelope\n * @param time the time the attack should start\n * @param velocity the velocity of the note (0-1)\n */\n _triggerEnvelopeAttack(time, velocity) {\n // the envelopes\n this.envelope.triggerAttack(time, velocity);\n this.oscillator.start(time);\n // if there is no release portion, stop the oscillator\n if (this.envelope.sustain === 0) {\n const computedAttack = this.toSeconds(this.envelope.attack);\n const computedDecay = this.toSeconds(this.envelope.decay);\n this.oscillator.stop(time + computedAttack + computedDecay);\n }\n }\n /**\n * start the release portion of the envelope\n * @param time the time the release should start\n */\n _triggerEnvelopeRelease(time) {\n this.envelope.triggerRelease(time);\n this.oscillator.stop(time + this.toSeconds(this.envelope.release));\n }\n getLevelAtTime(time) {\n time = this.toSeconds(time);\n return this.envelope.getValueAtTime(time);\n }\n /**\n * clean up\n */\n dispose() {\n super.dispose();\n this.oscillator.dispose();\n this.envelope.dispose();\n return this;\n }\n}\n//# sourceMappingURL=Synth.js.map","import { __decorate } from \"tslib\";\nimport { FrequencyClass } from \"../core/type/Frequency\";\nimport { deepMerge, optionsFromArguments } from \"../core/util/Defaults\";\nimport { readOnly } from \"../core/util/Interface\";\nimport { Monophonic } from \"./Monophonic\";\nimport { Synth } from \"./Synth\";\nimport { range, timeRange } from \"../core/util/Decorator\";\n/**\n * MembraneSynth makes kick and tom sounds using a single oscillator\n * with an amplitude envelope and frequency ramp. A Tone.OmniOscillator\n * is routed through a Tone.AmplitudeEnvelope to the output. The drum\n * quality of the sound comes from the frequency envelope applied\n * during MembraneSynth.triggerAttack(note). The frequency envelope\n * starts at note * .octaves and ramps to note\n * over the duration of .pitchDecay.\n * @example\n * const synth = new Tone.MembraneSynth().toDestination();\n * synth.triggerAttackRelease(\"C2\", \"8n\");\n * @category Instrument\n */\nexport class MembraneSynth extends Synth {\n constructor() {\n super(optionsFromArguments(MembraneSynth.getDefaults(), arguments));\n this.name = \"MembraneSynth\";\n /**\n * Portamento is ignored in this synth. use pitch decay instead.\n */\n this.portamento = 0;\n const options = optionsFromArguments(MembraneSynth.getDefaults(), arguments);\n this.pitchDecay = options.pitchDecay;\n this.octaves = options.octaves;\n readOnly(this, [\"oscillator\", \"envelope\"]);\n }\n static getDefaults() {\n return deepMerge(Monophonic.getDefaults(), Synth.getDefaults(), {\n envelope: {\n attack: 0.001,\n attackCurve: \"exponential\",\n decay: 0.4,\n release: 1.4,\n sustain: 0.01,\n },\n octaves: 10,\n oscillator: {\n type: \"sine\",\n },\n pitchDecay: 0.05,\n });\n }\n setNote(note, time) {\n const seconds = this.toSeconds(time);\n const hertz = this.toFrequency(note instanceof FrequencyClass ? note.toFrequency() : note);\n const maxNote = hertz * this.octaves;\n this.oscillator.frequency.setValueAtTime(maxNote, seconds);\n this.oscillator.frequency.exponentialRampToValueAtTime(hertz, seconds + this.toSeconds(this.pitchDecay));\n return this;\n }\n dispose() {\n super.dispose();\n return this;\n }\n}\n__decorate([\n range(0)\n], MembraneSynth.prototype, \"octaves\", void 0);\n__decorate([\n timeRange(0)\n], MembraneSynth.prototype, \"pitchDecay\", void 0);\n//# sourceMappingURL=MembraneSynth.js.map","/**\n * All of the classes or functions which are loaded into the AudioWorkletGlobalScope\n */\nconst workletContext = new Set();\n/**\n * Add a class to the AudioWorkletGlobalScope\n */\nexport function addToWorklet(classOrFunction) {\n workletContext.add(classOrFunction);\n}\n/**\n * Register a processor in the AudioWorkletGlobalScope with the given name\n */\nexport function registerProcessor(name, classDesc) {\n const processor = /* javascript */ `registerProcessor(\"${name}\", ${classDesc})`;\n workletContext.add(processor);\n}\n/**\n * Get all of the modules which have been registered to the AudioWorkletGlobalScope\n */\nexport function getWorkletGlobalScope() {\n return Array.from(workletContext).join(\"\\n\");\n}\n//# sourceMappingURL=WorkletGlobalScope.js.map","import { addToWorklet } from \"./WorkletGlobalScope\";\nconst toneAudioWorkletProcessor = /* javascript */ `\n\t/**\n\t * The base AudioWorkletProcessor for use in Tone.js. Works with the [[ToneAudioWorklet]]. \n\t */\n\tclass ToneAudioWorkletProcessor extends AudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\t\n\t\t\tsuper(options);\n\t\t\t/**\n\t\t\t * If the processor was disposed or not. Keep alive until it's disposed.\n\t\t\t */\n\t\t\tthis.disposed = false;\n\t\t \t/** \n\t\t\t * The number of samples in the processing block\n\t\t\t */\n\t\t\tthis.blockSize = 128;\n\t\t\t/**\n\t\t\t * the sample rate\n\t\t\t */\n\t\t\tthis.sampleRate = sampleRate;\n\n\t\t\tthis.port.onmessage = (event) => {\n\t\t\t\t// when it receives a dispose \n\t\t\t\tif (event.data === \"dispose\") {\n\t\t\t\t\tthis.disposed = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n`;\naddToWorklet(toneAudioWorkletProcessor);\n//# sourceMappingURL=ToneAudioWorkletProcessor.worklet.js.map","import \"./ToneAudioWorkletProcessor.worklet\";\nimport { addToWorklet } from \"./WorkletGlobalScope\";\nexport const singleIOProcess = /* javascript */ `\n\t/**\n\t * Abstract class for a single input/output processor. \n\t * has a 'generate' function which processes one sample at a time\n\t */\n\tclass SingleIOProcessor extends ToneAudioWorkletProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(Object.assign(options, {\n\t\t\t\tnumberOfInputs: 1,\n\t\t\t\tnumberOfOutputs: 1\n\t\t\t}));\n\t\t\t/**\n\t\t\t * Holds the name of the parameter and a single value of that\n\t\t\t * parameter at the current sample\n\t\t\t * @type { [name: string]: number }\n\t\t\t */\n\t\t\tthis.params = {}\n\t\t}\n\n\t\t/**\n\t\t * Generate an output sample from the input sample and parameters\n\t\t * @abstract\n\t\t * @param input number\n\t\t * @param channel number\n\t\t * @param parameters { [name: string]: number }\n\t\t * @returns number\n\t\t */\n\t\tgenerate(){}\n\n\t\t/**\n\t\t * Update the private params object with the \n\t\t * values of the parameters at the given index\n\t\t * @param parameters { [name: string]: Float32Array },\n\t\t * @param index number\n\t\t */\n\t\tupdateParams(parameters, index) {\n\t\t\tfor (const paramName in parameters) {\n\t\t\t\tconst param = parameters[paramName];\n\t\t\t\tif (param.length > 1) {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][index];\n\t\t\t\t} else {\n\t\t\t\t\tthis.params[paramName] = parameters[paramName][0];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Process a single frame of the audio\n\t\t * @param inputs Float32Array[][]\n\t\t * @param outputs Float32Array[][]\n\t\t */\n\t\tprocess(inputs, outputs, parameters) {\n\t\t\tconst input = inputs[0];\n\t\t\tconst output = outputs[0];\n\t\t\t// get the parameter values\n\t\t\tconst channelCount = Math.max(input && input.length || 0, output.length);\n\t\t\tfor (let sample = 0; sample < this.blockSize; sample++) {\n\t\t\t\tthis.updateParams(parameters, sample);\n\t\t\t\tfor (let channel = 0; channel < channelCount; channel++) {\n\t\t\t\t\tconst inputSample = input && input.length ? input[channel][sample] : 0;\n\t\t\t\t\toutput[channel][sample] = this.generate(inputSample, channel, this.params);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn !this.disposed;\n\t\t}\n\t};\n`;\naddToWorklet(singleIOProcess);\n//# sourceMappingURL=SingleIOProcessor.worklet.js.map","import { addToWorklet } from \"./WorkletGlobalScope\";\nconst delayLine = /* javascript */ `\n\t/**\n\t * A multichannel buffer for use within an AudioWorkletProcessor as a delay line\n\t */\n\tclass DelayLine {\n\t\t\n\t\tconstructor(size, channels) {\n\t\t\tthis.buffer = [];\n\t\t\tthis.writeHead = []\n\t\t\tthis.size = size;\n\n\t\t\t// create the empty channels\n\t\t\tfor (let i = 0; i < channels; i++) {\n\t\t\t\tthis.buffer[i] = new Float32Array(this.size);\n\t\t\t\tthis.writeHead[i] = 0;\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Push a value onto the end\n\t\t * @param channel number\n\t\t * @param value number\n\t\t */\n\t\tpush(channel, value) {\n\t\t\tthis.writeHead[channel] += 1;\n\t\t\tif (this.writeHead[channel] > this.size) {\n\t\t\t\tthis.writeHead[channel] = 0;\n\t\t\t}\n\t\t\tthis.buffer[channel][this.writeHead[channel]] = value;\n\t\t}\n\n\t\t/**\n\t\t * Get the recorded value of the channel given the delay\n\t\t * @param channel number\n\t\t * @param delay number delay samples\n\t\t */\n\t\tget(channel, delay) {\n\t\t\tlet readHead = this.writeHead[channel] - Math.floor(delay);\n\t\t\tif (readHead < 0) {\n\t\t\t\treadHead += this.size;\n\t\t\t}\n\t\t\treturn this.buffer[channel][readHead];\n\t\t}\n\t}\n`;\naddToWorklet(delayLine);\n//# sourceMappingURL=DelayLine.worklet.js.map","import \"../../core/worklet/SingleIOProcessor.worklet\";\nimport \"../../core/worklet/DelayLine.worklet\";\nimport { registerProcessor } from \"../../core/worklet/WorkletGlobalScope\";\nexport const workletName = \"feedback-comb-filter\";\nconst feedbackCombFilter = /* javascript */ `\n\tclass FeedbackCombFilterWorklet extends SingleIOProcessor {\n\n\t\tconstructor(options) {\n\t\t\tsuper(options);\n\t\t\tthis.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2);\n\t\t}\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: \"delayTime\",\n\t\t\t\tdefaultValue: 0.1,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 1,\n\t\t\t\tautomationRate: \"k-rate\"\n\t\t\t}, {\n\t\t\t\tname: \"feedback\",\n\t\t\t\tdefaultValue: 0.5,\n\t\t\t\tminValue: 0,\n\t\t\t\tmaxValue: 0.9999,\n\t\t\t\tautomationRate: \"k-rate\"\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, channel, parameters) {\n\t\t\tconst delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate);\n\t\t\tthis.delayLine.push(channel, input + delayedSample * parameters.feedback);\n\t\t\treturn delayedSample;\n\t\t}\n\t}\n`;\nregisterProcessor(workletName, feedbackCombFilter);\n//# sourceMappingURL=FeedbackCombFilter.worklet.js.map","import { __decorate } from \"tslib\";\nimport { ToneAudioBuffers } from \"../core/context/ToneAudioBuffers\";\nimport { ftomf, intervalToFrequencyRatio } from \"../core/type/Conversions\";\nimport { FrequencyClass } from \"../core/type/Frequency\";\nimport { optionsFromArguments } from \"../core/util/Defaults\";\nimport { noOp } from \"../core/util/Interface\";\nimport { isArray, isNote, isNumber } from \"../core/util/TypeCheck\";\nimport { Instrument } from \"../instrument/Instrument\";\nimport { ToneBufferSource } from \"../source/buffer/ToneBufferSource\";\nimport { timeRange } from \"../core/util/Decorator\";\nimport { assert } from \"../core/util/Debug\";\n/**\n * Pass in an object which maps the note's pitch or midi value to the url,\n * then you can trigger the attack and release of that note like other instruments.\n * By automatically repitching the samples, it is possible to play pitches which\n * were not explicitly included which can save loading time.\n *\n * For sample or buffer playback where repitching is not necessary,\n * use [[Player]].\n * @example\n * const sampler = new Tone.Sampler({\n * \turls: {\n * \t\tA1: \"A1.mp3\",\n * \t\tA2: \"A2.mp3\",\n * \t},\n * \tbaseUrl: \"https://tonejs.github.io/audio/casio/\",\n * \tonload: () => {\n * \t\tsampler.triggerAttackRelease([\"C1\", \"E1\", \"G1\", \"B1\"], 0.5);\n * \t}\n * }).toDestination();\n * @category Instrument\n */\nexport class Sampler extends Instrument {\n constructor() {\n super(optionsFromArguments(Sampler.getDefaults(), arguments, [\"urls\", \"onload\", \"baseUrl\"], \"urls\"));\n this.name = \"Sampler\";\n /**\n * The object of all currently playing BufferSources\n */\n this._activeSources = new Map();\n const options = optionsFromArguments(Sampler.getDefaults(), arguments, [\"urls\", \"onload\", \"baseUrl\"], \"urls\");\n const urlMap = {};\n Object.keys(options.urls).forEach((note) => {\n const noteNumber = parseInt(note, 10);\n assert(isNote(note)\n || (isNumber(noteNumber) && isFinite(noteNumber)), `url key is neither a note or midi pitch: ${note}`);\n if (isNote(note)) {\n // convert the note name to MIDI\n const mid = new FrequencyClass(this.context, note).toMidi();\n urlMap[mid] = options.urls[note];\n }\n else if (isNumber(noteNumber) && isFinite(noteNumber)) {\n // otherwise if it's numbers assume it's midi\n urlMap[noteNumber] = options.urls[noteNumber];\n }\n });\n this._buffers = new ToneAudioBuffers({\n urls: urlMap,\n onload: options.onload,\n baseUrl: options.baseUrl,\n onerror: options.onerror,\n });\n this.attack = options.attack;\n this.release = options.release;\n this.curve = options.curve;\n // invoke the callback if it's already loaded\n if (this._buffers.loaded) {\n // invoke onload deferred\n Promise.resolve().then(options.onload);\n }\n }\n static getDefaults() {\n return Object.assign(Instrument.getDefaults(), {\n attack: 0,\n baseUrl: \"\",\n curve: \"exponential\",\n onload: noOp,\n onerror: noOp,\n release: 0.1,\n urls: {},\n });\n }\n /**\n * Returns the difference in steps between the given midi note at the closets sample.\n */\n _findClosest(midi) {\n // searches within 8 octaves of the given midi note\n const MAX_INTERVAL = 96;\n let interval = 0;\n while (interval < MAX_INTERVAL) {\n // check above and below\n if (this._buffers.has(midi + interval)) {\n return -interval;\n }\n else if (this._buffers.has(midi - interval)) {\n return interval;\n }\n interval++;\n }\n throw new Error(`No available buffers for note: ${midi}`);\n }\n /**\n * @param notes\tThe note to play, or an array of notes.\n * @param time When to play the note\n * @param velocity The velocity to play the sample back.\n */\n triggerAttack(notes, time, velocity = 1) {\n this.log(\"triggerAttack\", notes, time, velocity);\n if (!Array.isArray(notes)) {\n notes = [notes];\n }\n notes.forEach(note => {\n const midiFloat = ftomf(new FrequencyClass(this.context, note).toFrequency());\n const midi = Math.round(midiFloat);\n const remainder = midiFloat - midi;\n // find the closest note pitch\n const difference = this._findClosest(midi);\n const closestNote = midi - difference;\n const buffer = this._buffers.get(closestNote);\n const playbackRate = intervalToFrequencyRatio(difference + remainder);\n // play that note\n const source = new ToneBufferSource({\n url: buffer,\n context: this.context,\n curve: this.curve,\n fadeIn: this.attack,\n fadeOut: this.release,\n playbackRate,\n }).connect(this.output);\n source.start(time, 0, buffer.duration / playbackRate, velocity);\n // add it to the active sources\n if (!isArray(this._activeSources.get(midi))) {\n this._activeSources.set(midi, []);\n }\n this._activeSources.get(midi).push(source);\n // remove it when it's done\n source.onended = () => {\n if (this._activeSources && this._activeSources.has(midi)) {\n const sources = this._activeSources.get(midi);\n const index = sources.indexOf(source);\n if (index !== -1) {\n sources.splice(index, 1);\n }\n }\n };\n });\n return this;\n }\n /**\n * @param notes\tThe note to release, or an array of notes.\n * @param time \tWhen to release the note.\n */\n triggerRelease(notes, time) {\n this.log(\"triggerRelease\", notes, time);\n if (!Array.isArray(notes)) {\n notes = [notes];\n }\n notes.forEach(note => {\n const midi = new FrequencyClass(this.context, note).toMidi();\n // find the note\n if (this._activeSources.has(midi) && this._activeSources.get(midi).length) {\n const sources = this._activeSources.get(midi);\n time = this.toSeconds(time);\n sources.forEach(source => {\n source.stop(time);\n });\n this._activeSources.set(midi, []);\n }\n });\n return this;\n }\n /**\n * Release all currently active notes.\n * @param time \tWhen to release the notes.\n */\n releaseAll(time) {\n const computedTime = this.toSeconds(time);\n this._activeSources.forEach(sources => {\n while (sources.length) {\n const source = sources.shift();\n source.stop(computedTime);\n }\n });\n return this;\n }\n sync() {\n if (this._syncState()) {\n this._syncMethod(\"triggerAttack\", 1);\n this._syncMethod(\"triggerRelease\", 1);\n }\n return this;\n }\n /**\n * Invoke the attack phase, then after the duration, invoke the release.\n * @param notes\tThe note to play and release, or an array of notes.\n * @param duration The time the note should be held\n * @param time When to start the attack\n * @param velocity The velocity of the attack\n */\n triggerAttackRelease(notes, duration, time, velocity = 1) {\n const computedTime = this.toSeconds(time);\n this.triggerAttack(notes, computedTime, velocity);\n if (isArray(duration)) {\n assert(isArray(notes), \"notes must be an array when duration is array\");\n notes.forEach((note, index) => {\n const d = duration[Math.min(index, duration.length - 1)];\n this.triggerRelease(note, computedTime + this.toSeconds(d));\n });\n }\n else {\n this.triggerRelease(notes, computedTime + this.toSeconds(duration));\n }\n return this;\n }\n /**\n * Add a note to the sampler.\n * @param note The buffer's pitch.\n * @param url Either the url of the buffer, or a buffer which will be added with the given name.\n * @param callback The callback to invoke when the url is loaded.\n */\n add(note, url, callback) {\n assert(isNote(note) || isFinite(note), `note must be a pitch or midi: ${note}`);\n if (isNote(note)) {\n // convert the note name to MIDI\n const mid = new FrequencyClass(this.context, note).toMidi();\n this._buffers.add(mid, url, callback);\n }\n else {\n // otherwise if it's numbers assume it's midi\n this._buffers.add(note, url, callback);\n }\n return this;\n }\n /**\n * If the buffers are loaded or not\n */\n get loaded() {\n return this._buffers.loaded;\n }\n /**\n * Clean up\n */\n dispose() {\n super.dispose();\n this._buffers.dispose();\n this._activeSources.forEach(sources => {\n sources.forEach(source => source.dispose());\n });\n this._activeSources.clear();\n return this;\n }\n}\n__decorate([\n timeRange(0)\n], Sampler.prototype, \"attack\", void 0);\n__decorate([\n timeRange(0)\n], Sampler.prototype, \"release\", void 0);\n//# sourceMappingURL=Sampler.js.map","import { Param } from \"../../core/context/Param\";\nimport { ToneAudioNode } from \"../../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { readOnly } from \"../../core/util/Interface\";\n/**\n * Panner is an equal power Left/Right Panner. It is a wrapper around the StereoPannerNode.\n * @example\n * return Tone.Offline(() => {\n * // move the input signal from right to left\n * \tconst panner = new Tone.Panner(1).toDestination();\n * \tpanner.pan.rampTo(-1, 0.5);\n * \tconst osc = new Tone.Oscillator(100).connect(panner).start();\n * }, 0.5, 2);\n * @category Component\n */\nexport class Panner extends ToneAudioNode {\n constructor() {\n super(Object.assign(optionsFromArguments(Panner.getDefaults(), arguments, [\"pan\"])));\n this.name = \"Panner\";\n /**\n * the panner node\n */\n this._panner = this.context.createStereoPanner();\n this.input = this._panner;\n this.output = this._panner;\n const options = optionsFromArguments(Panner.getDefaults(), arguments, [\"pan\"]);\n this.pan = new Param({\n context: this.context,\n param: this._panner.pan,\n value: options.pan,\n minValue: -1,\n maxValue: 1,\n });\n // this is necessary for standardized-audio-context\n // doesn't make any difference for the native AudioContext\n // https://github.com/chrisguttandin/standardized-audio-context/issues/647\n this._panner.channelCount = options.channelCount;\n this._panner.channelCountMode = \"explicit\";\n // initial value\n readOnly(this, \"pan\");\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n pan: 0,\n channelCount: 1,\n });\n }\n dispose() {\n super.dispose();\n this._panner.disconnect();\n this.pan.dispose();\n return this;\n }\n}\n//# sourceMappingURL=Panner.js.map","import \"../core/worklet/SingleIOProcessor.worklet\";\nimport { registerProcessor } from \"../core/worklet/WorkletGlobalScope\";\nexport const workletName = \"bit-crusher\";\nexport const bitCrusherWorklet = /* javascript */ `\n\tclass BitCrusherWorklet extends SingleIOProcessor {\n\n\t\tstatic get parameterDescriptors() {\n\t\t\treturn [{\n\t\t\t\tname: \"bits\",\n\t\t\t\tdefaultValue: 12,\n\t\t\t\tminValue: 1,\n\t\t\t\tmaxValue: 16,\n\t\t\t\tautomationRate: 'k-rate'\n\t\t\t}];\n\t\t}\n\n\t\tgenerate(input, _channel, parameters) {\n\t\t\tconst step = Math.pow(0.5, parameters.bits - 1);\n\t\t\tconst val = step * Math.floor(input / step + 0.5);\n\t\t\treturn val;\n\t\t}\n\t}\n`;\nregisterProcessor(workletName, bitCrusherWorklet);\n//# sourceMappingURL=BitCrusher.worklet.js.map","import { Gain } from \"../../core/context/Gain\";\nimport { ToneAudioNode } from \"../../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\n/**\n * Solo lets you isolate a specific audio stream. When an instance is set to `solo=true`,\n * it will mute all other instances of Solo.\n * @example\n * const soloA = new Tone.Solo().toDestination();\n * const oscA = new Tone.Oscillator(\"C4\", \"sawtooth\").connect(soloA);\n * const soloB = new Tone.Solo().toDestination();\n * const oscB = new Tone.Oscillator(\"E4\", \"square\").connect(soloB);\n * soloA.solo = true;\n * // no audio will pass through soloB\n * @category Component\n */\nexport class Solo extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Solo.getDefaults(), arguments, [\"solo\"]));\n this.name = \"Solo\";\n const options = optionsFromArguments(Solo.getDefaults(), arguments, [\"solo\"]);\n this.input = this.output = new Gain({\n context: this.context,\n });\n if (!Solo._allSolos.has(this.context)) {\n Solo._allSolos.set(this.context, new Set());\n }\n Solo._allSolos.get(this.context).add(this);\n // set initially\n this.solo = options.solo;\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n solo: false,\n });\n }\n /**\n * Isolates this instance and mutes all other instances of Solo.\n * Only one instance can be soloed at a time. A soloed\n * instance will report `solo=false` when another instance is soloed.\n */\n get solo() {\n return this._isSoloed();\n }\n set solo(solo) {\n if (solo) {\n this._addSolo();\n }\n else {\n this._removeSolo();\n }\n Solo._allSolos.get(this.context).forEach(instance => instance._updateSolo());\n }\n /**\n * If the current instance is muted, i.e. another instance is soloed\n */\n get muted() {\n return this.input.gain.value === 0;\n }\n /**\n * Add this to the soloed array\n */\n _addSolo() {\n if (!Solo._soloed.has(this.context)) {\n Solo._soloed.set(this.context, new Set());\n }\n Solo._soloed.get(this.context).add(this);\n }\n /**\n * Remove this from the soloed array\n */\n _removeSolo() {\n if (Solo._soloed.has(this.context)) {\n Solo._soloed.get(this.context).delete(this);\n }\n }\n /**\n * Is this on the soloed array\n */\n _isSoloed() {\n return Solo._soloed.has(this.context) && Solo._soloed.get(this.context).has(this);\n }\n /**\n * Returns true if no one is soloed\n */\n _noSolos() {\n // either does not have any soloed added\n return !Solo._soloed.has(this.context) ||\n // or has a solo set but doesn't include any items\n (Solo._soloed.has(this.context) && Solo._soloed.get(this.context).size === 0);\n }\n /**\n * Solo the current instance and unsolo all other instances.\n */\n _updateSolo() {\n if (this._isSoloed()) {\n this.input.gain.value = 1;\n }\n else if (this._noSolos()) {\n // no one is soloed\n this.input.gain.value = 1;\n }\n else {\n this.input.gain.value = 0;\n }\n }\n dispose() {\n super.dispose();\n Solo._allSolos.get(this.context).delete(this);\n this._removeSolo();\n return this;\n }\n}\n/**\n * Hold all of the solo'ed tracks belonging to a specific context\n */\nSolo._allSolos = new Map();\n/**\n * Hold the currently solo'ed instance(s)\n */\nSolo._soloed = new Map();\n//# sourceMappingURL=Solo.js.map","import { readOnly } from \"../../core/util/Interface\";\nimport { ToneAudioNode } from \"../../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { Panner } from \"./Panner\";\nimport { Volume } from \"./Volume\";\n/**\n * PanVol is a Tone.Panner and Tone.Volume in one.\n * @example\n * // pan the incoming signal left and drop the volume\n * const panVol = new Tone.PanVol(-0.25, -12).toDestination();\n * const osc = new Tone.Oscillator().connect(panVol).start();\n * @category Component\n */\nexport class PanVol extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(PanVol.getDefaults(), arguments, [\"pan\", \"volume\"]));\n this.name = \"PanVol\";\n const options = optionsFromArguments(PanVol.getDefaults(), arguments, [\"pan\", \"volume\"]);\n this._panner = this.input = new Panner({\n context: this.context,\n pan: options.pan,\n channelCount: options.channelCount,\n });\n this.pan = this._panner.pan;\n this._volume = this.output = new Volume({\n context: this.context,\n volume: options.volume,\n });\n this.volume = this._volume.volume;\n // connections\n this._panner.connect(this._volume);\n this.mute = options.mute;\n readOnly(this, [\"pan\", \"volume\"]);\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n mute: false,\n pan: 0,\n volume: 0,\n channelCount: 1,\n });\n }\n /**\n * Mute/unmute the volume\n */\n get mute() {\n return this._volume.mute;\n }\n set mute(mute) {\n this._volume.mute = mute;\n }\n dispose() {\n super.dispose();\n this._panner.dispose();\n this.pan.dispose();\n this._volume.dispose();\n this.volume.dispose();\n return this;\n }\n}\n//# sourceMappingURL=PanVol.js.map","import { ToneAudioNode } from \"../../core/context/ToneAudioNode\";\nimport { optionsFromArguments } from \"../../core/util/Defaults\";\nimport { Solo } from \"./Solo\";\nimport { PanVol } from \"./PanVol\";\nimport { readOnly } from \"../../core/util/Interface\";\nimport { Gain } from \"../../core/context/Gain\";\n/**\n * Channel provides a channel strip interface with volume, pan, solo and mute controls.\n * See [[PanVol]] and [[Solo]]\n * @example\n * // pan the incoming signal left and drop the volume 12db\n * const channel = new Tone.Channel(-0.25, -12);\n * @category Component\n */\nexport class Channel extends ToneAudioNode {\n constructor() {\n super(optionsFromArguments(Channel.getDefaults(), arguments, [\"volume\", \"pan\"]));\n this.name = \"Channel\";\n const options = optionsFromArguments(Channel.getDefaults(), arguments, [\"volume\", \"pan\"]);\n this._solo = this.input = new Solo({\n solo: options.solo,\n context: this.context,\n });\n this._panVol = this.output = new PanVol({\n context: this.context,\n pan: options.pan,\n volume: options.volume,\n mute: options.mute,\n channelCount: options.channelCount\n });\n this.pan = this._panVol.pan;\n this.volume = this._panVol.volume;\n this._solo.connect(this._panVol);\n readOnly(this, [\"pan\", \"volume\"]);\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n pan: 0,\n volume: 0,\n mute: false,\n solo: false,\n channelCount: 1,\n });\n }\n /**\n * Solo/unsolo the channel. Soloing is only relative to other [[Channels]] and [[Solo]] instances\n */\n get solo() {\n return this._solo.solo;\n }\n set solo(solo) {\n this._solo.solo = solo;\n }\n /**\n * If the current instance is muted, i.e. another instance is soloed,\n * or the channel is muted\n */\n get muted() {\n return this._solo.muted || this.mute;\n }\n /**\n * Mute/unmute the volume\n */\n get mute() {\n return this._panVol.mute;\n }\n set mute(mute) {\n this._panVol.mute = mute;\n }\n /**\n * Get the gain node belonging to the bus name. Create it if\n * it doesn't exist\n * @param name The bus name\n */\n _getBus(name) {\n if (!Channel.buses.has(name)) {\n Channel.buses.set(name, new Gain({ context: this.context }));\n }\n return Channel.buses.get(name);\n }\n /**\n * Send audio to another channel using a string. `send` is a lot like\n * [[connect]], except it uses a string instead of an object. This can\n * be useful in large applications to decouple sections since [[send]]\n * and [[receive]] can be invoked separately in order to connect an object\n * @param name The channel name to send the audio\n * @param volume The amount of the signal to send.\n * \tDefaults to 0db, i.e. send the entire signal\n * @returns Returns the gain node of this connection.\n */\n send(name, volume = 0) {\n const bus = this._getBus(name);\n const sendKnob = new Gain({\n context: this.context,\n units: \"decibels\",\n gain: volume,\n });\n this.connect(sendKnob);\n sendKnob.connect(bus);\n return sendKnob;\n }\n /**\n * Receive audio from a channel which was connected with [[send]].\n * @param name The channel name to receive audio from.\n */\n receive(name) {\n const bus = this._getBus(name);\n bus.connect(this);\n return this;\n }\n dispose() {\n super.dispose();\n this._panVol.dispose();\n this.pan.dispose();\n this.volume.dispose();\n this._solo.dispose();\n return this;\n }\n}\n/**\n * Store the send/receive channels by name.\n */\nChannel.buses = new Map();\n//# sourceMappingURL=Channel.js.map","import { ToneAudioNode } from \"./ToneAudioNode\";\nimport { Param } from \"./Param\";\nimport { onContextClose, onContextInit } from \"./ContextInitialization\";\n/**\n * Tone.Listener is a thin wrapper around the AudioListener. Listener combined\n * with [[Panner3D]] makes up the Web Audio API's 3D panning system. Panner3D allows you\n * to place sounds in 3D and Listener allows you to navigate the 3D sound environment from\n * a first-person perspective. There is only one listener per audio context.\n */\nexport class Listener extends ToneAudioNode {\n constructor() {\n super(...arguments);\n this.name = \"Listener\";\n this.positionX = new Param({\n context: this.context,\n param: this.context.rawContext.listener.positionX,\n });\n this.positionY = new Param({\n context: this.context,\n param: this.context.rawContext.listener.positionY,\n });\n this.positionZ = new Param({\n context: this.context,\n param: this.context.rawContext.listener.positionZ,\n });\n this.forwardX = new Param({\n context: this.context,\n param: this.context.rawContext.listener.forwardX,\n });\n this.forwardY = new Param({\n context: this.context,\n param: this.context.rawContext.listener.forwardY,\n });\n this.forwardZ = new Param({\n context: this.context,\n param: this.context.rawContext.listener.forwardZ,\n });\n this.upX = new Param({\n context: this.context,\n param: this.context.rawContext.listener.upX,\n });\n this.upY = new Param({\n context: this.context,\n param: this.context.rawContext.listener.upY,\n });\n this.upZ = new Param({\n context: this.context,\n param: this.context.rawContext.listener.upZ,\n });\n }\n static getDefaults() {\n return Object.assign(ToneAudioNode.getDefaults(), {\n positionX: 0,\n positionY: 0,\n positionZ: 0,\n forwardX: 0,\n forwardY: 0,\n forwardZ: -1,\n upX: 0,\n upY: 1,\n upZ: 0,\n });\n }\n dispose() {\n super.dispose();\n this.positionX.dispose();\n this.positionY.dispose();\n this.positionZ.dispose();\n this.forwardX.dispose();\n this.forwardY.dispose();\n this.forwardZ.dispose();\n this.upX.dispose();\n this.upY.dispose();\n this.upZ.dispose();\n return this;\n }\n}\n//-------------------------------------\n// \tINITIALIZATION\n//-------------------------------------\nonContextInit(context => {\n context.listener = new Listener({ context });\n});\nonContextClose(context => {\n context.listener.dispose();\n});\n//# sourceMappingURL=Listener.js.map","export { getContext, setContext } from \"./core/Global\";\nexport * from \"./classes\";\nexport * from \"./version\";\nimport { getContext } from \"./core/Global\";\nimport { ToneAudioBuffer } from \"./core/context/ToneAudioBuffer\";\nexport { start } from \"./core/Global\";\nexport { supported } from \"./core/context/AudioContext\";\n/**\n * The current audio context time of the global [[Context]].\n * See [[Context.now]]\n * @category Core\n */\nexport function now() {\n return getContext().now();\n}\n/**\n * The current audio context time of the global [[Context]] without the [[Context.lookAhead]]\n * See [[Context.immediate]]\n * @category Core\n */\nexport function immediate() {\n return getContext().immediate();\n}\n/**\n * The Transport object belonging to the global Tone.js Context.\n * See [[Transport]]\n * @category Core\n */\nexport const Transport = getContext().transport;\n/**\n * The Transport object belonging to the global Tone.js Context.\n * See [[Transport]]\n * @category Core\n */\nexport function getTransport() {\n return getContext().transport;\n}\n/**\n * The Destination (output) belonging to the global Tone.js Context.\n * See [[Destination]]\n * @category Core\n */\nexport const Destination = getContext().destination;\n/**\n * @deprecated Use [[Destination]]\n */\nexport const Master = getContext().destination;\n/**\n * The Destination (output) belonging to the global Tone.js Context.\n * See [[Destination]]\n * @category Core\n */\nexport function getDestination() {\n return getContext().destination;\n}\n/**\n * The [[Listener]] belonging to the global Tone.js Context.\n * @category Core\n */\nexport const Listener = getContext().listener;\n/**\n * The [[Listener]] belonging to the global Tone.js Context.\n * @category Core\n */\nexport function getListener() {\n return getContext().listener;\n}\n/**\n * Draw is used to synchronize the draw frame with the Transport's callbacks.\n * See [[Draw]]\n * @category Core\n */\nexport const Draw = getContext().draw;\n/**\n * Get the singleton attached to the global context.\n * Draw is used to synchronize the draw frame with the Transport's callbacks.\n * See [[Draw]]\n * @category Core\n */\nexport function getDraw() {\n return getContext().draw;\n}\n/**\n * A reference to the global context\n * See [[Context]]\n */\nexport const context = getContext();\n/**\n * Promise which resolves when all of the loading promises are resolved.\n * Alias for static [[ToneAudioBuffer.loaded]] method.\n * @category Core\n */\nexport function loaded() {\n return ToneAudioBuffer.loaded();\n}\n// this fills in name changes from 13.x to 14.x\nimport { ToneAudioBuffers } from \"./core/context/ToneAudioBuffers\";\nimport { ToneBufferSource } from \"./source/buffer/ToneBufferSource\";\nexport const Buffer = ToneAudioBuffer;\nexport const Buffers = ToneAudioBuffers;\nexport const BufferSource = ToneBufferSource;\n//# sourceMappingURL=index.js.map","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","import { defineComponent, ref, watch, computed, onMounted, unref, openBlock, createElementBlock, normalizeStyle, createElementVNode, isRef, createCommentVNode, renderSlot, Fragment, renderList } from 'vue';\n\nconst _hoisted_1 = {\n key: 0\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"overlay\"\n};\nconst _hoisted_3 = {\n class: \"marquee\"\n};\nvar script = /*#__PURE__*/defineComponent({\n props: {\n direction: {\n type: String,\n required: false,\n default: \"normal\"\n },\n duration: {\n type: Number,\n required: false,\n default: 20\n },\n delay: {\n type: Number,\n required: false,\n default: 0\n },\n loop: {\n type: Number,\n required: false,\n default: 0\n },\n clone: {\n type: Boolean,\n required: false,\n default: false\n },\n gradient: {\n type: Boolean,\n required: false,\n default: false\n },\n gradientColor: {\n type: Array,\n required: false,\n default: [255, 255, 255],\n validator: value => {\n if (value.length != 3) {\n return false;\n }\n\n if (typeof value[0] !== \"number\" || value[0] < 0 || value[0] > 255) {\n return false;\n }\n\n if (typeof value[1] !== \"number\" || value[1] < 0 || value[1] > 255) {\n return false;\n }\n\n if (typeof value[2] !== \"number\" || value[2] < 0 || value[2] > 255) {\n return false;\n }\n\n return true;\n }\n },\n gradientWidth: {\n type: String,\n required: false,\n default: \"200px\"\n },\n pauseOnHover: {\n type: Boolean,\n required: false,\n default: false\n },\n pauseOnClick: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n\n setup(__props) {\n const props = __props;\n let cloneAmount = ref(0);\n let minWidth = ref(\"100%\");\n let componentKey = ref(0);\n let containerWidth = ref(0);\n let contentWidth = ref(0);\n let ready = ref(false);\n let marqueeContent = ref(null);\n let marqueeContainer = ref(null);\n\n const ForcesUpdate = () => {\n componentKey.value++;\n };\n\n const checkForClone = async () => {\n setInterval(() => {\n minWidth.value = \"0%\";\n\n if (marqueeContent.value !== null && marqueeContainer.value !== null) {\n if (marqueeContent.value && marqueeContainer.value) {\n if (\"clientWidth\" in marqueeContent.value && \"clientWidth\" in marqueeContainer.value) {\n contentWidth.value = marqueeContent.value.clientWidth;\n containerWidth.value = marqueeContainer.value.clientWidth;\n const localCloneAmount = Math.ceil(containerWidth.value / contentWidth.value);\n cloneAmount.value = isFinite(localCloneAmount) ? localCloneAmount : 0;\n return cloneAmount.value;\n } else {\n minWidth.value = \"100%\";\n return 0;\n }\n } else {\n minWidth.value = \"100%\";\n return 0;\n }\n } else {\n minWidth.value = \"100%\";\n return 0;\n }\n }, 100);\n };\n\n watch(contentWidth, () => {\n if (props.clone) {\n ForcesUpdate();\n }\n });\n watch(containerWidth, () => {\n if (props.clone) {\n ForcesUpdate();\n }\n });\n const getCurrentStyle = computed(() => {\n let cssVariables = {\n \"--duration\": `${props.duration}s`,\n \"--delay\": `${props.delay}s`,\n \"--direction\": `${props.direction}`,\n \"--pauseOnHover\": `${props.pauseOnHover ? \"paused\" : \"running\"}`,\n \"--pauseOnClick\": `${props.pauseOnClick ? \"paused\" : \"running\"}`,\n \"--loops\": `${props.loop === 0 ? \"infinite\" : props.loop}`,\n \"--gradient-color\": `rgba(${props.gradientColor[0]}, ${props.gradientColor[1]}, ${props.gradientColor[2]}, 1), rgba(${props.gradientColor[0]}, ${props.gradientColor[1]}, ${props.gradientColor[2]}, 0)`,\n \"--gradient-width\": `${props.gradientWidth}`,\n \"--min-width\": `${minWidth.value}`\n };\n return cssVariables;\n });\n const showGradient = computed(() => {\n if (props.gradient) {\n return true;\n }\n\n return false;\n });\n\n const setupMarquee = async () => {\n if (props.clone) {\n await checkForClone();\n ForcesUpdate();\n ready.value = true;\n } else {\n ready.value = true;\n }\n };\n\n onMounted(setupMarquee);\n return (_ctx, _cache) => {\n return unref(ready) ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [(openBlock(), createElementBlock(\"div\", {\n class: \"vue3-marquee\",\n style: normalizeStyle(unref(getCurrentStyle)),\n key: unref(componentKey)\n }, [createElementVNode(\"div\", {\n class: \"transparent-overlay\",\n ref: (_value, _refs) => {\n _refs['marqueeContainer'] = _value;\n isRef(marqueeContainer) ? marqueeContainer.value = _value : marqueeContainer = _value;\n }\n }, null, 512), unref(showGradient) ? (openBlock(), createElementBlock(\"div\", _hoisted_2)) : createCommentVNode(\"\", true), createElementVNode(\"div\", {\n class: \"marquee\",\n ref: (_value, _refs) => {\n _refs['marqueeContent'] = _value;\n isRef(marqueeContent) ? marqueeContent.value = _value : marqueeContent = _value;\n }\n }, [renderSlot(_ctx.$slots, \"default\")], 512), createElementVNode(\"div\", _hoisted_3, [renderSlot(_ctx.$slots, \"default\")]), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(cloneAmount), num => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"marquee cloned\",\n key: num\n }, [renderSlot(_ctx.$slots, \"default\")]);\n }), 128))], 4))])) : createCommentVNode(\"\", true);\n };\n }\n\n});\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"\\n.vue3-marquee {\\r\\n overflow-x: hidden !important;\\r\\n display: flex !important;\\r\\n flex-direction: row !important;\\r\\n position: relative;\\r\\n width: 100%;\\n}\\n.vue3-marquee:hover div {\\r\\n animation-play-state: var(--pauseOnHover);\\n}\\n.vue3-marquee:active div {\\r\\n animation-play-state: var(--pauseOnClick);\\n}\\n.marquee {\\r\\n flex: 0 0 auto;\\r\\n min-width: var(--min-width);\\r\\n z-index: 1;\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n animation: scroll var(--duration) linear var(--delay) var(--loops);\\r\\n animation-direction: var(--direction);\\n}\\n@keyframes scroll {\\n0% {\\r\\n transform: translateX(0%);\\n}\\n100% {\\r\\n transform: translateX(-100%);\\n}\\n}\\n.overlay {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\n}\\n.transparent-overlay {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\n}\\n.overlay::before,\\r\\n.overlay::after {\\r\\n background: linear-gradient(to right, var(--gradient-color));\\r\\n content: \\\"\\\";\\r\\n height: 100%;\\r\\n position: absolute;\\r\\n width: var(--gradient-width);\\r\\n z-index: 2;\\n}\\n.overlay::after {\\r\\n right: 0;\\r\\n top: 0;\\r\\n transform: rotateZ(180deg);\\n}\\n.overlay::before {\\r\\n left: 0;\\r\\n top: 0;\\n}\\r\\n\";\nstyleInject(css_248z);\n\n// Import vue component\n// IIFE injects install function into component, allowing component\n// to be registered via Vue.use() as well as Vue.component(),\n\nvar entry_esm = /*#__PURE__*/(() => {\n // Get component instance\n const installable = script; // Attach install function executed by Vue.use()\n\n installable.install = app => {\n app.component(\"Vue3Marquee\", installable);\n };\n\n return installable;\n})(); // It's possible to expose named exports when writing components that can\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\n// export const RollupDemoDirective = directive;\n\nexport { entry_esm as default };\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkFlow = void 0;\nconst preact_1 = require(\"preact\");\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst LinkDialog_1 = require(\"./LinkDialog\");\nconst TryExtensionLinkDialog_1 = require(\"./TryExtensionLinkDialog\");\nclass LinkFlow {\n constructor(options) {\n this.extensionUI$ = new rxjs_1.BehaviorSubject({});\n this.subscriptions = new rxjs_1.Subscription();\n this.isConnected = false;\n this.isOpen = false;\n this.onCancel = null;\n this.root = null;\n // if true, hide QR code in LinkFlow (which happens if no jsonRpcUrl is provided)\n this.connectDisabled = false;\n this.darkMode = options.darkMode;\n this.version = options.version;\n this.sessionId = options.sessionId;\n this.sessionSecret = options.sessionSecret;\n this.walletLinkUrl = options.walletLinkUrl;\n this.isParentConnection = options.isParentConnection;\n this.connected$ = options.connected$;\n // Check if extension UI is enabled\n fetch(\"https://api.wallet.coinbase.com/rpc/v2/getFeatureFlags\")\n .then(res => res.json())\n .then(json => {\n const enabled = json.result.desktop.extension_ui;\n if (typeof enabled === \"undefined\") {\n this.extensionUI$.next({ value: false });\n }\n else {\n this.extensionUI$.next({ value: enabled });\n }\n })\n .catch(err => {\n console.error('Couldn\\'t fetch feature flags - ', err);\n this.extensionUI$.next({ value: false });\n });\n }\n attach(el) {\n this.root = document.createElement(\"div\");\n this.root.className = \"-walletlink-link-flow-root\";\n el.appendChild(this.root);\n this.render();\n this.subscriptions.add(this.connected$.subscribe(v => {\n if (this.isConnected !== v) {\n this.isConnected = v;\n this.render();\n }\n }));\n }\n detach() {\n var _a;\n if (!this.root) {\n return;\n }\n this.subscriptions.unsubscribe();\n (0, preact_1.render)(null, this.root);\n (_a = this.root.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.root);\n }\n setConnectDisabled(connectDisabled) {\n this.connectDisabled = connectDisabled;\n }\n open(options) {\n this.isOpen = true;\n this.onCancel = options.onCancel;\n this.render();\n }\n close() {\n this.isOpen = false;\n this.onCancel = null;\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n const subscription = this.extensionUI$\n .pipe((0, operators_1.first)(enabled => enabled.value !== undefined)) // wait for a valid value before rendering\n .subscribe(enabled => {\n if (!this.root) {\n return;\n }\n (0, preact_1.render)(enabled.value ? ((0, preact_1.h)(TryExtensionLinkDialog_1.TryExtensionLinkDialog, { darkMode: this.darkMode, version: this.version, sessionId: this.sessionId, sessionSecret: this.sessionSecret, walletLinkUrl: this.walletLinkUrl, isOpen: this.isOpen, isConnected: this.isConnected, isParentConnection: this.isParentConnection, onCancel: this.onCancel, connectDisabled: this.connectDisabled })) : ((0, preact_1.h)(LinkDialog_1.LinkDialog, { darkMode: this.darkMode, version: this.version, sessionId: this.sessionId, sessionSecret: this.sessionSecret, walletLinkUrl: this.walletLinkUrl, isOpen: this.isOpen, isConnected: this.isConnected, isParentConnection: this.isParentConnection, onCancel: this.onCancel })), this.root);\n });\n this.subscriptions.add(subscription);\n }\n}\nexports.LinkFlow = LinkFlow;\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\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.JsonRpcEngine = void 0;\nconst safe_event_emitter_1 = __importDefault(require(\"@metamask/safe-event-emitter\"));\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\n/**\n * A JSON-RPC request and response processor.\n * Give it a stack of middleware, pass it requests, and get back responses.\n */\nclass JsonRpcEngine extends safe_event_emitter_1.default {\n constructor() {\n super();\n this._middleware = [];\n }\n /**\n * Add a middleware function to the engine's middleware stack.\n *\n * @param middleware - The middleware function to add.\n */\n push(middleware) {\n this._middleware.push(middleware);\n }\n handle(req, cb) {\n if (cb && typeof cb !== 'function') {\n throw new Error('\"callback\" must be a function if provided.');\n }\n if (Array.isArray(req)) {\n if (cb) {\n return this._handleBatch(req, cb);\n }\n return this._handleBatch(req);\n }\n if (cb) {\n return this._handle(req, cb);\n }\n return this._promiseHandle(req);\n }\n /**\n * Returns this engine as a middleware function that can be pushed to other\n * engines.\n *\n * @returns This engine as a middleware function.\n */\n asMiddleware() {\n return async (req, res, next, end) => {\n try {\n const [middlewareError, isComplete, returnHandlers,] = await JsonRpcEngine._runAllMiddleware(req, res, this._middleware);\n if (isComplete) {\n await JsonRpcEngine._runReturnHandlers(returnHandlers);\n return end(middlewareError);\n }\n return next(async (handlerCallback) => {\n try {\n await JsonRpcEngine._runReturnHandlers(returnHandlers);\n }\n catch (error) {\n return handlerCallback(error);\n }\n return handlerCallback();\n });\n }\n catch (error) {\n return end(error);\n }\n };\n }\n async _handleBatch(reqs, cb) {\n // The order here is important\n try {\n // 2. Wait for all requests to finish, or throw on some kind of fatal\n // error\n const responses = await Promise.all(\n // 1. Begin executing each request in the order received\n reqs.map(this._promiseHandle.bind(this)));\n // 3. Return batch response\n if (cb) {\n return cb(null, responses);\n }\n return responses;\n }\n catch (error) {\n if (cb) {\n return cb(error);\n }\n throw error;\n }\n }\n /**\n * A promise-wrapped _handle.\n */\n _promiseHandle(req) {\n return new Promise((resolve) => {\n this._handle(req, (_err, res) => {\n // There will always be a response, and it will always have any error\n // that is caught and propagated.\n resolve(res);\n });\n });\n }\n /**\n * Ensures that the request object is valid, processes it, and passes any\n * error and the response object to the given callback.\n *\n * Does not reject.\n */\n async _handle(callerReq, cb) {\n if (!callerReq ||\n Array.isArray(callerReq) ||\n typeof callerReq !== 'object') {\n const error = new eth_rpc_errors_1.EthereumRpcError(eth_rpc_errors_1.errorCodes.rpc.invalidRequest, `Requests must be plain objects. Received: ${typeof callerReq}`, { request: callerReq });\n return cb(error, { id: undefined, jsonrpc: '2.0', error });\n }\n if (typeof callerReq.method !== 'string') {\n const error = new eth_rpc_errors_1.EthereumRpcError(eth_rpc_errors_1.errorCodes.rpc.invalidRequest, `Must specify a string method. Received: ${typeof callerReq.method}`, { request: callerReq });\n return cb(error, { id: callerReq.id, jsonrpc: '2.0', error });\n }\n const req = Object.assign({}, callerReq);\n const res = {\n id: req.id,\n jsonrpc: req.jsonrpc,\n };\n let error = null;\n try {\n await this._processRequest(req, res);\n }\n catch (_error) {\n // A request handler error, a re-thrown middleware error, or something\n // unexpected.\n error = _error;\n }\n if (error) {\n // Ensure no result is present on an errored response\n delete res.result;\n if (!res.error) {\n res.error = eth_rpc_errors_1.serializeError(error);\n }\n }\n return cb(error, res);\n }\n /**\n * For the given request and response, runs all middleware and their return\n * handlers, if any, and ensures that internal request processing semantics\n * are satisfied.\n */\n async _processRequest(req, res) {\n const [error, isComplete, returnHandlers,] = await JsonRpcEngine._runAllMiddleware(req, res, this._middleware);\n // Throw if \"end\" was not called, or if the response has neither a result\n // nor an error.\n JsonRpcEngine._checkForCompletion(req, res, isComplete);\n // The return handlers should run even if an error was encountered during\n // middleware processing.\n await JsonRpcEngine._runReturnHandlers(returnHandlers);\n // Now we re-throw the middleware processing error, if any, to catch it\n // further up the call chain.\n if (error) {\n throw error;\n }\n }\n /**\n * Serially executes the given stack of middleware.\n *\n * @returns An array of any error encountered during middleware execution,\n * a boolean indicating whether the request was completed, and an array of\n * middleware-defined return handlers.\n */\n static async _runAllMiddleware(req, res, middlewareStack) {\n const returnHandlers = [];\n let error = null;\n let isComplete = false;\n // Go down stack of middleware, call and collect optional returnHandlers\n for (const middleware of middlewareStack) {\n [error, isComplete] = await JsonRpcEngine._runMiddleware(req, res, middleware, returnHandlers);\n if (isComplete) {\n break;\n }\n }\n return [error, isComplete, returnHandlers.reverse()];\n }\n /**\n * Runs an individual middleware.\n *\n * @returns An array of any error encountered during middleware exection,\n * and a boolean indicating whether the request should end.\n */\n static _runMiddleware(req, res, middleware, returnHandlers) {\n return new Promise((resolve) => {\n const end = (err) => {\n const error = err || res.error;\n if (error) {\n res.error = eth_rpc_errors_1.serializeError(error);\n }\n // True indicates that the request should end\n resolve([error, true]);\n };\n const next = (returnHandler) => {\n if (res.error) {\n end(res.error);\n }\n else {\n if (returnHandler) {\n if (typeof returnHandler !== 'function') {\n end(new eth_rpc_errors_1.EthereumRpcError(eth_rpc_errors_1.errorCodes.rpc.internal, `JsonRpcEngine: \"next\" return handlers must be functions. ` +\n `Received \"${typeof returnHandler}\" for request:\\n${jsonify(req)}`, { request: req }));\n }\n returnHandlers.push(returnHandler);\n }\n // False indicates that the request should not end\n resolve([null, false]);\n }\n };\n try {\n middleware(req, res, next, end);\n }\n catch (error) {\n end(error);\n }\n });\n }\n /**\n * Serially executes array of return handlers. The request and response are\n * assumed to be in their scope.\n */\n static async _runReturnHandlers(handlers) {\n for (const handler of handlers) {\n await new Promise((resolve, reject) => {\n handler((err) => (err ? reject(err) : resolve()));\n });\n }\n }\n /**\n * Throws an error if the response has neither a result nor an error, or if\n * the \"isComplete\" flag is falsy.\n */\n static _checkForCompletion(req, res, isComplete) {\n if (!('result' in res) && !('error' in res)) {\n throw new eth_rpc_errors_1.EthereumRpcError(eth_rpc_errors_1.errorCodes.rpc.internal, `JsonRpcEngine: Response has no error or result for request:\\n${jsonify(req)}`, { request: req });\n }\n if (!isComplete) {\n throw new eth_rpc_errors_1.EthereumRpcError(eth_rpc_errors_1.errorCodes.rpc.internal, `JsonRpcEngine: Nothing ended request:\\n${jsonify(req)}`, { request: req });\n }\n }\n}\nexports.JsonRpcEngine = JsonRpcEngine;\nfunction jsonify(request) {\n return JSON.stringify(request, null, 2);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSnNvblJwY0VuZ2luZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Kc29uUnBjRW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNGQUE0RDtBQUM1RCxtREFBOEU7QUF1RjlFOzs7R0FHRztBQUNILE1BQWEsYUFBYyxTQUFRLDRCQUFnQjtJQUdqRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLENBQU8sVUFBbUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBaUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUEyQ0QsTUFBTSxDQUFDLEdBQVksRUFBRSxFQUFRO1FBQzNCLElBQUksRUFBRSxJQUFJLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNuQztZQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksRUFBRSxFQUFFO1lBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQThCLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBOEIsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVk7UUFDVixPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNuQyxJQUFJ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","'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;","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","module.exports = typeof window == 'object' && typeof Deno != 'object';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es-x/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es-x/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachLimit = require('./eachLimit');\n\nvar _eachLimit2 = _interopRequireDefault(_eachLimit);\n\nvar _doLimit = require('./internal/doLimit');\n\nvar _doLimit2 = _interopRequireDefault(_doLimit);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfSeries`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nexports.default = (0, _doLimit2.default)(_eachLimit2.default, 1);\nmodule.exports = exports['default'];","\"use strict\";\n// Copyright (c) 2018-2021 WalletLink.org \n// Copyright (c) 2018-2021 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOFptNS45MSA3aC0xLjk0Yy0uMS0xLjU3LS40Mi0zLS45MS00LjE1IDEuNDguODggMi41NSAyLjM4IDIuODUgNC4xNVpNOCAxNGMtLjQ1IDAtMS43Mi0xLjc3LTEuOTUtNWgzLjljLS4yMyAzLjIzLTEuNSA1LTEuOTUgNVpNNi4wNSA3QzYuMjggMy43NyA3LjU1IDIgOCAyYy40NSAwIDEuNzIgMS43NyAxLjk1IDVoLTMuOVpNNC45NCAyLjg1QzQuNDYgNCA0LjEzIDUuNDMgNC4wMyA3SDIuMDljLjMtMS43NyAxLjM3LTMuMjcgMi44NS00LjE1Wk0yLjA5IDloMS45NGMuMSAxLjU3LjQyIDMgLjkxIDQuMTVBNS45OTggNS45OTggMCAwIDEgMi4wOSA5Wm04Ljk3IDQuMTVjLjQ4LTEuMTUuODEtMi41OC45MS00LjE1aDEuOTRhNS45OTggNS45OTggMCAwIDEtMi44NSA0LjE1WiIgZmlsbD0iIzE2NTJGMCIvPjwvc3ZnPg==`;\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLink = void 0;\nconst WalletLinkAnalytics_1 = require(\"./connection/WalletLinkAnalytics\");\nconst ScopedLocalStorage_1 = require(\"./lib/ScopedLocalStorage\");\nconst WalletLinkProvider_1 = require(\"./provider/WalletLinkProvider\");\nconst WalletLinkSdkUI_1 = require(\"./provider/WalletLinkSdkUI\");\nconst WalletLinkRelay_1 = require(\"./relay/WalletLinkRelay\");\nconst WalletLinkRelayEventManager_1 = require(\"./relay/WalletLinkRelayEventManager\");\nconst util_1 = require(\"./util\");\nconst WALLETLINK_URL = process.env.WALLETLINK_URL || \"https://www.walletlink.org\";\nconst WALLETLINK_VERSION = process.env.WALLETLINK_VERSION ||\n require(\"../package.json\").version ||\n \"unknown\";\nclass WalletLink {\n /**\n * Constructor\n * @param options WalletLink options object\n */\n constructor(options) {\n var _a;\n this._appName = \"\";\n this._appLogoUrl = null;\n this._relay = null;\n this._relayEventManager = null;\n const walletLinkUrl = options.walletLinkUrl || WALLETLINK_URL;\n let walletLinkUIConstructor;\n if (!options.walletLinkUIConstructor) {\n walletLinkUIConstructor = opts => new WalletLinkSdkUI_1.WalletLinkSdkUI(opts);\n }\n else {\n walletLinkUIConstructor = options.walletLinkUIConstructor;\n }\n if (typeof options.overrideIsMetaMask === \"undefined\") {\n this._overrideIsMetaMask = false;\n }\n else {\n this._overrideIsMetaMask = options.overrideIsMetaMask;\n }\n this._overrideIsCoinbaseWallet = (_a = options.overrideIsCoinbaseWallet) !== null && _a !== void 0 ? _a : true;\n this._walletLinkAnalytics = options.walletLinkAnalytics\n ? options.walletLinkAnalytics\n : new WalletLinkAnalytics_1.WalletLinkAnalytics();\n const u = new URL(walletLinkUrl);\n const walletLinkOrigin = `${u.protocol}//${u.host}`;\n this._storage = new ScopedLocalStorage_1.ScopedLocalStorage(`-walletlink:${walletLinkOrigin}`);\n this._storage.setItem(\"version\", WalletLink.VERSION);\n if (typeof window.walletLinkExtension !== \"undefined\") {\n return;\n }\n this._relayEventManager = new WalletLinkRelayEventManager_1.WalletLinkRelayEventManager();\n this._relay = new WalletLinkRelay_1.WalletLinkRelay({\n walletLinkUrl,\n version: WALLETLINK_VERSION,\n darkMode: !!options.darkMode,\n walletLinkUIConstructor,\n storage: this._storage,\n relayEventManager: this._relayEventManager,\n walletLinkAnalytics: this._walletLinkAnalytics\n });\n this.setAppInfo(options.appName, options.appLogoUrl);\n this._relay.attachUI();\n }\n /**\n * Create a Web3 Provider object\n * @param jsonRpcUrl Ethereum JSON RPC URL (Default: \"\")\n * @param chainId Ethereum Chain ID (Default: 1)\n * @returns A Web3 Provider\n */\n makeWeb3Provider(jsonRpcUrl = \"\", chainId = 1) {\n if (typeof window.walletLinkExtension !== \"undefined\") {\n if (\n /* eslint-disable @typescript-eslint/ban-ts-comment */\n // @ts-ignore\n typeof window.walletLinkExtension.isCipher !== \"boolean\" ||\n // @ts-ignore\n !window.walletLinkExtension.isCipher\n /* eslint-enable @typescript-eslint/ban-ts-comment */\n ) {\n window.walletLinkExtension.setProviderInfo(jsonRpcUrl, chainId);\n }\n return window.walletLinkExtension;\n }\n const relay = this._relay;\n if (!relay || !this._relayEventManager || !this._storage) {\n throw new Error(\"Relay not initialized, should never happen\");\n }\n if (!jsonRpcUrl)\n relay.setConnectDisabled(true);\n return new WalletLinkProvider_1.WalletLinkProvider({\n relayProvider: () => Promise.resolve(relay),\n relayEventManager: this._relayEventManager,\n storage: this._storage,\n jsonRpcUrl,\n chainId,\n walletLinkAnalytics: this._walletLinkAnalytics,\n overrideIsMetaMask: this._overrideIsMetaMask,\n overrideIsCoinbaseWallet: this._overrideIsCoinbaseWallet\n });\n }\n /**\n * Set application information\n * @param appName Application name\n * @param appLogoUrl Application logo image URL\n */\n setAppInfo(appName, appLogoUrl) {\n var _a;\n this._appName = appName || \"DApp\";\n this._appLogoUrl = appLogoUrl || (0, util_1.getFavicon)();\n if (typeof window.walletLinkExtension !== \"undefined\") {\n if (\n /* eslint-disable @typescript-eslint/ban-ts-comment */\n // @ts-ignore\n typeof window.walletLinkExtension.isCipher !== \"boolean\" ||\n // @ts-ignore\n !window.walletLinkExtension.isCipher\n /* eslint-enable @typescript-eslint/ban-ts-comment */\n ) {\n window.walletLinkExtension.setAppInfo(this._appName, this._appLogoUrl);\n }\n }\n else {\n (_a = this._relay) === null || _a === void 0 ? void 0 : _a.setAppInfo(this._appName, this._appLogoUrl);\n }\n }\n /**\n * Disconnect. After disconnecting, this will reload the web page to ensure\n * all potential stale state is cleared.\n */\n disconnect() {\n var _a;\n if (typeof window.walletLinkExtension !== \"undefined\") {\n window.walletLinkExtension.close();\n }\n else {\n (_a = this._relay) === null || _a === void 0 ? void 0 : _a.resetAndReload();\n }\n }\n}\nexports.WalletLink = WalletLink;\n/**\n * WalletLink version\n */\nWalletLink.VERSION = WALLETLINK_VERSION;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst buffer_1 = __importDefault(require(\"buffer\"));\nconst keccak_1 = __importDefault(require(\"keccak\"));\nconst Buffer = buffer_1.default.Buffer;\nfunction keccak256(value) {\n value = toBuffer(value);\n return (0, keccak_1.default)('keccak256').update(value).digest();\n}\nfunction toBuffer(value) {\n if (!Buffer.isBuffer(value)) {\n if (Array.isArray(value)) {\n value = Buffer.from(value);\n }\n else if (typeof value === 'string') {\n if (isHexString(value)) {\n value = Buffer.from(padToEven(stripHexPrefix(value)), 'hex');\n }\n else {\n value = Buffer.from(value);\n }\n }\n else if (typeof value === 'number') {\n value = intToBuffer(value);\n }\n else if (value === null || value === undefined) {\n value = Buffer.allocUnsafe(0);\n }\n else if (bn_js_1.default.isBN(value)) {\n value = value.toArrayLike(Buffer);\n }\n else if (value.toArray) {\n // converts a BN to a Buffer\n value = Buffer.from(value.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return value;\n}\nfunction isHexString(value, length) {\n if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nfunction padToEven(value) {\n if (typeof value !== 'string') {\n throw new Error(`while padding to even, value must be string, is currently ${typeof value}, while padToEven.`);\n }\n if (value.length % 2) {\n value = `0${value}`;\n }\n return value;\n}\nfunction stripHexPrefix(value) {\n if (typeof value !== 'string') {\n return value;\n }\n return isHexPrefixed(value) ? value.slice(2) : value;\n}\nfunction isHexPrefixed(value) {\n if (typeof value !== 'string') {\n throw new Error(\"value must be type 'string', is currently type \" + (typeof value) + ', while checking isHexPrefixed.');\n }\n return value.slice(0, 2) === '0x';\n}\nfunction intToBuffer(i) {\n const hex = intToHex(i);\n return Buffer.from(padToEven(hex.slice(2)), 'hex');\n}\nfunction intToHex(i) {\n const hex = i.toString(16);\n return `0x${hex}`;\n}\nif (typeof window !== 'undefined') {\n window.keccak256 = keccak256;\n}\nmodule.exports = keccak256;\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","import { browserSha256, browserSha512 } from \"../lib/browser\";\nexport async function sha256(msg) {\n const result = await browserSha256(msg);\n return result;\n}\nexport async function sha512(msg) {\n const result = await browserSha512(msg);\n return result;\n}\nexport async function ripemd160(msg) {\n throw new Error(\"Not supported for Browser async methods, use sync instead!\");\n}\n//# sourceMappingURL=sha2.js.map","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Session = void 0;\nconst js_sha256_1 = require(\"js-sha256\");\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst util_1 = require(\"../util\");\nconst STORAGE_KEY_SESSION_ID = \"session:id\";\nconst STORAGE_KEY_SESSION_SECRET = \"session:secret\";\nconst STORAGE_KEY_SESSION_LINKED = \"session:linked\";\nclass Session {\n constructor(storage, id, secret, linked) {\n this._storage = storage;\n this._id = id || (0, util_1.randomBytesHex)(16);\n this._secret = secret || (0, util_1.randomBytesHex)(32);\n const hash = js_sha256_1.sha256.create();\n hash.update(`${this._id}, ${this._secret} WalletLink`);\n this._key = hash.hex();\n this._linked = !!linked;\n }\n static load(storage) {\n const id = storage.getItem(STORAGE_KEY_SESSION_ID);\n const linked = storage.getItem(STORAGE_KEY_SESSION_LINKED);\n const secret = storage.getItem(STORAGE_KEY_SESSION_SECRET);\n if (id && secret) {\n return new Session(storage, id, secret, linked === \"1\");\n }\n return null;\n }\n static get persistedSessionIdChange$() {\n return (0, rxjs_1.fromEvent)(window, \"storage\").pipe((0, operators_1.filter)(evt => evt.key === STORAGE_KEY_SESSION_ID), (0, operators_1.map)(evt => ({\n oldValue: evt.oldValue || null,\n newValue: evt.newValue || null\n })));\n }\n /**\n * Takes in a session ID and returns the sha256 hash of it.\n * @param sessionId session ID\n */\n static hash(sessionId) {\n const hash = js_sha256_1.sha256.create();\n return hash.update(sessionId).hex();\n }\n get id() {\n return this._id;\n }\n get secret() {\n return this._secret;\n }\n get key() {\n return this._key;\n }\n get linked() {\n return this._linked;\n }\n set linked(val) {\n this._linked = val;\n this.persistLinked();\n }\n save() {\n this._storage.setItem(STORAGE_KEY_SESSION_ID, this._id);\n this._storage.setItem(STORAGE_KEY_SESSION_SECRET, this._secret);\n this.persistLinked();\n return this;\n }\n persistLinked() {\n this._storage.setItem(STORAGE_KEY_SESSION_LINKED, this._linked ? \"1\" : \"0\");\n }\n}\nexports.Session = Session;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar XMLHttpRequestEventTarget = /** @class */ (function () {\n function XMLHttpRequestEventTarget() {\n this.listeners = {};\n }\n XMLHttpRequestEventTarget.prototype.addEventListener = function (eventType, listener) {\n eventType = eventType.toLowerCase();\n this.listeners[eventType] = this.listeners[eventType] || [];\n this.listeners[eventType].push(listener.handleEvent || listener);\n };\n XMLHttpRequestEventTarget.prototype.removeEventListener = function (eventType, listener) {\n eventType = eventType.toLowerCase();\n if (!this.listeners[eventType]) {\n return;\n }\n var index = this.listeners[eventType].indexOf(listener.handleEvent || listener);\n if (index < 0) {\n return;\n }\n this.listeners[eventType].splice(index, 1);\n };\n XMLHttpRequestEventTarget.prototype.dispatchEvent = function (event) {\n var eventType = event.type.toLowerCase();\n event.target = this; // TODO: set event.currentTarget?\n if (this.listeners[eventType]) {\n for (var _i = 0, _a = this.listeners[eventType]; _i < _a.length; _i++) {\n var listener_1 = _a[_i];\n listener_1.call(this, event);\n }\n }\n var listener = this[\"on\" + eventType];\n if (listener) {\n listener.call(this, event);\n }\n return true;\n };\n return XMLHttpRequestEventTarget;\n}());\nexports.XMLHttpRequestEventTarget = XMLHttpRequestEventTarget;\n//# sourceMappingURL=xml-http-request-event-target.js.map","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","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\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkRelay = void 0;\nconst bind_decorator_1 = __importDefault(require(\"bind-decorator\"));\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst WalletLinkAnalytics_1 = require(\"../connection/WalletLinkAnalytics\");\nconst WalletLinkConnection_1 = require(\"../connection/WalletLinkConnection\");\nconst init_1 = require(\"../init\");\nconst util_1 = require(\"../util\");\nconst aes256gcm = __importStar(require(\"./aes256gcm\"));\nconst Session_1 = require(\"./Session\");\nconst WalletLinkRelayAbstract_1 = require(\"./WalletLinkRelayAbstract\");\nconst Web3Method_1 = require(\"./Web3Method\");\nconst Web3RequestCanceledMessage_1 = require(\"./Web3RequestCanceledMessage\");\nconst Web3RequestMessage_1 = require(\"./Web3RequestMessage\");\nconst Web3Response_1 = require(\"./Web3Response\");\nconst Web3ResponseMessage_1 = require(\"./Web3ResponseMessage\");\nclass WalletLinkRelay extends WalletLinkRelayAbstract_1.WalletLinkRelayAbstract {\n constructor(options) {\n super();\n this.accountsCallback = null;\n this.chainCallback = null;\n this.appName = \"\";\n this.appLogoUrl = null;\n this.subscriptions = new rxjs_1.Subscription();\n this.walletLinkUrl = options.walletLinkUrl;\n this.storage = options.storage;\n this._session =\n Session_1.Session.load(options.storage) || new Session_1.Session(options.storage).save();\n this.relayEventManager = options.relayEventManager;\n this.walletLinkAnalytics = options.walletLinkAnalytics\n ? options.walletLinkAnalytics\n : new WalletLinkAnalytics_1.WalletLinkAnalytics();\n this.connection = new WalletLinkConnection_1.WalletLinkConnection(this._session.id, this._session.key, this.walletLinkUrl, this.walletLinkAnalytics);\n this.subscriptions.add(this.connection.incomingEvent$\n .pipe((0, operators_1.filter)(m => m.event === \"Web3Response\"))\n .subscribe({ next: this.handleIncomingEvent }) // eslint-disable-line @typescript-eslint/unbound-method\n );\n this.subscriptions.add(this.connection.linked$\n .pipe((0, operators_1.skip)(1), (0, operators_1.tap)((linked) => {\n var _a;\n this.isLinked = linked;\n const cachedAddresses = this.storage.getItem(WalletLinkRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY);\n this.isUnlinkedErrorState = false;\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(\" \");\n const wasConnectedViaStandalone = this.storage.getItem(\"IsStandaloneSigning\") === \"true\";\n if (addresses[0] !== \"\" && !linked) {\n if (!wasConnectedViaStandalone) {\n this.isUnlinkedErrorState = true;\n const sessionIdHash = this.getSessionIdHash();\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.UNLINKED_ERROR_STATE, { sessionIdHash });\n }\n }\n }\n }))\n .subscribe());\n // if session is marked destroyed, reset and reload\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => !!c.metadata && c.metadata.__destroyed === \"1\"))\n .subscribe(() => {\n var _a;\n const alreadyDestroyed = this.connection.isDestroyed;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.METADATA_DESTROYED, {\n alreadyDestroyed,\n sessionIdHash: this.getSessionIdHash()\n });\n return this.resetAndReload();\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.WalletUsername !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.WalletUsername, this._session.secret)))\n .subscribe({\n next: walletUsername => {\n this.storage.setItem(WalletLinkRelayAbstract_1.WALLET_USER_NAME_KEY, walletUsername);\n },\n error: () => {\n var _a;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"username\"\n });\n }\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.AppVersion !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.AppVersion, this._session.secret)))\n .subscribe({\n next: appVersion => {\n this.storage.setItem(WalletLinkRelayAbstract_1.APP_VERSION_KEY, appVersion);\n },\n error: () => {\n var _a;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"appversion\"\n });\n }\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata &&\n c.metadata.ChainId !== undefined &&\n c.metadata.JsonRpcUrl !== undefined))\n .pipe((0, operators_1.mergeMap)(c => (0, rxjs_1.zip)(aes256gcm.decrypt(c.metadata.ChainId, this._session.secret), aes256gcm.decrypt(c.metadata.JsonRpcUrl, this._session.secret))))\n .pipe((0, operators_1.distinctUntilChanged)())\n .subscribe({\n next: ([chainId, jsonRpcUrl]) => {\n if (this.chainCallback) {\n this.chainCallback(chainId, jsonRpcUrl);\n }\n },\n error: () => {\n var _a;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"chainId|jsonRpcUrl\"\n });\n }\n }));\n this.subscriptions.add(this.connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.EthereumAddress !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.EthereumAddress, this._session.secret)))\n .subscribe({\n next: selectedAddress => {\n if (this.accountsCallback) {\n this.accountsCallback([selectedAddress]);\n }\n if (WalletLinkRelay.accountRequestCallbackIds.size > 0) {\n // We get the ethereum address from the metadata. If for whatever\n // reason we don't get a response via an explicit web3 message\n // we can still fulfill the eip1102 request.\n Array.from(WalletLinkRelay.accountRequestCallbackIds.values()).forEach(id => {\n const message = (0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.RequestEthereumAccountsResponse)([\n selectedAddress\n ])\n });\n this.invokeCallback(Object.assign(Object.assign({}, message), { id }));\n });\n WalletLinkRelay.accountRequestCallbackIds.clear();\n }\n },\n error: () => {\n var _a;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"selectedAddress\"\n });\n }\n }));\n this.ui = options.walletLinkUIConstructor({\n walletLinkUrl: options.walletLinkUrl,\n version: options.version,\n darkMode: options.darkMode,\n session: this._session,\n connected$: this.connection.connected$\n });\n this.connection.connect();\n }\n attachUI() {\n this.ui.attach();\n }\n resetAndReload() {\n this.connection\n .setSessionMetadata(\"__destroyed\", \"1\")\n .pipe((0, operators_1.timeout)(1000), (0, operators_1.catchError)(_ => (0, rxjs_1.of)(null)))\n .subscribe(_ => {\n var _a, _b, _c;\n try {\n this.subscriptions.unsubscribe();\n }\n catch (err) {\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error unsubscribing\"\n });\n }\n (_b = this.walletLinkAnalytics) === null || _b === void 0 ? void 0 : _b.sendEvent(init_1.EVENTS.SESSION_STATE_CHANGE, {\n method: \"relay::resetAndReload\",\n sessionMetadataChange: \"__destroyed, 1\",\n sessionIdHash: this.getSessionIdHash()\n });\n this.connection.destroy();\n /**\n * Only clear storage if the session id we have in memory matches the one on disk\n * Otherwise, in the case where we have 2 tabs, another tab might have cleared\n * storage already. In that case if we clear storage again, the user will be in\n * a state where the first tab allows the user to connect but the session that\n * was used isn't persisted. This leaves the user in a state where they aren't\n * connected to the mobile app.\n */\n const storedSession = Session_1.Session.load(this.storage);\n if ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) === this._session.id) {\n this.storage.clear();\n }\n else if (storedSession) {\n (_c = this.walletLinkAnalytics) === null || _c === void 0 ? void 0 : _c.sendEvent(init_1.EVENTS.SKIPPED_CLEARING_SESSION, {\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: Session_1.Session.hash(storedSession.id)\n });\n }\n this.ui.reloadUI();\n }, (err) => {\n var _a;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.FAILURE, {\n method: \"relay::resetAndReload\",\n message: `failed to reset and reload with ${err}`,\n sessionIdHash: this.getSessionIdHash()\n });\n });\n }\n setAppInfo(appName, appLogoUrl) {\n this.appName = appName;\n this.appLogoUrl = appLogoUrl;\n }\n getStorageItem(key) {\n return this.storage.getItem(key);\n }\n get session() {\n return this._session;\n }\n setStorageItem(key, value) {\n this.storage.setItem(key, value);\n }\n signEthereumMessage(message, address, addPrefix, typedDataJson) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumMessage,\n params: {\n message: (0, util_1.hexStringFromBuffer)(message, true),\n address,\n addPrefix,\n typedDataJson: typedDataJson || null\n }\n });\n }\n ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.ethereumAddressFromSignedMessage,\n params: {\n message: (0, util_1.hexStringFromBuffer)(message, true),\n signature: (0, util_1.hexStringFromBuffer)(signature, true),\n addPrefix\n }\n });\n }\n signEthereumTransaction(params) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_1.bigIntStringFromBN)(params.weiValue),\n data: (0, util_1.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxFeePerGas: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxPriorityFeePerGas: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n gasLimit: params.gasLimit ? (0, util_1.bigIntStringFromBN)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: false\n }\n });\n }\n signAndSubmitEthereumTransaction(params) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_1.bigIntStringFromBN)(params.weiValue),\n data: (0, util_1.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxFeePerGas: params.maxFeePerGas\n ? (0, util_1.bigIntStringFromBN)(params.maxFeePerGas)\n : null,\n maxPriorityFeePerGas: params.maxPriorityFeePerGas\n ? (0, util_1.bigIntStringFromBN)(params.maxPriorityFeePerGas)\n : null,\n gasLimit: params.gasLimit ? (0, util_1.bigIntStringFromBN)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: true\n }\n });\n }\n submitEthereumTransaction(signedTransaction, chainId) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.submitEthereumTransaction,\n params: {\n signedTransaction: (0, util_1.hexStringFromBuffer)(signedTransaction, true),\n chainId\n }\n });\n }\n scanQRCode(regExp) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.scanQRCode,\n params: { regExp }\n });\n }\n genericRequest(data, action) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.generic,\n params: {\n action,\n data\n }\n });\n }\n sendGenericMessage(request) {\n return this.sendRequest(request);\n }\n sendRequest(request) {\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = () => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(request.method, \"User rejected request\")\n }));\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n const promise = new Promise((resolve, reject) => {\n if (!this.ui.isStandalone()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n if (this.ui.isStandalone()) {\n this.sendRequestStandalone(id, request);\n }\n else {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n setConnectDisabled(disabled) {\n this.ui.setConnectDisabled(disabled);\n }\n setAccountsCallback(accountsCallback) {\n this.accountsCallback = accountsCallback;\n }\n setChainCallback(chainCallback) {\n this.chainCallback = chainCallback;\n }\n publishWeb3RequestEvent(id, request) {\n var _a;\n const message = (0, Web3RequestMessage_1.Web3RequestMessage)({ id, request });\n const storedSession = Session_1.Session.load(this.storage);\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.WEB3_REQUEST, {\n eventId: message.id,\n method: `relay::${message.request.method}`,\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: storedSession ? Session_1.Session.hash(storedSession.id) : \"\",\n isSessionMismatched: ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) !== this._session.id).toString()\n });\n this.subscriptions.add(this.publishEvent(\"Web3Request\", message, true).subscribe({\n error: err => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id: message.id,\n response: {\n method: message.request.method,\n errorMessage: err.message\n }\n }));\n }\n }));\n }\n publishWeb3RequestCanceledEvent(id) {\n const message = (0, Web3RequestCanceledMessage_1.Web3RequestCanceledMessage)(id);\n this.subscriptions.add(this.publishEvent(\"Web3RequestCanceled\", message, false).subscribe());\n }\n publishEvent(event, message, callWebhook) {\n const secret = this.session.secret;\n return new rxjs_1.Observable(subscriber => {\n void aes256gcm\n .encrypt(JSON.stringify(Object.assign(Object.assign({}, message), { origin: location.origin })), secret)\n .then((encrypted) => {\n subscriber.next(encrypted);\n subscriber.complete();\n });\n }).pipe((0, operators_1.mergeMap)((encrypted) => {\n return this.connection.publishEvent(event, encrypted, callWebhook);\n }));\n }\n handleIncomingEvent(event) {\n try {\n this.subscriptions.add(aes256gcm\n .decrypt(event.data, this.session.secret)\n .pipe((0, operators_1.map)(c => JSON.parse(c)))\n .subscribe({\n next: json => {\n const message = (0, Web3ResponseMessage_1.isWeb3ResponseMessage)(json) ? json : null;\n if (!message) {\n return;\n }\n this.handleWeb3ResponseMessage(message);\n },\n error: () => {\n var _a;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"incomingEvent\"\n });\n }\n }));\n }\n catch (_a) {\n return;\n }\n }\n handleWeb3ResponseMessage(message) {\n var _a;\n const { response } = message;\n (_a = this.walletLinkAnalytics) === null || _a === void 0 ? void 0 : _a.sendEvent(init_1.EVENTS.WEB3_RESPONSE, {\n eventId: message.id,\n method: `relay::${response.method}`,\n sessionIdHash: this.getSessionIdHash()\n });\n if ((0, Web3Response_1.isRequestEthereumAccountsResponse)(response)) {\n Array.from(WalletLinkRelay.accountRequestCallbackIds.values()).forEach(id => this.invokeCallback(Object.assign(Object.assign({}, message), { id })));\n WalletLinkRelay.accountRequestCallbackIds.clear();\n return;\n }\n this.invokeCallback(message);\n }\n invokeCallback(message) {\n const callback = this.relayEventManager.callbacks.get(message.id);\n if (callback) {\n callback(message.response);\n this.relayEventManager.callbacks.delete(message.id);\n }\n }\n requestEthereumAccounts() {\n let request = {\n method: Web3Method_1.Web3Method.requestEthereumAccounts,\n params: {\n appName: this.appName,\n appLogoUrl: this.appLogoUrl || null\n }\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = () => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(request.method, \"User rejected request\")\n }));\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n const promise = new Promise((resolve, reject) => {\n var _a;\n this.relayEventManager.callbacks.set(id, response => {\n this.ui.hideRequestEthereumAccounts();\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const userAgent = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) || null;\n if (userAgent &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {\n window.location.href = `https://go.cb-w.com/xoXnYwQimhb?cb_url=${window.location.href}`;\n return;\n }\n if (this.ui.inlineAccountsResponse()) {\n const onAccounts = (accounts) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.RequestEthereumAccountsResponse)(accounts)\n }));\n };\n this.ui.requestEthereumAccounts({\n onCancel: cancel,\n onAccounts\n });\n }\n else {\n this.ui.requestEthereumAccounts({\n onCancel: cancel\n });\n }\n WalletLinkRelay.accountRequestCallbackIds.add(id);\n if (!this.ui.inlineAccountsResponse() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n addEthereumChain(chainId, rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency) {\n let request = {\n method: Web3Method_1.Web3Method.addEthereumChain,\n params: {\n chainId,\n rpcUrls,\n blockExplorerUrls,\n chainName,\n iconUrls,\n nativeCurrency\n }\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = () => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(request.method, \"User rejected request\")\n }));\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineAddEthereumChain(chainId)) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = () => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.AddEthereumChainResponse)({\n isApproved: false,\n rpcUrl: \"\"\n })\n }));\n };\n const approve = (rpcUrl) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.AddEthereumChainResponse)({ isApproved: true, rpcUrl })\n }));\n };\n if (this.ui.inlineAddEthereumChain(chainId)) {\n this.ui.addEthereumChain({\n onCancel: _cancel,\n onApprove: approve,\n chainId: request.params.chainId,\n rpcUrls: request.params.rpcUrls,\n blockExplorerUrls: request.params\n .blockExplorerUrls,\n chainName: request.params.chainName,\n iconUrls: request.params.iconUrls,\n nativeCurrency: request.params\n .nativeCurrency\n });\n }\n if (!this.ui.inlineAddEthereumChain(chainId) && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n switchEthereumChain(chainId) {\n let request = {\n method: Web3Method_1.Web3Method.switchEthereumChain,\n params: {\n chainId\n }\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = () => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(request.method, \"User rejected request\")\n }));\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineSwitchEthereumChain()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage && response.errorCode) {\n return reject(eth_rpc_errors_1.ethErrors.provider.custom({\n code: response.errorCode,\n message: `Unrecognized chain ID. Try adding the chain using addEthereumChain first.`\n }));\n }\n else if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (errorCode) => {\n if (errorCode) {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(Web3Method_1.Web3Method.switchEthereumChain, \"unsupported chainId\", errorCode)\n }));\n }\n else {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SwitchEthereumChainResponse)({\n isApproved: false,\n rpcUrl: \"\"\n })\n }));\n }\n };\n const approve = (rpcUrl) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SwitchEthereumChainResponse)({\n isApproved: true,\n rpcUrl\n })\n }));\n };\n this.ui.switchEthereumChain({\n onCancel: _cancel,\n onApprove: approve,\n chainId: request.params.chainId\n });\n if (!this.ui.inlineSwitchEthereumChain() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n getSessionIdHash() {\n return Session_1.Session.hash(this._session.id);\n }\n sendRequestStandalone(id, request) {\n const _cancel = () => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(request.method, \"User rejected request\")\n }));\n };\n const onSuccess = (response) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response\n }));\n };\n switch (request.method) {\n case Web3Method_1.Web3Method.signEthereumMessage:\n this.ui.signEthereumMessage({\n request,\n onSuccess,\n onCancel: _cancel\n });\n break;\n case Web3Method_1.Web3Method.signEthereumTransaction:\n this.ui.signEthereumTransaction({\n request,\n onSuccess,\n onCancel: _cancel\n });\n break;\n case Web3Method_1.Web3Method.submitEthereumTransaction:\n this.ui.submitEthereumTransaction({\n request,\n onSuccess,\n onCancel: _cancel\n });\n break;\n case Web3Method_1.Web3Method.ethereumAddressFromSignedMessage:\n this.ui.ethereumAddressFromSignedMessage({\n request,\n onSuccess\n });\n break;\n default:\n _cancel();\n break;\n }\n }\n}\nWalletLinkRelay.accountRequestCallbackIds = new Set();\n__decorate([\n bind_decorator_1.default\n], WalletLinkRelay.prototype, \"resetAndReload\", null);\n__decorate([\n bind_decorator_1.default\n], WalletLinkRelay.prototype, \"handleIncomingEvent\", null);\nexports.WalletLinkRelay = WalletLinkRelay;\n","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n","\"use strict\";\n// Copyright (c) 2018-2020 WalletLink.org \n// Copyright (c) 2018-2020 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopedLocalStorage = void 0;\nclass ScopedLocalStorage {\n constructor(scope) {\n this.scope = scope;\n }\n setItem(key, value) {\n localStorage.setItem(this.scopedKey(key), value);\n }\n getItem(key) {\n return localStorage.getItem(this.scopedKey(key));\n }\n removeItem(key) {\n localStorage.removeItem(this.scopedKey(key));\n }\n clear() {\n const prefix = this.scopedKey(\"\");\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (typeof key === \"string\" && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n scopedKey(key) {\n return `${this.scope}:${key}`;\n }\n}\nexports.ScopedLocalStorage = ScopedLocalStorage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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(\"./events\"), exports);\n__exportStar(require(\"./WalletLinkAnalyticsAbstract\"), exports);\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\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}","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","import { reactive, getCurrentInstance, onUnmounted } from 'vue';\n\nvar inBrowser = typeof window !== 'undefined';\r\nvar debounce = function (callback, wait) {\r\n var timeout;\r\n // eslint-disable-next-line func-names\r\n return function () {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var context = this;\r\n // eslint-disable-next-line prefer-rest-params\r\n var args = arguments;\r\n // eslint-disable-next-line func-names\r\n var later = function () {\r\n timeout = null;\r\n callback.apply(context, args);\r\n };\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n};\n\n// GoogleBot default screen properties\r\nvar DEFAULT_WIDTH = 410;\r\nvar DEFAULT_HEIGHT = 730;\r\nvar DEFAULT_ORIENTATION = 'portrait';\r\nvar DEFAULT_TOUCH_SUPPORT = true;\r\nvar DEFAULT_DEBOUNCE_DELAY = 100;\r\nvar useScreen = function (config, debounceDelay) {\r\n if (config === void 0) { config = {}; }\r\n if (debounceDelay === void 0) { debounceDelay = DEFAULT_DEBOUNCE_DELAY; }\r\n var width = config.width || DEFAULT_WIDTH;\r\n var height = config.height || DEFAULT_HEIGHT;\r\n var orientation = config.orientation || DEFAULT_ORIENTATION;\r\n var touch = config.touch === undefined ? DEFAULT_TOUCH_SUPPORT : config.touch;\r\n var screen = reactive({\r\n resolution: width + \"x\" + height,\r\n width: width,\r\n height: height,\r\n orientation: orientation,\r\n portrait: orientation === 'portrait',\r\n landscape: orientation !== 'portrait',\r\n touch: touch,\r\n });\r\n /* istanbul ignore next */\r\n var updateWindowProperties = function () {\r\n screen.width = window.innerWidth;\r\n screen.height = window.innerHeight;\r\n screen.resolution = screen.width + \"x\" + screen.height;\r\n };\r\n /* istanbul ignore next */\r\n var updateOrientationPropperties = function (e) {\r\n screen.portrait = e.matches;\r\n screen.landscape = !e.matches;\r\n screen.orientation = e.matches ? 'portrait' : 'landscape';\r\n };\r\n /* istanbul ignore if */\r\n if (inBrowser) {\r\n var resizeListener_1 = debounce(updateWindowProperties, debounceDelay);\r\n window.addEventListener('resize', resizeListener_1);\r\n updateWindowProperties();\r\n var query_1 = window.matchMedia('(orientation: portrait)');\r\n if ('addEventListener' in query_1) {\r\n query_1.addEventListener('change', updateOrientationPropperties);\r\n }\r\n else {\r\n // https://github.com/reegodev/vue-screen/issues/30\r\n // query.addListener is not deprecated for iOS 12\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n query_1.addListener(updateOrientationPropperties);\r\n }\r\n updateOrientationPropperties(query_1);\r\n // This does not react to resize events.\r\n // You always need to reload the browser to add/remove touch support,\r\n // even when using DevTools device simulation\r\n screen.touch = 'ontouchstart' in window;\r\n // Do not leak memory by keeping event listeners active.\r\n // This appears to work as expected, using useScreen() inside components\r\n // triggers this hook when they are destroyed.\r\n if (getCurrentInstance()) {\r\n onUnmounted(function () {\r\n window.removeEventListener('resize', resizeListener_1);\r\n if ('removeEventListener' in query_1) {\r\n query_1.removeEventListener('change', updateOrientationPropperties);\r\n }\r\n else {\r\n // https://github.com/reegodev/vue-screen/issues/30\r\n // query.removeListener is not deprecated for iOS 12\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n query_1.removeListener(updateOrientationPropperties);\r\n }\r\n });\r\n }\r\n }\r\n return screen;\r\n};\n\nvar tailwind = {\r\n sm: '640px',\r\n md: '768px',\r\n lg: '1024px',\r\n xl: '1280px',\r\n '2xl': 1536,\r\n};\n\nvar bootstrap = {\r\n xs: '0px',\r\n sm: '480px',\r\n md: '768px',\r\n lg: '992px',\r\n xl: '1200px',\r\n xxl: '1400px',\r\n};\n\nvar bulma = {\r\n mobile: 0,\r\n tablet: 769,\r\n desktop: 1024,\r\n widescreen: 1216,\r\n fullhd: 1408,\r\n};\n\nvar materialize = {\r\n s: 0,\r\n m: 601,\r\n l: 993,\r\n xl: 1201,\r\n};\n\nvar foundation = {\r\n small: 0,\r\n medium: 640,\r\n large: 1024,\r\n};\n\nvar semanticUi = {\r\n mobile: 0,\r\n tablet: 768,\r\n computer: 992,\r\n large: 1201,\r\n};\n\nvar grids = {\r\n tailwind: tailwind,\r\n bootstrap: bootstrap,\r\n bulma: bulma,\r\n materialize: materialize,\r\n foundation: foundation,\r\n semanticUi: semanticUi,\r\n};\n\nvar DEFAULT_GRID_FRAMEWORK = 'tailwind';\r\nvar createGridObject = function (config) {\r\n return Object.keys(config).reduce(function (accumulator, key) {\r\n accumulator[key] = false;\r\n return accumulator;\r\n }, {\r\n breakpoint: '',\r\n });\r\n};\r\nvar createConfigFromLiteral = function (literal) {\r\n if (!grids[literal]) {\r\n throw new Error(\"Invalid grid type \\\"\" + literal + \"\\\"\");\r\n }\r\n return grids[literal];\r\n};\r\nvar getCurrentBreakpoint = function (config, object) {\r\n var current = Object.keys(object)\r\n .filter(function (key) {\r\n return !['breakpoint'].includes(key) && typeof config[key] !== 'function';\r\n })\r\n .reverse()\r\n .find(function (key) { return object[key]; });\r\n return current || '';\r\n};\r\n/* istanbul ignore next */\r\nvar updateComputedProperties = function (config, object) {\r\n Object.keys(config)\r\n .filter(function (breakpoint) {\r\n return typeof config[breakpoint] === 'function';\r\n })\r\n .forEach(function (breakpoint) {\r\n var fn = config[breakpoint];\r\n object[breakpoint] = fn.call(null, object);\r\n });\r\n};\r\nvar debouncedUpdateComputedProperties = debounce(updateComputedProperties, 100);\r\n/* istanbul ignore next */\r\nvar createMediaQueries = function (config, object) {\r\n Object.keys(config)\r\n .filter(function (breakpoint) {\r\n return typeof config[breakpoint] !== 'function';\r\n })\r\n .forEach(function (breakpoint) {\r\n var width = config[breakpoint];\r\n if (typeof width === 'number') {\r\n width = width + \"px\";\r\n }\r\n else {\r\n width = width.toString();\r\n }\r\n var onChange = function (event) {\r\n object[breakpoint] = event.matches;\r\n object.breakpoint = getCurrentBreakpoint(config, object);\r\n debouncedUpdateComputedProperties(config, object);\r\n };\r\n var query = window.matchMedia(\"(min-width: \" + width + \")\");\r\n if ('addEventListener' in query) {\r\n query.addEventListener('change', onChange);\r\n }\r\n else {\r\n // https://github.com/reegodev/vue-screen/issues/30\r\n // query.addListener is not deprecated for iOS 12\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n query.addListener(onChange);\r\n }\r\n object[breakpoint] = query.matches;\r\n object.breakpoint = getCurrentBreakpoint(config, object);\r\n // Do not leak memory by keeping event listeners active.\r\n // This appears to work as expected, using useGrid() inside components\r\n // triggers this hook when they are destroyed.\r\n if (getCurrentInstance()) {\r\n onUnmounted(function () {\r\n if ('removeEventListener' in query) {\r\n query.removeEventListener('change', onChange);\r\n }\r\n else {\r\n // https://github.com/reegodev/vue-screen/issues/30\r\n // query.removeListener is not deprecated for iOS 12\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n query.removeListener(onChange);\r\n }\r\n });\r\n }\r\n });\r\n updateComputedProperties(config, object);\r\n};\r\nfunction useGrid(gridConfig) {\r\n if (gridConfig === void 0) { gridConfig = DEFAULT_GRID_FRAMEWORK; }\r\n var config;\r\n if (typeof gridConfig === 'string') {\r\n config = createConfigFromLiteral(gridConfig);\r\n }\r\n else {\r\n config = Object.assign(gridConfig);\r\n }\r\n var gridObject = reactive(createGridObject(config));\r\n /* istanbul ignore if */\r\n if (inBrowser) {\r\n createMediaQueries(config, gridObject);\r\n }\r\n return gridObject;\r\n}\r\nvar extendGrid = function (literalConfig, extraProperties) {\r\n return Object.assign({}, createConfigFromLiteral(literalConfig), extraProperties);\r\n};\n\nvar install = function (app, options) {\r\n var screen;\r\n var grid;\r\n if (typeof options === 'string') {\r\n screen = useScreen();\r\n grid = useGrid(options);\r\n }\r\n else {\r\n options = options || { grid: undefined, ssr: undefined, debounceDelay: undefined };\r\n screen = useScreen(options.ssr, options.debounceDelay);\r\n // ts cant figure out the type of arguments when union types are\r\n // passed to an overloaded function, so we need to use \"any\" or do a typeof check\r\n // on the arguments, which would ship 5 lines of js instead of one.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n grid = useGrid(options.grid);\r\n }\r\n app.config.globalProperties.$screen = screen;\r\n app.config.globalProperties.$grid = grid;\r\n};\r\nvar plugin = {\r\n install: install\r\n};\n\nexport default plugin;\nexport { extendGrid, grids, useGrid, useScreen };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAsync = undefined;\n\nvar _asyncify = require('../asyncify');\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar supportsSymbol = typeof Symbol === 'function';\n\nfunction isAsync(fn) {\n return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction wrapAsync(asyncFn) {\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","module.exports = require('./lib/api')(require('./lib/keccak'))\n","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (coll, iteratee, callback) {\n var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric;\n eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback);\n};\n\nvar _isArrayLike = require('lodash/isArrayLike');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _breakLoop = require('./internal/breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nvar _eachOfLimit = require('./eachOfLimit');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _doLimit = require('./internal/doLimit');\n\nvar _doLimit2 = _interopRequireDefault(_doLimit);\n\nvar _noop = require('lodash/noop');\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _once = require('./internal/once');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _onlyOnce = require('./internal/onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./internal/wrapAsync');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = (0, _once2.default)(callback || _noop2.default);\n var index = 0,\n completed = 0,\n length = coll.length;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err) {\n callback(err);\n } else if (++completed === length || value === _breakLoop2.default) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nvar eachOfGeneric = (0, _doLimit2.default)(_eachOfLimit2.default, Infinity);\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n */\nmodule.exports = exports['default'];","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 NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = /*@__PURE__*/ (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = void 0;\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n var innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = undefined;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = undefined;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function () {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=audit.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = /*@__PURE__*/ (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(_this)));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function () {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=buffer.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) {\n startBufferEvery = null;\n }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = /*@__PURE__*/ (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = /*@__PURE__*/ (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = /*@__PURE__*/ (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = /*@__PURE__*/ (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(subscribeToResult(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = /*@__PURE__*/ (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = undefined;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function () {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (err) {\n return this.error(err);\n }\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this)));\n this.subscribing = false;\n };\n return BufferWhenSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = /*@__PURE__*/ (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n var innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=catchError.js.map\n","/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */\nimport { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map\n","/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */\nimport { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map\n","/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */\nimport { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map\n","/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map\n","/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */\nimport { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = /*@__PURE__*/ (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = /*@__PURE__*/ (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = undefined;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = undefined;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=debounce.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = /*@__PURE__*/ (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = null;\n }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = /*@__PURE__*/ (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = /*@__PURE__*/ (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = /*@__PURE__*/ (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = /*@__PURE__*/ (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = /*@__PURE__*/ (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = /*@__PURE__*/ (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(_this)));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function () {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(SimpleOuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = /*@__PURE__*/ (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map\n","/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */\nimport { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map\n","/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) {\n errorFactory = defaultErrorFactory;\n }\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nvar ThrowIfEmptyOperator = /*@__PURE__*/ (function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrowIfEmptySubscriber, _super);\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n };\n return ThrowIfEmptySubscriber;\n}(Subscriber));\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = /*@__PURE__*/ (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map\n","/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); }));\n };\n}\n//# sourceMappingURL=elementAt.js.map\n","/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) { return concat(source, of.apply(void 0, array)); };\n}\n//# sourceMappingURL=endWith.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = /*@__PURE__*/ (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = /*@__PURE__*/ (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(innerSubscribe(value, new SimpleInnerSubscriber(this)));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function () {\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=exhaust.js.map\n","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\nvar ExhaustMapOperator = /*@__PURE__*/ (function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function () {\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = /*@__PURE__*/ (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n var project = this.project;\n var result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n catch (e) {\n destination.error(e);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this)));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (innerValue) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(SimpleOuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = /*@__PURE__*/ (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = /*@__PURE__*/ (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map\n","/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */\nimport { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map\n","/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */\nimport { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = /*@__PURE__*/ (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = /*@__PURE__*/ (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = /*@__PURE__*/ (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map\n","/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */\nimport { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = /*@__PURE__*/ (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = /*@__PURE__*/ (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = /*@__PURE__*/ (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) {\n hasSeed = false;\n }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map\n","/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map\n","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nexport function max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return reduce(max);\n}\n//# sourceMappingURL=max.js.map\n","/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */\nimport { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map\n","/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = /*@__PURE__*/ (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n }\n catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (innerValue) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(SimpleOuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map\n","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nexport function min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return reduce(min);\n}\n//# sourceMappingURL=min.js.map\n","/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */\nimport { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = /*@__PURE__*/ (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map\n","/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = undefined;\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return from(source).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = /*@__PURE__*/ (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function () {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function () {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (!!next) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(next, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = /*@__PURE__*/ (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n };\n return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map\n","/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */\nimport { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) {\n return [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ];\n };\n}\n//# sourceMappingURL=partition.js.map\n","/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\nimport { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp != null ? currentProp[props[i]] : undefined;\n if (p !== void 0) {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n","/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */\nimport { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ?\n multicast(function () { return new Subject(); }, selector) :\n multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map\n","/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */\nimport { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map\n","/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */\nimport { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map\n","/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map\n","/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */\nimport { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=race.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) {\n count = -1;\n }\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = /*@__PURE__*/ (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = /*@__PURE__*/ (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function () {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function () {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next(undefined);\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries;\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n };\n return RepeatWhenSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) {\n count = -1;\n }\n return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = /*@__PURE__*/ (function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = /*@__PURE__*/ (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new Subject();\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n }\n catch (e) {\n return _super.prototype.error.call(this, e);\n }\n retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n }\n else {\n this.errors = undefined;\n this.retriesSubscription = undefined;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n };\n RetryWhenSubscriber.prototype.notifyNext = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = /*@__PURE__*/ (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber)));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=sample.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = /*@__PURE__*/ (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function sequenceEqual(compareTo, comparator) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = /*@__PURE__*/ (function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n }\n catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map\n","/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map\n","/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler,\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n var innerSub;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n innerSub = subject.subscribe(this);\n subscription = source.subscribe({\n next: function (value) {\n subject.next(value);\n },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n if (isComplete) {\n subscription = undefined;\n }\n }\n else {\n innerSub = subject.subscribe(this);\n }\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n innerSub = undefined;\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = /*@__PURE__*/ (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new EmptyError);\n }\n };\n return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = /*@__PURE__*/ (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = /*@__PURE__*/ (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = /*@__PURE__*/ (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new SimpleInnerSubscriber(_this);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n var innerSubscription = innerSubscribe(notifier, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n _this.add(innerSubscription);\n _this.innerSubscription = innerSubscription;\n }\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function () {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = /*@__PURE__*/ (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map\n","/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return function (source) { return concat(array, source, scheduler); };\n }\n else {\n return function (source) { return concat(array, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) {\n delayTime = 0;\n }\n if (scheduler === void 0) {\n scheduler = asap;\n }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) {\n delay = 0;\n }\n if (scheduler === void 0) {\n scheduler = asap;\n }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map\n","/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */\nimport { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = /*@__PURE__*/ (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = /*@__PURE__*/ (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = undefined;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function () {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n","/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map\n","/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = /*@__PURE__*/ (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function () {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = /*@__PURE__*/ (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = /*@__PURE__*/ (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map\n","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = /*@__PURE__*/ (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = undefined;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this)));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = undefined;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function () {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=throttle.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = /*@__PURE__*/ (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) {\n return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n });\n };\n}\nvar TimeInterval = /*@__PURE__*/ (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map\n","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = /*@__PURE__*/ (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber)));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = undefined;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map\n","/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = /*@__PURE__*/ (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map\n","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = /*@__PURE__*/ (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber)));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function () {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function () {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=window.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) {\n startWindowEvery = 0;\n }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = /*@__PURE__*/ (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (isNumeric(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (isNumeric(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = /*@__PURE__*/ (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n var window_2 = windows.shift();\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = /*@__PURE__*/ (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n }\n catch (e) {\n return this.error(e);\n }\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = /*@__PURE__*/ (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) {\n innerSub = null;\n }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map\n","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = /*@__PURE__*/ (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, undefined, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map\n","/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\nimport { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=zip.js.map\n","/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\nimport { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(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 this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nexport function isCrowdsaleWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n return (data.encseed && data.ethaddr);\n}\nexport function isKeystoreWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\nexport function getJsonWalletAddress(json) {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n }\n catch (error) {\n return null;\n }\n }\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n }\n catch (error) {\n return null;\n }\n }\n return null;\n}\n//# sourceMappingURL=inspect.js.map","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}","const createPayload = require('./create-payload.js')\n\nmodule.exports = estimateGas\n\n/*\n\nThis is a work around for https://github.com/ethereum/go-ethereum/issues/2577\n\n*/\n\n\nfunction estimateGas(provider, txParams, cb) {\n provider.sendAsync(createPayload({\n method: 'eth_estimateGas',\n params: [txParams]\n }), function(err, res){\n if (err) {\n // handle simple value transfer case\n if (err.message === 'no contract code at given address') {\n return cb(null, '0xcf08')\n } else {\n return cb(err) \n }\n }\n cb(null, res.result)\n })\n}","/*!\n * vue-router v4.0.12\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst PolySymbol = (name) => \r\n// vr = vue router\r\nhasSymbol\r\n ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)\r\n : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;\r\n// rvlm = Router View Location Matched\r\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms an URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n const searchPos = location.indexOf('?');\r\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non\r\n * case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return Array.isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : Array.isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return Array.isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // can't go below zero\r\n if (position === 1 || segment === '.')\r\n continue;\r\n if (segment === '..')\r\n position--;\r\n // found something that is not relative path\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // setup the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // setup the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/vue-router-next/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/vue-router-next/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g.\r\n * `file://`) or when configuring a server to handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname +\r\n * location.search` If there is a `` tag in the `head`, its value will be\r\n * ignored in favor of this parameter **but note it affects all the\r\n * history.pushState() calls**, meaning that if you use a `` tag, it's\r\n * `href` value **has to match this parameter** (ignoring anything after the\r\n * `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub segment /:a-other-:b\r\n let subSegmentScore = 40 /* Segment */ +\r\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* Static */;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (Array.isArray(param) && !repeatable)\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n const text = Array.isArray(param) ? param.join('/') : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we\r\n // don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n return path;\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* Static */) {\r\n segment.push({\r\n type: 0 /* Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* Param */ ||\r\n state === 2 /* ParamRegExp */ ||\r\n state === 3 /* ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* Param */:\r\n if (char === '(') {\r\n state = 2 /* ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object before hand so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if ('children' in mainNormalizedRecord) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other alias (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n insertMatcher(matcher);\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n // console.log('i is', { i })\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0)\r\n i++;\r\n // console.log('END i is', { i })\r\n // while (i < matchers.length && matcher.score <= matchers[i].score) i++\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-router-next.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // TODO: dev warning of unused params if provided\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || {}\r\n : { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!Array.isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = Array.isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = Array.isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false)\r\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function')\r\n enterCallbackArray.push(valid);\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n // TODO: test me!\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!Array.isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const depth = inject(viewDepthKey, 0);\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\r\n provide(viewDepthKey, depth + 1);\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[props.name];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = Array.isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://next.router.vuejs.org/',\r\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (Array.isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: Date.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: Date.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: Date.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: 'redirect: ' +\r\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // decoding them) the matcher might have merged current location params so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/vue-router-next/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n params: to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign(locationAsObject(failure.to), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (Array.isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is not guarantee for\r\n // it to work on every browser. So Instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\r\n 16 /* NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta)\r\n routerHistory.go(-info.delta, false);\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n /**\r\n * Mark the router as ready, resolving the promised returned by isReady(). Can\r\n * only be called once, otherwise does nothing.\r\n * @param err - optional error\r\n */\r\n function markAsReady(err) {\r\n if (ready)\r\n return;\r\n ready = true;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_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_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_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_SHA256_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 (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(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(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++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\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","\"use strict\";\n// Copyright (c) 2018-2021 WalletLink.org \n// Copyright (c) 2018-2021 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-walletlink-css-reset .-walletlink-link-dialog{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.-walletlink-css-reset .-walletlink-link-dialog-backdrop{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.33);transition:opacity .25s}.-walletlink-css-reset .-walletlink-link-dialog-backdrop-hidden{opacity:0}.-walletlink-css-reset .-walletlink-link-dialog-box{display:flex;position:relative;flex-direction:column;background-color:#f6f6f6;border-radius:16px;box-shadow:0px 16px 24px rgba(0,0,0,.1),0px 0px 8px rgba(0,0,0,.05);transform:scale(1);transition:opacity .25s,transform .25s;overflow:hidden}.-walletlink-css-reset .-walletlink-link-dialog-box-hidden{opacity:0;transform:scale(0.85)}.-walletlink-css-reset .-walletlink-link-dialog-box-content{padding:24px;text-align:center}.-walletlink-css-reset .-walletlink-link-dialog-box-content h3{display:block;margin-bottom:24px;text-align:left;text-transform:uppercase;font-size:22px;font-weight:bold;line-height:1.2;color:#000}.-walletlink-css-reset .-walletlink-link-dialog-box-content-qrcode{position:relative;display:block;margin-bottom:24px;background-color:#f6f6f6;padding:16px;border-radius:16px;box-shadow:4px 4px 8px rgba(0,0,0,.15),-8px -8px 8px #fff;overflow:hidden}.-walletlink-css-reset .-walletlink-link-dialog-box-content-qrcode-wrapper{display:block;width:232px;height:232px;padding:4px;border-radius:4px;background:#f4f4f4;margin-bottom:16px}.-walletlink-css-reset .-walletlink-link-dialog-box-content-qrcode-wrapper img{display:block;width:224px;height:224px}.-walletlink-css-reset .-walletlink-link-dialog-box-content-qrcode>p{display:block;color:gray;font-weight:bold;font-size:12px;text-align:center}.-walletlink-css-reset .-walletlink-link-dialog-box-content-qrcode-connecting{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(246,246,246,.98)}.-walletlink-css-reset .-walletlink-link-dialog-box-content-qrcode-connecting p{margin-top:16px;color:#333;font-size:12px;font-weight:bold}.-walletlink-css-reset .-walletlink-link-dialog-box-content a{text-align:center;cursor:pointer;transition:color .1s;font-size:14px}.-walletlink-css-reset .-walletlink-link-dialog-box-content a,.-walletlink-css-reset .-walletlink-link-dialog-box-content a:link,.-walletlink-css-reset .-walletlink-link-dialog-box-content a:visited{color:#999}.-walletlink-css-reset .-walletlink-link-dialog-box-content a:hover,.-walletlink-css-reset .-walletlink-link-dialog-box-content a:active{color:#666;text-decoration:underline}.-walletlink-css-reset .-walletlink-link-dialog-box-cancel{position:absolute;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;top:24px;right:24px;width:24px;height:24px;border-radius:12px;background-color:#e7e7e7;cursor:pointer}.-walletlink-css-reset .-walletlink-link-dialog-box-cancel-x{position:relative;display:block}.-walletlink-css-reset .-walletlink-link-dialog-box-cancel-x::before,.-walletlink-css-reset .-walletlink-link-dialog-box-cancel-x::after{content:\"\";position:absolute;display:block;top:-1px;left:-7px;width:14px;height:2px;background-color:#999;transition:background-color .2s}.-walletlink-css-reset .-walletlink-link-dialog-box-cancel-x::before{transform:rotate(45deg)}.-walletlink-css-reset .-walletlink-link-dialog-box-cancel-x::after{transform:rotate(135deg)}.-walletlink-css-reset .-walletlink-link-dialog-box-cancel:hover .-walletlink-link-dialog-box-cancel-x-a,.-walletlink-css-reset .-walletlink-link-dialog-box-cancel:hover .-walletlink-link-dialog-box-cancel-x-b{background-color:#000}.-walletlink-css-reset .-walletlink-link-dialog-container{display:block}.-walletlink-css-reset .-walletlink-link-dialog-container-hidden{display:none}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box{background-color:#2a2a2a}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content h3{color:#ccc}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content-qrcode{background-color:#2a2a2a;box-shadow:4px 4px 8px rgba(0,0,0,.5),-8px -8px 8px #343434}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content-qrcode>p{color:#999}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content-qrcode-connecting{background:rgba(42,42,42,.98)}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content-qrcode-connecting p{color:#ddd}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content a,.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content a:link,.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content a:visited{color:#888}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content a:hover,.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-content a:active{color:#aaa}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-cancel{background-color:#333}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-cancel-x::before,.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-cancel-x::after{background-color:#aaa}.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-cancel:hover .-walletlink-link-dialog-box-cancel-x::before,.-walletlink-css-reset .-walletlink-link-dialog-container-dark .-walletlink-link-dialog-box-cancel:hover .-walletlink-link-dialog-box-cancel-x::after{background-color:#eee}`;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\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.MerkleTree = void 0;\nconst buffer_reverse_1 = __importDefault(require(\"buffer-reverse\"));\nconst sha256_1 = __importDefault(require(\"crypto-js/sha256\"));\nconst Base_1 = __importDefault(require(\"./Base\"));\nconst treeify_1 = __importDefault(require(\"treeify\"));\n/**\n * Class reprensenting a Merkle Tree\n * @namespace MerkleTree\n */\nclass MerkleTree extends Base_1.default {\n /**\n * @desc Constructs a Merkle Tree.\n * All nodes and leaves are stored as Buffers.\n * Lonely leaf nodes are promoted to the next level up without being hashed again.\n * @param {Buffer[]} leaves - Array of hashed leaves. Each leaf must be a Buffer.\n * @param {Function} hashFunction - Hash function to use for hashing leaves and nodes\n * @param {Object} options - Additional options\n * @example\n *```js\n *const MerkleTree = require('merkletreejs')\n *const crypto = require('crypto')\n *\n *function sha256(data) {\n * // returns Buffer\n * return crypto.createHash('sha256').update(data).digest()\n *}\n *\n *const leaves = ['a', 'b', 'c'].map(value => keccak(value))\n *\n *const tree = new MerkleTree(leaves, sha256)\n *```\n */\n constructor(leaves, hashFn = sha256_1.default, options = {}) {\n super();\n this.duplicateOdd = false;\n this.hashLeaves = false;\n this.isBitcoinTree = false;\n this.leaves = [];\n this.layers = [];\n this.sortLeaves = false;\n this.sortPairs = false;\n this.sort = false;\n this.fillDefaultHash = null;\n this.isBitcoinTree = !!options.isBitcoinTree;\n this.hashLeaves = !!options.hashLeaves;\n this.sortLeaves = !!options.sortLeaves;\n this.sortPairs = !!options.sortPairs;\n if (options.fillDefaultHash) {\n if (typeof options.fillDefaultHash === 'function') {\n this.fillDefaultHash = options.fillDefaultHash;\n }\n else if (Buffer.isBuffer(options.fillDefaultHash) || typeof options.fillDefaultHash === 'string') {\n this.fillDefaultHash = (idx, hashFn) => options.fillDefaultHash;\n }\n else {\n throw new Error('method \"fillDefaultHash\" must be a function, Buffer, or string');\n }\n }\n this.sort = !!options.sort;\n if (this.sort) {\n this.sortLeaves = true;\n this.sortPairs = true;\n }\n this.duplicateOdd = !!options.duplicateOdd;\n this.hashFn = this.bufferifyFn(hashFn);\n this.processLeaves(leaves);\n }\n processLeaves(leaves) {\n if (this.hashLeaves) {\n leaves = leaves.map(this.hashFn);\n }\n this.leaves = leaves.map(this.bufferify);\n if (this.sortLeaves) {\n this.leaves = this.leaves.sort(Buffer.compare);\n }\n if (this.fillDefaultHash) {\n for (let i = 0; i < Math.pow(2, Math.ceil(Math.log2(this.leaves.length))); i++) {\n if (i >= this.leaves.length) {\n this.leaves.push(this.bufferify(this.fillDefaultHash(i, this.hashFn)));\n }\n }\n }\n this.layers = [this.leaves];\n this._createHashes(this.leaves);\n }\n _createHashes(nodes) {\n while (nodes.length > 1) {\n const layerIndex = this.layers.length;\n this.layers.push([]);\n for (let i = 0; i < nodes.length; i += 2) {\n if (i + 1 === nodes.length) {\n if (nodes.length % 2 === 1) {\n let data = nodes[nodes.length - 1];\n let hash = data;\n // is bitcoin tree\n if (this.isBitcoinTree) {\n // Bitcoin method of duplicating the odd ending nodes\n data = Buffer.concat([buffer_reverse_1.default(data), buffer_reverse_1.default(data)]);\n hash = this.hashFn(data);\n hash = buffer_reverse_1.default(this.hashFn(hash));\n this.layers[layerIndex].push(hash);\n continue;\n }\n else {\n if (this.duplicateOdd) {\n // continue with creating layer\n }\n else {\n // push copy of hash and continue iteration\n this.layers[layerIndex].push(nodes[i]);\n continue;\n }\n }\n }\n }\n const left = nodes[i];\n const right = i + 1 === nodes.length ? left : nodes[i + 1];\n let data = null;\n let combined = null;\n if (this.isBitcoinTree) {\n combined = [buffer_reverse_1.default(left), buffer_reverse_1.default(right)];\n }\n else {\n combined = [left, right];\n }\n if (this.sortPairs) {\n combined.sort(Buffer.compare);\n }\n data = Buffer.concat(combined);\n let hash = this.hashFn(data);\n // double hash if bitcoin tree\n if (this.isBitcoinTree) {\n hash = buffer_reverse_1.default(this.hashFn(hash));\n }\n this.layers[layerIndex].push(hash);\n }\n nodes = this.layers[layerIndex];\n }\n }\n /**\n * addLeaf\n * @desc Adds a leaf to the tree and re-calculates layers.\n * @param {String|Buffer} - Leaf\n * @param {Boolean} - Set to true if the leaf should be hashed before being added to tree.\n * @example\n *```js\n *tree.addLeaf(newLeaf)\n *```\n */\n addLeaf(leaf, shouldHash = false) {\n if (shouldHash) {\n leaf = this.hashFn(leaf);\n }\n this.processLeaves(this.leaves.concat(leaf));\n }\n /**\n * addLeaves\n * @desc Adds multiple leaves to the tree and re-calculates layers.\n * @param {String[]|Buffer[]} - Array of leaves\n * @param {Boolean} - Set to true if the leaves should be hashed before being added to tree.\n * @example\n *```js\n *tree.addLeaves(newLeaves)\n *```\n */\n addLeaves(leaves, shouldHash = false) {\n if (shouldHash) {\n leaves = leaves.map(this.hashFn);\n }\n this.processLeaves(this.leaves.concat(leaves));\n }\n /**\n * getLeaves\n * @desc Returns array of leaves of Merkle Tree.\n * @return {Buffer[]}\n * @example\n *```js\n *const leaves = tree.getLeaves()\n *```\n */\n getLeaves(values) {\n if (Array.isArray(values)) {\n if (this.hashLeaves) {\n values = values.map(this.hashFn);\n if (this.sortLeaves) {\n values = values.sort(Buffer.compare);\n }\n }\n return this.leaves.filter(leaf => this._bufferIndexOf(values, leaf) !== -1);\n }\n return this.leaves;\n }\n /**\n * getLeaf\n * @desc Returns the leaf at the given index.\n * @param {Number} - Index number\n * @return {Buffer}\n * @example\n *```js\n *const leaf = tree.getLeaf(1)\n *```\n */\n getLeaf(index) {\n if (index < 0 || index > this.leaves.length - 1) {\n return Buffer.from([]);\n }\n return this.leaves[index];\n }\n /**\n * getLeafIndex\n * @desc Returns the index of the given leaf, or -1 if the leaf is not found.\n * @param {String|Buffer} - Target leaf\n * @return {number}\n * @example\n *```js\n *const leaf = Buffer.from('abc')\n *const index = tree.getLeafIndex(leaf)\n *```\n */\n getLeafIndex(target) {\n target = this.bufferify(target);\n const leaves = this.getLeaves();\n for (let i = 0; i < leaves.length; i++) {\n const leaf = leaves[i];\n if (leaf.equals(target)) {\n return i;\n }\n }\n return -1;\n }\n /**\n * getLeafCount\n * @desc Returns the total number of leaves.\n * @return {number}\n * @example\n *```js\n *const count = tree.getLeafCount()\n *```\n */\n getLeafCount() {\n return this.leaves.length;\n }\n /**\n * getHexLeaves\n * @desc Returns array of leaves of Merkle Tree as hex strings.\n * @return {String[]}\n * @example\n *```js\n *const leaves = tree.getHexLeaves()\n *```\n */\n getHexLeaves() {\n return this.leaves.map(leaf => this.bufferToHex(leaf));\n }\n /**\n * marshalLeaves\n * @desc Returns array of leaves of Merkle Tree as a JSON string.\n * @param {String[]|Buffer[]} - Merkle tree leaves\n * @return {String} - List of leaves as JSON string\n * @example\n *```js\n *const jsonStr = MerkleTree.marshalLeaves(leaves)\n *```\n */\n static marshalLeaves(leaves) {\n return JSON.stringify(leaves.map(leaf => MerkleTree.bufferToHex(leaf)), null, 2);\n }\n /**\n * unmarshalLeaves\n * @desc Returns array of leaves of Merkle Tree as a Buffers.\n * @param {String|Object} - JSON stringified leaves\n * @return {Buffer[]} - Unmarshalled list of leaves\n * @example\n *```js\n *const leaves = MerkleTree.unmarshalLeaves(jsonStr)\n *```\n */\n static unmarshalLeaves(jsonStr) {\n let parsed = null;\n if (typeof jsonStr === 'string') {\n parsed = JSON.parse(jsonStr);\n }\n else if (jsonStr instanceof Object) {\n parsed = jsonStr;\n }\n else {\n throw new Error('Expected type of string or object');\n }\n if (!parsed) {\n return [];\n }\n if (!Array.isArray(parsed)) {\n throw new Error('Expected JSON string to be array');\n }\n return parsed.map(MerkleTree.bufferify);\n }\n /**\n * getLayers\n * @desc Returns multi-dimensional array of all layers of Merkle Tree, including leaves and root.\n * @return {Buffer[]}\n * @example\n *```js\n *const layers = tree.getLayers()\n *```\n */\n getLayers() {\n return this.layers;\n }\n /**\n * getHexLayers\n * @desc Returns multi-dimensional array of all layers of Merkle Tree, including leaves and root as hex strings.\n * @return {String[]}\n * @example\n *```js\n *const layers = tree.getHexLayers()\n *```\n */\n getHexLayers() {\n return this.layers.reduce((acc, item) => {\n if (Array.isArray(item)) {\n acc.push(item.map(layer => this.bufferToHex(layer)));\n }\n else {\n acc.push(item);\n }\n return acc;\n }, []);\n }\n /**\n * getLayersFlat\n * @desc Returns single flat array of all layers of Merkle Tree, including leaves and root.\n * @return {Buffer[]}\n * @example\n *```js\n *const layers = tree.getLayersFlat()\n *```\n */\n getLayersFlat() {\n const layers = this.layers.reduce((acc, item) => {\n if (Array.isArray(item)) {\n acc.unshift(...item);\n }\n else {\n acc.unshift(item);\n }\n return acc;\n }, []);\n layers.unshift(Buffer.from([0]));\n return layers;\n }\n /**\n * getHexLayersFlat\n * @desc Returns single flat array of all layers of Merkle Tree, including leaves and root as hex string.\n * @return {String[]}\n * @example\n *```js\n *const layers = tree.getHexLayersFlat()\n *```\n */\n getHexLayersFlat() {\n return this.getLayersFlat().map(layer => this.bufferToHex(layer));\n }\n /**\n * getLayerCount\n * @desc Returns the total number of layers.\n * @return {number}\n * @example\n *```js\n *const count = tree.getLayerCount()\n *```\n */\n getLayerCount() {\n return this.getLayers().length;\n }\n /**\n * getRoot\n * @desc Returns the Merkle root hash as a Buffer.\n * @return {Buffer}\n * @example\n *```js\n *const root = tree.getRoot()\n *```\n */\n getRoot() {\n if (this.layers.length === 0) {\n return Buffer.from([]);\n }\n return this.layers[this.layers.length - 1][0] || Buffer.from([]);\n }\n /**\n * getHexRoot\n * @desc Returns the Merkle root hash as a hex string.\n * @return {String}\n * @example\n *```js\n *const root = tree.getHexRoot()\n *```\n */\n getHexRoot() {\n return this.bufferToHex(this.getRoot());\n }\n /**\n * getProof\n * @desc Returns the proof for a target leaf.\n * @param {Buffer} leaf - Target leaf\n * @param {Number} [index] - Target leaf index in leaves array.\n * Use if there are leaves containing duplicate data in order to distinguish it.\n * @return {Object[]} - Array of objects containing a position property of type string\n * with values of 'left' or 'right' and a data property of type Buffer.\n * @example\n * ```js\n *const proof = tree.getProof(leaves[2])\n *```\n *\n * @example\n *```js\n *const leaves = ['a', 'b', 'a'].map(value => keccak(value))\n *const tree = new MerkleTree(leaves, keccak)\n *const proof = tree.getProof(leaves[2], 2)\n *```\n */\n getProof(leaf, index) {\n if (typeof leaf === 'undefined') {\n throw new Error('leaf is required');\n }\n leaf = this.bufferify(leaf);\n const proof = [];\n if (!Number.isInteger(index)) {\n index = -1;\n for (let i = 0; i < this.leaves.length; i++) {\n if (Buffer.compare(leaf, this.leaves[i]) === 0) {\n index = i;\n }\n }\n }\n if (index <= -1) {\n return [];\n }\n for (let i = 0; i < this.layers.length; i++) {\n const layer = this.layers[i];\n const isRightNode = index % 2;\n const pairIndex = (isRightNode ? index - 1\n : this.isBitcoinTree && index === layer.length - 1 && i < this.layers.length - 1\n // Proof Generation for Bitcoin Trees\n ? index\n // Proof Generation for Non-Bitcoin Trees\n : index + 1);\n if (pairIndex < layer.length) {\n proof.push({\n position: isRightNode ? 'left' : 'right',\n data: layer[pairIndex]\n });\n }\n // set index to parent index\n index = (index / 2) | 0;\n }\n return proof;\n }\n /**\n * getHexProof\n * @desc Returns the proof for a target leaf as hex strings.\n * @param {Buffer} leaf - Target leaf\n * @param {Number} [index] - Target leaf index in leaves array.\n * Use if there are leaves containing duplicate data in order to distinguish it.\n * @return {String[]} - Proof array as hex strings.\n * @example\n * ```js\n *const proof = tree.getHexProof(leaves[2])\n *```\n */\n getHexProof(leaf, index) {\n return this.getProof(leaf, index).map(item => this.bufferToHex(item.data));\n }\n /**\n * getPositionalHexProof\n * @desc Returns the proof for a target leaf as hex strings and the position in binary (left == 0).\n * @param {Buffer} leaf - Target leaf\n * @param {Number} [index] - Target leaf index in leaves array.\n * Use if there are leaves containing duplicate data in order to distinguish it.\n * @return {(string | number)[][]} - Proof array as hex strings. position at index 0\n * @example\n * ```js\n *const proof = tree.getPositionalHexProof(leaves[2])\n *```\n */\n getPositionalHexProof(leaf, index) {\n return this.getProof(leaf, index).map(item => {\n return [\n item.position === 'left' ? 0 : 1,\n this.bufferToHex(item.data)\n ];\n });\n }\n /**\n * marshalProof\n * @desc Returns proof array as JSON string.\n * @param {String[]|Object[]} proof - Merkle tree proof array\n * @return {String} - Proof array as JSON string.\n * @example\n * ```js\n *const jsonStr = MerkleTree.marshalProof(proof)\n *```\n */\n static marshalProof(proof) {\n const json = proof.map(item => {\n if (typeof item === 'string') {\n return item;\n }\n if (Buffer.isBuffer(item)) {\n return MerkleTree.bufferToHex(item);\n }\n return {\n position: item.position,\n data: MerkleTree.bufferToHex(item.data)\n };\n });\n return JSON.stringify(json, null, 2);\n }\n /**\n * unmarshalProof\n * @desc Returns the proof for a target leaf as a list of Buffers.\n * @param {String|Object} - Merkle tree leaves\n * @return {String|Object} - Marshalled proof\n * @example\n * ```js\n *const proof = MerkleTree.unmarshalProof(jsonStr)\n *```\n */\n static unmarshalProof(jsonStr) {\n let parsed = null;\n if (typeof jsonStr === 'string') {\n parsed = JSON.parse(jsonStr);\n }\n else if (jsonStr instanceof Object) {\n parsed = jsonStr;\n }\n else {\n throw new Error('Expected type of string or object');\n }\n if (!parsed) {\n return [];\n }\n if (!Array.isArray(parsed)) {\n throw new Error('Expected JSON string to be array');\n }\n return parsed.map(item => {\n if (typeof item === 'string') {\n return MerkleTree.bufferify(item);\n }\n else if (item instanceof Object) {\n return {\n position: item.position,\n data: MerkleTree.bufferify(item.data)\n };\n }\n else {\n throw new Error('Expected item to be of type string or object');\n }\n });\n }\n /**\n * getProofIndices\n * @desc Returns the proof indices for given tree indices.\n * @param {Number[]} treeIndices - Tree indices\n * @param {Number} depth - Tree depth; number of layers.\n * @return {Number[]} - Proof indices\n * @example\n * ```js\n *const proofIndices = tree.getProofIndices([2,5,6], 4)\n *console.log(proofIndices) // [ 23, 20, 19, 8, 3 ]\n *```\n */\n getProofIndices(treeIndices, depth) {\n const leafCount = Math.pow(2, depth);\n let maximalIndices = new Set();\n for (const index of treeIndices) {\n let x = leafCount + index;\n while (x > 1) {\n maximalIndices.add(x ^ 1);\n x = (x / 2) | 0;\n }\n }\n const a = treeIndices.map(index => leafCount + index);\n const b = Array.from(maximalIndices).sort((a, b) => a - b).reverse();\n maximalIndices = a.concat(b);\n const redundantIndices = new Set();\n const proof = [];\n for (let index of maximalIndices) {\n if (!redundantIndices.has(index)) {\n proof.push(index);\n while (index > 1) {\n redundantIndices.add(index);\n if (!redundantIndices.has(index ^ 1))\n break;\n index = (index / 2) | 0;\n }\n }\n }\n return proof.filter(index => {\n return !treeIndices.includes(index - leafCount);\n });\n }\n getProofIndicesForUnevenTree(sortedLeafIndices, leavesCount) {\n const depth = Math.ceil(Math.log2(leavesCount));\n const unevenLayers = [];\n for (let index = 0; index < depth; index++) {\n const unevenLayer = leavesCount % 2 !== 0;\n if (unevenLayer) {\n unevenLayers.push({ index, leavesCount });\n }\n leavesCount = Math.ceil(leavesCount / 2);\n }\n const proofIndices = [];\n let layerNodes = sortedLeafIndices;\n for (let layerIndex = 0; layerIndex < depth; layerIndex++) {\n const siblingIndices = layerNodes.map((index) => {\n if (index % 2 === 0) {\n return index + 1;\n }\n return index - 1;\n });\n let proofNodeIndices = siblingIndices.filter((index) => !layerNodes.includes(index));\n const unevenLayer = unevenLayers.find(({ index }) => index === layerIndex);\n if (unevenLayer && layerNodes.includes(unevenLayer.leavesCount - 1)) {\n proofNodeIndices = proofNodeIndices.slice(0, -1);\n }\n proofIndices.push(proofNodeIndices);\n layerNodes = [...new Set(layerNodes.map((index) => {\n if (index % 2 === 0) {\n return index / 2;\n }\n if (index % 2 === 0) {\n return (index + 1) / 2;\n }\n return (index - 1) / 2;\n }))];\n }\n return proofIndices;\n }\n /**\n * getMultiProof\n * @desc Returns the multiproof for given tree indices.\n * @param {Number[]} indices - Tree indices.\n * @return {Buffer[]} - Multiproofs\n * @example\n * ```js\n *const indices = [2, 5, 6]\n *const proof = tree.getMultiProof(indices)\n *```\n */\n getMultiProof(tree, indices) {\n if (!indices) {\n indices = tree;\n tree = this.getLayersFlat();\n }\n const isUneven = this.isUnevenTree();\n if (isUneven) {\n if (indices.every(Number.isInteger)) {\n return this.getMultiProofForUnevenTree(indices);\n }\n }\n if (!indices.every(Number.isInteger)) {\n let els = indices;\n if (this.sortPairs) {\n els = els.sort(Buffer.compare);\n }\n let ids = els.map((el) => this._bufferIndexOf(this.leaves, el)).sort((a, b) => a === b ? 0 : a > b ? 1 : -1);\n if (!ids.every((idx) => idx !== -1)) {\n throw new Error('Element does not exist in Merkle tree');\n }\n const hashes = [];\n const proof = [];\n let nextIds = [];\n for (let i = 0; i < this.layers.length; i++) {\n const layer = this.layers[i];\n for (let j = 0; j < ids.length; j++) {\n const idx = ids[j];\n const pairElement = this._getPairNode(layer, idx);\n hashes.push(layer[idx]);\n if (pairElement) {\n proof.push(pairElement);\n }\n nextIds.push((idx / 2) | 0);\n }\n ids = nextIds.filter((value, i, self) => self.indexOf(value) === i);\n nextIds = [];\n }\n return proof.filter((value) => !hashes.includes(value));\n }\n return this.getProofIndices(indices, this._log2((tree.length / 2) | 0)).map(index => tree[index]);\n }\n getMultiProofForUnevenTree(tree, indices) {\n if (!indices) {\n indices = tree;\n tree = this.getLayers();\n }\n let proofHashes = [];\n let currentLayerIndices = indices;\n for (const treeLayer of tree) {\n const siblings = [];\n for (const index of currentLayerIndices) {\n if (index % 2 === 0) {\n const idx = index + 1;\n if (!currentLayerIndices.includes(idx)) {\n if (treeLayer[idx]) {\n siblings.push(treeLayer[idx]);\n continue;\n }\n }\n }\n const idx = index - 1;\n if (!currentLayerIndices.includes(idx)) {\n if (treeLayer[idx]) {\n siblings.push(treeLayer[idx]);\n continue;\n }\n }\n }\n proofHashes = proofHashes.concat(siblings);\n const uniqueIndices = new Set();\n for (const index of currentLayerIndices) {\n if (index % 2 === 0) {\n uniqueIndices.add(index / 2);\n continue;\n }\n if (index % 2 === 0) {\n uniqueIndices.add((index + 1) / 2);\n continue;\n }\n uniqueIndices.add((index - 1) / 2);\n }\n currentLayerIndices = Array.from(uniqueIndices);\n }\n return proofHashes;\n }\n /**\n * getHexMultiProof\n * @desc Returns the multiproof for given tree indices as hex strings.\n * @param {Number[]} indices - Tree indices.\n * @return {String[]} - Multiproofs as hex strings.\n * @example\n * ```js\n *const indices = [2, 5, 6]\n *const proof = tree.getHexMultiProof(indices)\n *```\n */\n getHexMultiProof(tree, indices) {\n return this.getMultiProof(tree, indices).map((x) => this.bufferToHex(x));\n }\n /**\n * getProofFlags\n * @desc Returns list of booleans where proofs should be used instead of hashing.\n * Proof flags are used in the Solidity multiproof verifiers.\n * @param {Number[]|Buffer[]} leaves\n * @param {Buffer[]} proofs\n * @return {Boolean[]} - Boolean flags\n * @example\n * ```js\n *const indices = [2, 5, 6]\n *const proof = tree.getMultiProof(indices)\n *const proofFlags = tree.getProofFlags(leaves, proof)\n *```\n */\n getProofFlags(leaves, proofs) {\n if (!Array.isArray(leaves) || leaves.length <= 0) {\n throw new Error('Invalid Inputs!');\n }\n let ids;\n if (leaves.every(Number.isInteger)) {\n ids = leaves.sort((a, b) => a === b ? 0 : a > b ? 1 : -1); // Indices where passed\n }\n else {\n ids = leaves.map((el) => this._bufferIndexOf(this.leaves, el)).sort((a, b) => a === b ? 0 : a > b ? 1 : -1);\n }\n if (!ids.every((idx) => idx !== -1)) {\n throw new Error('Element does not exist in Merkle tree');\n }\n const _proofs = proofs.map(item => this.bufferify(item));\n const tested = [];\n const flags = [];\n for (let index = 0; index < this.layers.length; index++) {\n const layer = this.layers[index];\n ids = ids.reduce((ids, idx) => {\n const skipped = tested.includes(layer[idx]);\n if (!skipped) {\n const pairElement = this._getPairNode(layer, idx);\n const proofUsed = _proofs.includes(layer[idx]) || _proofs.includes(pairElement);\n pairElement && flags.push(!proofUsed);\n tested.push(layer[idx]);\n tested.push(pairElement);\n }\n ids.push((idx / 2) | 0);\n return ids;\n }, []);\n }\n return flags;\n }\n /**\n * verify\n * @desc Returns true if the proof path (array of hashes) can connect the target node\n * to the Merkle root.\n * @param {Object[]} proof - Array of proof objects that should connect\n * target node to Merkle root.\n * @param {Buffer} targetNode - Target node Buffer\n * @param {Buffer} root - Merkle root Buffer\n * @return {Boolean}\n * @example\n *```js\n *const root = tree.getRoot()\n *const proof = tree.getProof(leaves[2])\n *const verified = tree.verify(proof, leaves[2], root)\n *```\n */\n verify(proof, targetNode, root) {\n let hash = this.bufferify(targetNode);\n root = this.bufferify(root);\n if (!Array.isArray(proof) ||\n !targetNode ||\n !root) {\n return false;\n }\n for (let i = 0; i < proof.length; i++) {\n const node = proof[i];\n let data = null;\n let isLeftNode = null;\n // case for when proof is hex values only\n if (typeof node === 'string') {\n data = this.bufferify(node);\n isLeftNode = true;\n }\n else if (Array.isArray(node)) {\n isLeftNode = (node[0] === 0);\n data = this.bufferify(node[1]);\n }\n else if (Buffer.isBuffer(node)) {\n data = node;\n isLeftNode = true;\n }\n else if (node instanceof Object) {\n data = this.bufferify(node.data);\n isLeftNode = (node.position === 'left');\n }\n else {\n throw new Error('Expected node to be of type string or object');\n }\n const buffers = [];\n if (this.isBitcoinTree) {\n buffers.push(buffer_reverse_1.default(hash));\n buffers[isLeftNode ? 'unshift' : 'push'](buffer_reverse_1.default(data));\n hash = this.hashFn(Buffer.concat(buffers));\n hash = buffer_reverse_1.default(this.hashFn(hash));\n }\n else {\n if (this.sortPairs) {\n if (Buffer.compare(hash, data) === -1) {\n buffers.push(hash, data);\n hash = this.hashFn(Buffer.concat(buffers));\n }\n else {\n buffers.push(data, hash);\n hash = this.hashFn(Buffer.concat(buffers));\n }\n }\n else {\n buffers.push(hash);\n buffers[isLeftNode ? 'unshift' : 'push'](data);\n hash = this.hashFn(Buffer.concat(buffers));\n }\n }\n }\n return Buffer.compare(hash, root) === 0;\n }\n /**\n * verifyMultiProof\n * @desc Returns true if the multiproofs can connect the leaves to the Merkle root.\n * @param {Buffer} root - Merkle tree root\n * @param {Number[]} proofIndices - Leave indices for proof\n * @param {Buffer[]} proofLeaves - Leaf values at indices for proof\n * @param {Number} leavesCount - Count of original leaves\n * @param {Buffer[]} proof - Multiproofs given indices\n * @return {Boolean}\n * @example\n *```js\n *const leaves = tree.getLeaves()\n *const root = tree.getRoot()\n *const treeFlat = tree.getLayersFlat()\n *const leavesCount = leaves.length\n *const proofIndices = [2, 5, 6]\n *const proofLeaves = proofIndices.map(i => leaves[i])\n *const proof = tree.getMultiProof(treeFlat, indices)\n *const verified = tree.verifyMultiProof(root, proofIndices, proofLeaves, leavesCount, proof)\n *```\n */\n verifyMultiProof(root, proofIndices, proofLeaves, leavesCount, proof) {\n const isUneven = this.isUnevenTree();\n if (isUneven) {\n // TODO: combine these functions and simplify\n return this.verifyMultiProofForUnevenTree(root, proofIndices, proofLeaves, leavesCount, proof);\n }\n const depth = Math.ceil(Math.log2(leavesCount));\n root = this.bufferify(root);\n proofLeaves = proofLeaves.map(leaf => this.bufferify(leaf));\n proof = proof.map(leaf => this.bufferify(leaf));\n const tree = {};\n for (const [index, leaf] of this._zip(proofIndices, proofLeaves)) {\n tree[(Math.pow(2, depth)) + index] = leaf;\n }\n for (const [index, proofitem] of this._zip(this.getProofIndices(proofIndices, depth), proof)) {\n tree[index] = proofitem;\n }\n let indexqueue = Object.keys(tree).map(value => +value).sort((a, b) => a - b);\n indexqueue = indexqueue.slice(0, indexqueue.length - 1);\n let i = 0;\n while (i < indexqueue.length) {\n const index = indexqueue[i];\n if (index >= 2 && ({}).hasOwnProperty.call(tree, index ^ 1)) {\n let pair = [tree[index - (index % 2)], tree[index - (index % 2) + 1]];\n if (this.sortPairs) {\n pair = pair.sort(Buffer.compare);\n }\n const hash = pair[1] ? this.hashFn(Buffer.concat(pair)) : pair[0];\n tree[(index / 2) | 0] = hash;\n indexqueue.push((index / 2) | 0);\n }\n i += 1;\n }\n return !proofIndices.length || (({}).hasOwnProperty.call(tree, 1) && tree[1].equals(root));\n }\n verifyMultiProofWithFlags(root, leaves, proofs, proofFlag) {\n root = this.bufferify(root);\n leaves = leaves.map(this.bufferify);\n proofs = proofs.map(this.bufferify);\n const leavesLen = leaves.length;\n const totalHashes = proofFlag.length;\n const hashes = [];\n let leafPos = 0;\n let hashPos = 0;\n let proofPos = 0;\n for (let i = 0; i < totalHashes; i++) {\n const bufA = proofFlag[i] ? (leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++]) : proofs[proofPos++];\n const bufB = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n const buffers = [bufA, bufB].sort(Buffer.compare);\n hashes[i] = this.hashFn(Buffer.concat(buffers));\n }\n return Buffer.compare(hashes[totalHashes - 1], root) === 0;\n }\n verifyMultiProofForUnevenTree(root, indices, leaves, leavesCount, proof) {\n root = this.bufferify(root);\n leaves = leaves.map(leaf => this.bufferify(leaf));\n proof = proof.map(leaf => this.bufferify(leaf));\n const computedRoot = this.calculateRootForUnevenTree(indices, leaves, leavesCount, proof);\n return root.equals(computedRoot);\n }\n /**\n * getDepth\n * @desc Returns the tree depth (number of layers)\n * @return {Number}\n * @example\n *```js\n *const depth = tree.getDepth()\n *```\n */\n getDepth() {\n return this.getLayers().length - 1;\n }\n /**\n * getLayersAsObject\n * @desc Returns the layers as nested objects instead of an array.\n * @example\n *```js\n *const layersObj = tree.getLayersAsObject()\n *```\n */\n getLayersAsObject() {\n const layers = this.getLayers().map((layer) => layer.map((value) => this.bufferToHex(value, false)));\n const objs = [];\n for (let i = 0; i < layers.length; i++) {\n const arr = [];\n for (let j = 0; j < layers[i].length; j++) {\n const obj = { [layers[i][j]]: null };\n if (objs.length) {\n obj[layers[i][j]] = {};\n const a = objs.shift();\n const akey = Object.keys(a)[0];\n obj[layers[i][j]][akey] = a[akey];\n if (objs.length) {\n const b = objs.shift();\n const bkey = Object.keys(b)[0];\n obj[layers[i][j]][bkey] = b[bkey];\n }\n }\n arr.push(obj);\n }\n objs.push(...arr);\n }\n return objs[0];\n }\n /**\n * verify\n * @desc Returns true if the proof path (array of hashes) can connect the target node\n * to the Merkle root.\n * @param {Object[]} proof - Array of proof objects that should connect\n * target node to Merkle root.\n * @param {Buffer} targetNode - Target node Buffer\n * @param {Buffer} root - Merkle root Buffer\n * @param {Function} hashFunction - Hash function for hashing leaves and nodes\n * @param {Object} options - Additional options\n * @return {Boolean}\n * @example\n *```js\n *const verified = MerkleTree.verify(proof, leaf, root, sha256, options)\n *```\n */\n static verify(proof, targetNode, root, hashFn = sha256_1.default, options = {}) {\n const tree = new MerkleTree([], hashFn, options);\n return tree.verify(proof, targetNode, root);\n }\n /**\n * getMultiProof\n * @desc Returns the multiproof for given tree indices.\n * @param {Buffer[]} tree - Tree as a flat array.\n * @param {Number[]} indices - Tree indices.\n * @return {Buffer[]} - Multiproofs\n *\n *@example\n * ```js\n *const flatTree = tree.getLayersFlat()\n *const indices = [2, 5, 6]\n *const proof = MerkleTree.getMultiProof(flatTree, indices)\n *```\n */\n static getMultiProof(tree, indices) {\n const t = new MerkleTree([]);\n return t.getMultiProof(tree, indices);\n }\n /**\n * resetTree\n * @desc Resets the tree by clearing the leaves and layers.\n * @example\n *```js\n *tree.resetTree()\n *```\n */\n resetTree() {\n this.leaves = [];\n this.layers = [];\n }\n /**\n * getPairNode\n * @desc Returns the node at the index for given layer.\n * @param {Buffer[]} layer - Tree layer\n * @param {Number} index - Index at layer.\n * @return {Buffer} - Node\n *\n *@example\n * ```js\n *const node = tree.getPairNode(layer, index)\n *```\n */\n _getPairNode(layer, idx) {\n const pairIdx = idx % 2 === 0 ? idx + 1 : idx - 1;\n if (pairIdx < layer.length) {\n return layer[pairIdx];\n }\n else {\n return null;\n }\n }\n /**\n * toTreeString\n * @desc Returns a visual representation of the merkle tree as a string.\n * @return {String}\n * @example\n *```js\n *console.log(tree.toTreeString())\n *```\n */\n _toTreeString() {\n const obj = this.getLayersAsObject();\n return treeify_1.default.asTree(obj, true);\n }\n /**\n * toString\n * @desc Returns a visual representation of the merkle tree as a string.\n * @example\n *```js\n *console.log(tree.toString())\n *```\n */\n toString() {\n return this._toTreeString();\n }\n isUnevenTree(treeLayers) {\n const depth = (treeLayers === null || treeLayers === void 0 ? void 0 : treeLayers.length) || this.getDepth();\n return !this.isPowOf2(depth);\n }\n isPowOf2(v) {\n return v && !(v & (v - 1));\n }\n calculateRootForUnevenTree(leafIndices, leafHashes, totalLeavesCount, proofHashes) {\n const leafTuples = this._zip(leafIndices, leafHashes).sort(([indexA], [indexB]) => indexA - indexB);\n const leafTupleIndices = leafTuples.map(([index]) => index);\n const proofIndices = this.getProofIndicesForUnevenTree(leafTupleIndices, totalLeavesCount);\n let nextSliceStart = 0;\n const proofTuplesByLayers = [];\n for (let i = 0; i < proofIndices.length; i++) {\n const indices = proofIndices[i];\n const sliceStart = nextSliceStart;\n nextSliceStart += indices.length;\n proofTuplesByLayers[i] = this._zip(indices, proofHashes.slice(sliceStart, nextSliceStart));\n }\n const tree = [leafTuples];\n for (let layerIndex = 0; layerIndex < proofTuplesByLayers.length; layerIndex++) {\n const currentLayer = proofTuplesByLayers[layerIndex].concat(tree[layerIndex]).sort(([indexA], [indexB]) => indexA - indexB)\n .map(([, hash]) => hash);\n const s = tree[layerIndex].map(([layerIndex]) => layerIndex);\n const parentIndices = [...new Set(s.map((index) => {\n if (index % 2 === 0) {\n return index / 2;\n }\n if (index % 2 === 0) {\n return (index + 1) / 2;\n }\n return (index - 1) / 2;\n }))];\n const parentLayer = [];\n for (let i = 0; i < parentIndices.length; i++) {\n const parentNodeTreeIndex = parentIndices[i];\n const bufA = currentLayer[i * 2];\n const bufB = currentLayer[i * 2 + 1];\n const hash = bufB ? this.hashFn(Buffer.concat([bufA, bufB])) : bufA;\n parentLayer.push([parentNodeTreeIndex, hash]);\n }\n tree.push(parentLayer);\n }\n return tree[tree.length - 1][0][1];\n }\n}\nexports.MerkleTree = MerkleTree;\nif (typeof window !== 'undefined') {\n ;\n window.MerkleTree = MerkleTree;\n}\nexports.default = MerkleTree;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Debugging line for testing browser lib in node\n//const window = { crypto: { getRandomValues: () => { } } };\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n}\n;\nconst anyGlobal = getGlobal();\nlet crypto = anyGlobal.crypto || anyGlobal.msCrypto;\nif (!crypto || !crypto.getRandomValues) {\n logger.warn(\"WARNING: Missing strong random number source\");\n crypto = {\n getRandomValues: function (buffer) {\n return logger.throwError(\"no secure random source avaialble\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"crypto.getRandomValues\"\n });\n }\n };\n}\nexport function randomBytes(length) {\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return arrayify(result);\n}\n;\n//# sourceMappingURL=random.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KECCAK256_RLP = exports.KECCAK256_RLP_S = exports.KECCAK256_RLP_ARRAY = exports.KECCAK256_RLP_ARRAY_S = exports.KECCAK256_NULL = exports.KECCAK256_NULL_S = exports.TWO_POW256 = exports.MAX_INTEGER = void 0;\nvar BN = require(\"bn.js\");\n/**\n * The max integer that this VM can handle\n */\nexports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16);\n/**\n * 2^256\n */\nexports.TWO_POW256 = new BN('10000000000000000000000000000000000000000000000000000000000000000', 16);\n/**\n * Keccak-256 hash of null\n */\nexports.KECCAK256_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\n/**\n * Keccak-256 hash of null\n */\nexports.KECCAK256_NULL = Buffer.from(exports.KECCAK256_NULL_S, 'hex');\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexports.KECCAK256_RLP_ARRAY_S = '1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347';\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexports.KECCAK256_RLP_ARRAY = Buffer.from(exports.KECCAK256_RLP_ARRAY_S, 'hex');\n/**\n * Keccak-256 hash of the RLP of null\n */\nexports.KECCAK256_RLP_S = '56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421';\n/**\n * Keccak-256 hash of the RLP of null\n */\nexports.KECCAK256_RLP = Buffer.from(exports.KECCAK256_RLP_S, 'hex');\n//# sourceMappingURL=constants.js.map","'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';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","\"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.getLength = exports.decode = exports.encode = void 0;\nvar bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP\n * This function takes in a data, convert it to buffer if not, and a length for recursion\n * @param input - will be converted to buffer\n * @returns returns buffer of encoded data\n **/\nfunction encode(input) {\n if (Array.isArray(input)) {\n var output = [];\n for (var i = 0; i < input.length; i++) {\n output.push(encode(input[i]));\n }\n var buf = Buffer.concat(output);\n return Buffer.concat([encodeLength(buf.length, 192), buf]);\n }\n else {\n var inputBuf = toBuffer(input);\n return inputBuf.length === 1 && inputBuf[0] < 128\n ? inputBuf\n : Buffer.concat([encodeLength(inputBuf.length, 128), inputBuf]);\n }\n}\nexports.encode = encode;\n/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n * @param base The base to parse the integer into\n */\nfunction safeParseInt(v, base) {\n if (v[0] === '0' && v[1] === '0') {\n throw new Error('invalid RLP: extra zeros');\n }\n return parseInt(v, base);\n}\nfunction encodeLength(len, offset) {\n if (len < 56) {\n return Buffer.from([len + offset]);\n }\n else {\n var hexLength = intToHex(len);\n var lLength = hexLength.length / 2;\n var firstByte = intToHex(offset + 55 + lLength);\n return Buffer.from(firstByte + hexLength, 'hex');\n }\n}\nfunction decode(input, stream) {\n if (stream === void 0) { stream = false; }\n if (!input || input.length === 0) {\n return Buffer.from([]);\n }\n var inputBuffer = toBuffer(input);\n var decoded = _decode(inputBuffer);\n if (stream) {\n return decoded;\n }\n if (decoded.remainder.length !== 0) {\n throw new Error('invalid remainder');\n }\n return decoded.data;\n}\nexports.decode = decode;\n/**\n * Get the length of the RLP input\n * @param input\n * @returns The length of the input or an empty Buffer if no input\n */\nfunction getLength(input) {\n if (!input || input.length === 0) {\n return Buffer.from([]);\n }\n var inputBuffer = toBuffer(input);\n var firstByte = inputBuffer[0];\n if (firstByte <= 0x7f) {\n return inputBuffer.length;\n }\n else if (firstByte <= 0xb7) {\n return firstByte - 0x7f;\n }\n else if (firstByte <= 0xbf) {\n return firstByte - 0xb6;\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n return firstByte - 0xbf;\n }\n else {\n // a list over 55 bytes long\n var llength = firstByte - 0xf6;\n var length_1 = safeParseInt(inputBuffer.slice(1, llength).toString('hex'), 16);\n return llength + length_1;\n }\n}\nexports.getLength = getLength;\n/** Decode an input with RLP */\nfunction _decode(input) {\n var length, llength, data, innerRemainder, d;\n var decoded = [];\n var firstByte = input[0];\n if (firstByte <= 0x7f) {\n // a single byte whose value is in the [0x00, 0x7f] range, that byte is its own RLP encoding.\n return {\n data: input.slice(0, 1),\n remainder: input.slice(1),\n };\n }\n else if (firstByte <= 0xb7) {\n // string is 0-55 bytes long. A single byte with value 0x80 plus the length of the string followed by the string\n // The range of the first byte is [0x80, 0xb7]\n length = firstByte - 0x7f;\n // set 0x80 null to 0\n if (firstByte === 0x80) {\n data = Buffer.from([]);\n }\n else {\n data = input.slice(1, length);\n }\n if (length === 2 && data[0] < 0x80) {\n throw new Error('invalid rlp encoding: byte must be less 0x80');\n }\n return {\n data: data,\n remainder: input.slice(length),\n };\n }\n else if (firstByte <= 0xbf) {\n // string is greater than 55 bytes long. A single byte with the value (0xb7 plus the length of the length),\n // followed by the length, followed by the string\n llength = firstByte - 0xb6;\n if (input.length - 1 < llength) {\n throw new Error('invalid RLP: not enough bytes for string length');\n }\n length = safeParseInt(input.slice(1, llength).toString('hex'), 16);\n if (length <= 55) {\n throw new Error('invalid RLP: expected string length to be greater than 55');\n }\n data = input.slice(llength, length + llength);\n if (data.length < length) {\n throw new Error('invalid RLP: not enough bytes for string');\n }\n return {\n data: data,\n remainder: input.slice(length + llength),\n };\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n length = firstByte - 0xbf;\n innerRemainder = input.slice(1, length);\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(length),\n };\n }\n else {\n // a list over 55 bytes long\n llength = firstByte - 0xf6;\n length = safeParseInt(input.slice(1, llength).toString('hex'), 16);\n var totalLength = llength + length;\n if (totalLength > input.length) {\n throw new Error('invalid rlp: total length is larger than the data');\n }\n innerRemainder = input.slice(llength, totalLength);\n if (innerRemainder.length === 0) {\n throw new Error('invalid rlp, List has a invalid length');\n }\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(totalLength),\n };\n }\n}\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str) {\n return str.slice(0, 2) === '0x';\n}\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n/** Transform an integer into its hexadecimal value */\nfunction intToHex(integer) {\n if (integer < 0) {\n throw new Error('Invalid integer as argument, must be unsigned!');\n }\n var hex = integer.toString(16);\n return hex.length % 2 ? \"0\" + hex : hex;\n}\n/** Pad a string to be even */\nfunction padToEven(a) {\n return a.length % 2 ? \"0\" + a : a;\n}\n/** Transform an integer into a Buffer */\nfunction intToBuffer(integer) {\n var hex = intToHex(integer);\n return Buffer.from(hex, 'hex');\n}\n/** Transform anything into a Buffer */\nfunction toBuffer(v) {\n if (!Buffer.isBuffer(v)) {\n if (typeof v === 'string') {\n if (isHexPrefixed(v)) {\n return Buffer.from(padToEven(stripHexPrefix(v)), 'hex');\n }\n else {\n return Buffer.from(v);\n }\n }\n else if (typeof v === 'number' || typeof v === 'bigint') {\n if (!v) {\n return Buffer.from([]);\n }\n else {\n return intToBuffer(v);\n }\n }\n else if (v === null || v === undefined) {\n return Buffer.from([]);\n }\n else if (v instanceof Uint8Array) {\n return Buffer.from(v);\n }\n else if (bn_js_1.default.isBN(v)) {\n // converts a BN to a Buffer\n return Buffer.from(v.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return v;\n}\n//# sourceMappingURL=index.js.map","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","const P1600_ROUND_CONSTANTS = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648]\n\nexports.p1600 = function (s) {\n for (let round = 0; round < 24; ++round) {\n // theta\n const lo0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]\n const hi0 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]\n const lo1 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]\n const hi1 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]\n const lo2 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]\n const hi2 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]\n const lo3 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]\n const hi3 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]\n const lo4 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]\n const hi4 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]\n\n let lo = lo4 ^ (lo1 << 1 | hi1 >>> 31)\n let hi = hi4 ^ (hi1 << 1 | lo1 >>> 31)\n const t1slo0 = s[0] ^ lo\n const t1shi0 = s[1] ^ hi\n const t1slo5 = s[10] ^ lo\n const t1shi5 = s[11] ^ hi\n const t1slo10 = s[20] ^ lo\n const t1shi10 = s[21] ^ hi\n const t1slo15 = s[30] ^ lo\n const t1shi15 = s[31] ^ hi\n const t1slo20 = s[40] ^ lo\n const t1shi20 = s[41] ^ hi\n lo = lo0 ^ (lo2 << 1 | hi2 >>> 31)\n hi = hi0 ^ (hi2 << 1 | lo2 >>> 31)\n const t1slo1 = s[2] ^ lo\n const t1shi1 = s[3] ^ hi\n const t1slo6 = s[12] ^ lo\n const t1shi6 = s[13] ^ hi\n const t1slo11 = s[22] ^ lo\n const t1shi11 = s[23] ^ hi\n const t1slo16 = s[32] ^ lo\n const t1shi16 = s[33] ^ hi\n const t1slo21 = s[42] ^ lo\n const t1shi21 = s[43] ^ hi\n lo = lo1 ^ (lo3 << 1 | hi3 >>> 31)\n hi = hi1 ^ (hi3 << 1 | lo3 >>> 31)\n const t1slo2 = s[4] ^ lo\n const t1shi2 = s[5] ^ hi\n const t1slo7 = s[14] ^ lo\n const t1shi7 = s[15] ^ hi\n const t1slo12 = s[24] ^ lo\n const t1shi12 = s[25] ^ hi\n const t1slo17 = s[34] ^ lo\n const t1shi17 = s[35] ^ hi\n const t1slo22 = s[44] ^ lo\n const t1shi22 = s[45] ^ hi\n lo = lo2 ^ (lo4 << 1 | hi4 >>> 31)\n hi = hi2 ^ (hi4 << 1 | lo4 >>> 31)\n const t1slo3 = s[6] ^ lo\n const t1shi3 = s[7] ^ hi\n const t1slo8 = s[16] ^ lo\n const t1shi8 = s[17] ^ hi\n const t1slo13 = s[26] ^ lo\n const t1shi13 = s[27] ^ hi\n const t1slo18 = s[36] ^ lo\n const t1shi18 = s[37] ^ hi\n const t1slo23 = s[46] ^ lo\n const t1shi23 = s[47] ^ hi\n lo = lo3 ^ (lo0 << 1 | hi0 >>> 31)\n hi = hi3 ^ (hi0 << 1 | lo0 >>> 31)\n const t1slo4 = s[8] ^ lo\n const t1shi4 = s[9] ^ hi\n const t1slo9 = s[18] ^ lo\n const t1shi9 = s[19] ^ hi\n const t1slo14 = s[28] ^ lo\n const t1shi14 = s[29] ^ hi\n const t1slo19 = s[38] ^ lo\n const t1shi19 = s[39] ^ hi\n const t1slo24 = s[48] ^ lo\n const t1shi24 = s[49] ^ hi\n\n // rho & pi\n const t2slo0 = t1slo0\n const t2shi0 = t1shi0\n const t2slo16 = (t1shi5 << 4 | t1slo5 >>> 28)\n const t2shi16 = (t1slo5 << 4 | t1shi5 >>> 28)\n const t2slo7 = (t1slo10 << 3 | t1shi10 >>> 29)\n const t2shi7 = (t1shi10 << 3 | t1slo10 >>> 29)\n const t2slo23 = (t1shi15 << 9 | t1slo15 >>> 23)\n const t2shi23 = (t1slo15 << 9 | t1shi15 >>> 23)\n const t2slo14 = (t1slo20 << 18 | t1shi20 >>> 14)\n const t2shi14 = (t1shi20 << 18 | t1slo20 >>> 14)\n const t2slo10 = (t1slo1 << 1 | t1shi1 >>> 31)\n const t2shi10 = (t1shi1 << 1 | t1slo1 >>> 31)\n const t2slo1 = (t1shi6 << 12 | t1slo6 >>> 20)\n const t2shi1 = (t1slo6 << 12 | t1shi6 >>> 20)\n const t2slo17 = (t1slo11 << 10 | t1shi11 >>> 22)\n const t2shi17 = (t1shi11 << 10 | t1slo11 >>> 22)\n const t2slo8 = (t1shi16 << 13 | t1slo16 >>> 19)\n const t2shi8 = (t1slo16 << 13 | t1shi16 >>> 19)\n const t2slo24 = (t1slo21 << 2 | t1shi21 >>> 30)\n const t2shi24 = (t1shi21 << 2 | t1slo21 >>> 30)\n const t2slo20 = (t1shi2 << 30 | t1slo2 >>> 2)\n const t2shi20 = (t1slo2 << 30 | t1shi2 >>> 2)\n const t2slo11 = (t1slo7 << 6 | t1shi7 >>> 26)\n const t2shi11 = (t1shi7 << 6 | t1slo7 >>> 26)\n const t2slo2 = (t1shi12 << 11 | t1slo12 >>> 21)\n const t2shi2 = (t1slo12 << 11 | t1shi12 >>> 21)\n const t2slo18 = (t1slo17 << 15 | t1shi17 >>> 17)\n const t2shi18 = (t1shi17 << 15 | t1slo17 >>> 17)\n const t2slo9 = (t1shi22 << 29 | t1slo22 >>> 3)\n const t2shi9 = (t1slo22 << 29 | t1shi22 >>> 3)\n const t2slo5 = (t1slo3 << 28 | t1shi3 >>> 4)\n const t2shi5 = (t1shi3 << 28 | t1slo3 >>> 4)\n const t2slo21 = (t1shi8 << 23 | t1slo8 >>> 9)\n const t2shi21 = (t1slo8 << 23 | t1shi8 >>> 9)\n const t2slo12 = (t1slo13 << 25 | t1shi13 >>> 7)\n const t2shi12 = (t1shi13 << 25 | t1slo13 >>> 7)\n const t2slo3 = (t1slo18 << 21 | t1shi18 >>> 11)\n const t2shi3 = (t1shi18 << 21 | t1slo18 >>> 11)\n const t2slo19 = (t1shi23 << 24 | t1slo23 >>> 8)\n const t2shi19 = (t1slo23 << 24 | t1shi23 >>> 8)\n const t2slo15 = (t1slo4 << 27 | t1shi4 >>> 5)\n const t2shi15 = (t1shi4 << 27 | t1slo4 >>> 5)\n const t2slo6 = (t1slo9 << 20 | t1shi9 >>> 12)\n const t2shi6 = (t1shi9 << 20 | t1slo9 >>> 12)\n const t2slo22 = (t1shi14 << 7 | t1slo14 >>> 25)\n const t2shi22 = (t1slo14 << 7 | t1shi14 >>> 25)\n const t2slo13 = (t1slo19 << 8 | t1shi19 >>> 24)\n const t2shi13 = (t1shi19 << 8 | t1slo19 >>> 24)\n const t2slo4 = (t1slo24 << 14 | t1shi24 >>> 18)\n const t2shi4 = (t1shi24 << 14 | t1slo24 >>> 18)\n\n // chi\n s[0] = t2slo0 ^ (~t2slo1 & t2slo2)\n s[1] = t2shi0 ^ (~t2shi1 & t2shi2)\n s[10] = t2slo5 ^ (~t2slo6 & t2slo7)\n s[11] = t2shi5 ^ (~t2shi6 & t2shi7)\n s[20] = t2slo10 ^ (~t2slo11 & t2slo12)\n s[21] = t2shi10 ^ (~t2shi11 & t2shi12)\n s[30] = t2slo15 ^ (~t2slo16 & t2slo17)\n s[31] = t2shi15 ^ (~t2shi16 & t2shi17)\n s[40] = t2slo20 ^ (~t2slo21 & t2slo22)\n s[41] = t2shi20 ^ (~t2shi21 & t2shi22)\n s[2] = t2slo1 ^ (~t2slo2 & t2slo3)\n s[3] = t2shi1 ^ (~t2shi2 & t2shi3)\n s[12] = t2slo6 ^ (~t2slo7 & t2slo8)\n s[13] = t2shi6 ^ (~t2shi7 & t2shi8)\n s[22] = t2slo11 ^ (~t2slo12 & t2slo13)\n s[23] = t2shi11 ^ (~t2shi12 & t2shi13)\n s[32] = t2slo16 ^ (~t2slo17 & t2slo18)\n s[33] = t2shi16 ^ (~t2shi17 & t2shi18)\n s[42] = t2slo21 ^ (~t2slo22 & t2slo23)\n s[43] = t2shi21 ^ (~t2shi22 & t2shi23)\n s[4] = t2slo2 ^ (~t2slo3 & t2slo4)\n s[5] = t2shi2 ^ (~t2shi3 & t2shi4)\n s[14] = t2slo7 ^ (~t2slo8 & t2slo9)\n s[15] = t2shi7 ^ (~t2shi8 & t2shi9)\n s[24] = t2slo12 ^ (~t2slo13 & t2slo14)\n s[25] = t2shi12 ^ (~t2shi13 & t2shi14)\n s[34] = t2slo17 ^ (~t2slo18 & t2slo19)\n s[35] = t2shi17 ^ (~t2shi18 & t2shi19)\n s[44] = t2slo22 ^ (~t2slo23 & t2slo24)\n s[45] = t2shi22 ^ (~t2shi23 & t2shi24)\n s[6] = t2slo3 ^ (~t2slo4 & t2slo0)\n s[7] = t2shi3 ^ (~t2shi4 & t2shi0)\n s[16] = t2slo8 ^ (~t2slo9 & t2slo5)\n s[17] = t2shi8 ^ (~t2shi9 & t2shi5)\n s[26] = t2slo13 ^ (~t2slo14 & t2slo10)\n s[27] = t2shi13 ^ (~t2shi14 & t2shi10)\n s[36] = t2slo18 ^ (~t2slo19 & t2slo15)\n s[37] = t2shi18 ^ (~t2shi19 & t2shi15)\n s[46] = t2slo23 ^ (~t2slo24 & t2slo20)\n s[47] = t2shi23 ^ (~t2shi24 & t2shi20)\n s[8] = t2slo4 ^ (~t2slo0 & t2slo1)\n s[9] = t2shi4 ^ (~t2shi0 & t2shi1)\n s[18] = t2slo9 ^ (~t2slo5 & t2slo6)\n s[19] = t2shi9 ^ (~t2shi5 & t2shi6)\n s[28] = t2slo14 ^ (~t2slo10 & t2slo11)\n s[29] = t2shi14 ^ (~t2shi10 & t2shi11)\n s[38] = t2slo19 ^ (~t2slo15 & t2slo16)\n s[39] = t2shi19 ^ (~t2shi15 & t2shi16)\n s[48] = t2slo24 ^ (~t2slo20 & t2slo21)\n s[49] = t2shi24 ^ (~t2shi20 & t2shi21)\n\n // iota\n s[0] ^= P1600_ROUND_CONSTANTS[round * 2]\n s[1] ^= P1600_ROUND_CONSTANTS[round * 2 + 1]\n }\n}\n","const ProviderSubprovider = require('./json-rpc-engine-middleware')\nconst createFilterMiddleware = require('eth-json-rpc-filters')\n\nclass SubscriptionsSubprovider extends ProviderSubprovider {\n constructor() {\n super(({ blockTracker, provider, engine }) => {\n return createFilterMiddleware({ blockTracker, provider })\n })\n }\n}\n\nmodule.exports = SubscriptionsSubprovider\n","\"use strict\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\nexport function formatBytes32String(text) {\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n // Check we have room for null-termination\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n }\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n const data = arrayify(bytes);\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n }\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) {\n length--;\n }\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","export const version = \"units/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value) {\n const comps = String(value).split(\".\");\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") {\n whole = whole.substring(1);\n }\n if (whole === \"\") {\n whole = \"0\";\n }\n let suffix = \"\";\n if (comps.length === 2) {\n suffix = \".\" + (comps[1] || \"0\");\n }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n }\n else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n return negative + formatted.join(\",\") + suffix;\n}\nexport function formatUnits(value, unitName) {\n if (typeof (unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) {\n unitName = 3 * index;\n }\n }\n return formatFixed(value, (unitName != null) ? unitName : 18);\n}\nexport function parseUnits(value, unitName) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof (unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) {\n unitName = 3 * index;\n }\n }\n return parseFixed(value, (unitName != null) ? unitName : 18);\n}\nexport function formatEther(wei) {\n return formatUnits(wei, 18);\n}\nexport function parseEther(ether) {\n return parseUnits(ether, 18);\n}\n//# sourceMappingURL=index.js.map","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=message.js.map","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","\"use strict\";\nexport { decode, encode } from \"./base64\";\n//# sourceMappingURL=index.js.map","/**\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","'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 (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */\nimport { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map\n","function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar browserUtils = require('@walletconnect/browser-utils');\nvar QRCode = _interopDefault(require('qrcode'));\nvar copy = _interopDefault(require('copy-to-clipboard'));\nvar React = require('preact/compat');\n\nfunction open(uri) {\n QRCode.toString(uri, {\n type: \"terminal\"\n }).then(console.log);\n}\n\nvar WALLETCONNECT_STYLE_SHEET = \":root {\\n --animation-duration: 300ms;\\n}\\n\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeOut {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.animated {\\n animation-duration: var(--animation-duration);\\n animation-fill-mode: both;\\n}\\n\\n.fadeIn {\\n animation-name: fadeIn;\\n}\\n\\n.fadeOut {\\n animation-name: fadeOut;\\n}\\n\\n#walletconnect-wrapper {\\n -webkit-user-select: none;\\n align-items: center;\\n display: flex;\\n height: 100%;\\n justify-content: center;\\n left: 0;\\n pointer-events: none;\\n position: fixed;\\n top: 0;\\n user-select: none;\\n width: 100%;\\n z-index: 99999999999999;\\n}\\n\\n.walletconnect-modal__headerLogo {\\n height: 21px;\\n}\\n\\n.walletconnect-modal__header p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n align-items: flex-start;\\n display: flex;\\n flex: 1;\\n margin-left: 5px;\\n}\\n\\n.walletconnect-modal__close__wrapper {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n z-index: 10000;\\n background: white;\\n border-radius: 26px;\\n padding: 6px;\\n box-sizing: border-box;\\n width: 26px;\\n height: 26px;\\n cursor: pointer;\\n}\\n\\n.walletconnect-modal__close__icon {\\n position: relative;\\n top: 7px;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transform: rotate(45deg);\\n}\\n\\n.walletconnect-modal__close__line1 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n}\\n\\n.walletconnect-modal__close__line2 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n transform: rotate(90deg);\\n}\\n\\n.walletconnect-qrcode__base {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n background: rgba(37, 41, 46, 0.95);\\n height: 100%;\\n left: 0;\\n pointer-events: auto;\\n position: fixed;\\n top: 0;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n width: 100%;\\n will-change: opacity;\\n padding: 40px;\\n box-sizing: border-box;\\n}\\n\\n.walletconnect-qrcode__text {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 10px 0 20px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-qrcode__text {\\n font-size: 4vw;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-qrcode__text {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-qrcode__image {\\n width: calc(100% - 30px);\\n box-sizing: border-box;\\n cursor: none;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-qrcode__notification {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n font-size: 16px;\\n padding: 16px 20px;\\n border-radius: 16px;\\n text-align: center;\\n transition: all 0.1s ease-in-out;\\n background: white;\\n color: black;\\n margin-bottom: -60px;\\n opacity: 0;\\n}\\n\\n.walletconnect-qrcode__notification.notification__show {\\n opacity: 1;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__header {\\n height: 130px;\\n }\\n .walletconnect-modal__base {\\n overflow: auto;\\n }\\n}\\n\\n@media only screen and (min-device-width: 415px) and (max-width: 768px) {\\n #content {\\n max-width: 768px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 375px) and (max-width: 415px) {\\n #content {\\n max-width: 414px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 320px) and (max-width: 375px) {\\n #content {\\n max-width: 375px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n #content {\\n max-width: 320px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.walletconnect-modal__base {\\n -webkit-font-smoothing: antialiased;\\n background: #ffffff;\\n border-radius: 24px;\\n box-shadow: 0 10px 50px 5px rgba(0, 0, 0, 0.4);\\n font-family: ui-rounded, \\\"SF Pro Rounded\\\", \\\"SF Pro Text\\\", medium-content-sans-serif-font,\\n -apple-system, BlinkMacSystemFont, ui-sans-serif, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell,\\n \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n margin-top: 41px;\\n padding: 24px 24px 22px;\\n pointer-events: auto;\\n position: relative;\\n text-align: center;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n will-change: transform;\\n overflow: visible;\\n transform: translateY(-50%);\\n top: 50%;\\n max-width: 500px;\\n margin: auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__base {\\n padding: 24px 12px;\\n }\\n}\\n\\n.walletconnect-modal__base .hidden {\\n transform: translateY(150%);\\n transition: 0.125s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.walletconnect-modal__header {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n left: 0;\\n justify-content: space-between;\\n position: absolute;\\n top: -42px;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base .wc-logo {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n margin-top: 15px;\\n padding-bottom: 15px;\\n pointer-events: auto;\\n}\\n\\n.walletconnect-modal__base .wc-logo div {\\n background-color: #3399ff;\\n height: 21px;\\n margin-right: 5px;\\n mask-image: url(\\\"images/wc-logo.svg\\\") center no-repeat;\\n width: 32px;\\n}\\n\\n.walletconnect-modal__base .wc-logo p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n}\\n\\n.walletconnect-modal__base h2 {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 0 0 19px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base__row {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n align-items: center;\\n border-radius: 20px;\\n cursor: pointer;\\n display: flex;\\n height: 56px;\\n justify-content: space-between;\\n padding: 0 15px;\\n position: relative;\\n margin: 0px 0px 8px;\\n text-align: left;\\n transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n will-change: transform;\\n text-decoration: none;\\n}\\n\\n.walletconnect-modal__base__row:hover {\\n background: rgba(60, 66, 82, 0.06);\\n}\\n\\n.walletconnect-modal__base__row:active {\\n background: rgba(60, 66, 82, 0.06);\\n transform: scale(0.975);\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n}\\n\\n.walletconnect-modal__base__row__h3 {\\n color: #25292e;\\n font-size: 20px;\\n font-weight: 700;\\n margin: 0;\\n padding-bottom: 3px;\\n}\\n\\n.walletconnect-modal__base__row__right {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.walletconnect-modal__base__row__right__app-icon {\\n border-radius: 8px;\\n height: 34px;\\n margin: 0 11px 2px 0;\\n width: 34px;\\n background-size: 100%;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-modal__base__row__right__caret {\\n height: 18px;\\n opacity: 0.3;\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n width: 8px;\\n will-change: opacity;\\n}\\n\\n.walletconnect-modal__base__row:hover .caret,\\n.walletconnect-modal__base__row:active .caret {\\n opacity: 0.6;\\n}\\n\\n.walletconnect-modal__mobile__toggle {\\n width: 80%;\\n display: flex;\\n margin: 0 auto;\\n position: relative;\\n overflow: hidden;\\n border-radius: 8px;\\n margin-bottom: 18px;\\n background: #d4d5d9;\\n}\\n\\n.walletconnect-modal__single_wallet {\\n display: flex;\\n justify-content: center;\\n margin-top: 7px;\\n margin-bottom: 18px;\\n}\\n\\n.walletconnect-modal__single_wallet a {\\n cursor: pointer;\\n color: rgb(64, 153, 255);\\n font-size: 21px;\\n font-weight: 800;\\n text-decoration: none !important;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-modal__mobile__toggle_selector {\\n width: calc(50% - 8px);\\n background: white;\\n position: absolute;\\n border-radius: 5px;\\n height: calc(100% - 8px);\\n top: 4px;\\n transition: all 0.2s ease-in-out;\\n transform: translate3d(4px, 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle.right__selected .walletconnect-modal__mobile__toggle_selector {\\n transform: translate3d(calc(100% + 12px), 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle a {\\n font-size: 12px;\\n width: 50%;\\n text-align: center;\\n padding: 8px;\\n margin: 0;\\n font-weight: 600;\\n z-index: 1;\\n}\\n\\n.walletconnect-modal__footer {\\n display: flex;\\n justify-content: center;\\n margin-top: 20px;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__footer {\\n margin-top: 5vw;\\n }\\n}\\n\\n.walletconnect-modal__footer a {\\n cursor: pointer;\\n color: #898d97;\\n font-size: 15px;\\n margin: 0 auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__footer a {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-connect__buttons__wrapper {\\n max-height: 44vh;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__android {\\n margin: 50% 0;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__wrap {\\n display: grid;\\n grid-template-columns: repeat(4, 1fr);\\n margin: 10px 0;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__buttons__wrapper__wrap {\\n margin-top: 40px;\\n }\\n}\\n\\n.walletconnect-connect__button {\\n background-color: rgb(64, 153, 255);\\n padding: 12px;\\n border-radius: 8px;\\n text-decoration: none;\\n color: rgb(255, 255, 255);\\n font-weight: 500;\\n}\\n\\n.walletconnect-connect__button__icon_anchor {\\n cursor: pointer;\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 8px;\\n width: 42px;\\n justify-self: center;\\n flex-direction: column;\\n text-decoration: none !important;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-connect__button__icon_anchor {\\n margin: 4px;\\n }\\n}\\n\\n.walletconnect-connect__button__icon {\\n border-radius: 10px;\\n height: 42px;\\n margin: 0;\\n width: 42px;\\n background-size: cover !important;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-connect__button__text {\\n color: #424952;\\n font-size: 2.7vw;\\n text-decoration: none !important;\\n padding: 0;\\n margin-top: 1.8vw;\\n font-weight: 600;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__button__text {\\n font-size: 16px;\\n margin-top: 12px;\\n }\\n}\\n\\n.walletconnect-search__input {\\n border: none;\\n background: #d4d5d9;\\n border-style: none;\\n padding: 8px 16px;\\n outline: none;\\n font-style: normal;\\n font-stretch: normal;\\n font-size: 16px;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: normal;\\n letter-spacing: normal;\\n text-align: left;\\n border-radius: 8px;\\n width: calc(100% - 16px);\\n margin: 0;\\n margin-bottom: 8px;\\n}\\n\";\n\n// A type of promise-like that resolves synchronously and supports only one observer\nvar _iteratorSymbol = /*#__PURE__*/typeof Symbol !== \"undefined\" ? Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\")) : \"@@iterator\"; // Asynchronously iterate through an object's values\nvar _asyncIteratorSymbol = /*#__PURE__*/typeof Symbol !== \"undefined\" ? Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\")) : \"@@asyncIterator\"; // Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\n\nfunction _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }\n\n if (result && result.then) {\n return result.then(void 0, recover);\n }\n\n return result;\n} // Asynchronously await a promise and pass the result to a finally continuation\n\nvar WALLETCONNECT_LOGO_SVG_URL = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='300px' height='185px' viewBox='0 0 300 185' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch --%3E %3Ctitle%3EWalletConnect%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cdefs%3E%3C/defs%3E %3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='walletconnect-logo-alt' fill='%233B99FC' fill-rule='nonzero'%3E %3Cpath d='M61.4385429,36.2562612 C110.349767,-11.6319051 189.65053,-11.6319051 238.561752,36.2562612 L244.448297,42.0196786 C246.893858,44.4140867 246.893858,48.2961898 244.448297,50.690599 L224.311602,70.406102 C223.088821,71.6033071 221.106302,71.6033071 219.883521,70.406102 L211.782937,62.4749541 C177.661245,29.0669724 122.339051,29.0669724 88.2173582,62.4749541 L79.542302,70.9685592 C78.3195204,72.1657633 76.337001,72.1657633 75.1142214,70.9685592 L54.9775265,51.2530561 C52.5319653,48.8586469 52.5319653,44.9765439 54.9775265,42.5821357 L61.4385429,36.2562612 Z M280.206339,77.0300061 L298.128036,94.5769031 C300.573585,96.9713 300.573599,100.85338 298.128067,103.247793 L217.317896,182.368927 C214.872352,184.763353 210.907314,184.76338 208.461736,182.368989 C208.461726,182.368979 208.461714,182.368967 208.461704,182.368957 L151.107561,126.214385 C150.496171,125.615783 149.504911,125.615783 148.893521,126.214385 C148.893517,126.214389 148.893514,126.214393 148.89351,126.214396 L91.5405888,182.368927 C89.095052,184.763359 85.1300133,184.763399 82.6844276,182.369014 C82.6844133,182.369 82.684398,182.368986 82.6843827,182.36897 L1.87196327,103.246785 C-0.573596939,100.852377 -0.573596939,96.9702735 1.87196327,94.5758653 L19.7936929,77.028998 C22.2392531,74.6345898 26.2042918,74.6345898 28.6498531,77.028998 L86.0048306,133.184355 C86.6162214,133.782957 87.6074796,133.782957 88.2188704,133.184355 C88.2188796,133.184346 88.2188878,133.184338 88.2188969,133.184331 L145.571,77.028998 C148.016505,74.6345347 151.981544,74.6344449 154.427161,77.028798 C154.427195,77.0288316 154.427229,77.0288653 154.427262,77.028899 L211.782164,133.184331 C212.393554,133.782932 213.384814,133.782932 213.996204,133.184331 L271.350179,77.0300061 C273.79574,74.6355969 277.760778,74.6355969 280.206339,77.0300061 Z' id='WalletConnect'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E\";\n\nvar WALLETCONNECT_HEADER_TEXT = \"WalletConnect\";\nvar ANIMATION_DURATION = 300;\nvar DEFAULT_BUTTON_COLOR = \"rgb(64, 153, 255)\";\nvar WALLETCONNECT_WRAPPER_ID = \"walletconnect-wrapper\";\nvar WALLETCONNECT_STYLE_ID = \"walletconnect-style-sheet\";\nvar WALLETCONNECT_MODAL_ID = \"walletconnect-qrcode-modal\";\nvar WALLETCONNECT_CLOSE_BUTTON_ID = \"walletconnect-qrcode-close\";\nvar WALLETCONNECT_CTA_TEXT_ID = \"walletconnect-qrcode-text\";\nvar WALLETCONNECT_CONNECT_BUTTON_ID = \"walletconnect-connect-button\";\n\nfunction Header(props) {\n return React.createElement(\"div\", {\n className: \"walletconnect-modal__header\"\n }, React.createElement(\"img\", {\n src: WALLETCONNECT_LOGO_SVG_URL,\n className: \"walletconnect-modal__headerLogo\"\n }), React.createElement(\"p\", null, WALLETCONNECT_HEADER_TEXT), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__wrapper\",\n onClick: props.onClose\n }, React.createElement(\"div\", {\n id: WALLETCONNECT_CLOSE_BUTTON_ID,\n className: \"walletconnect-modal__close__icon\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line1\"\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line2\"\n }))));\n}\n\nfunction ConnectButton(props) {\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button\",\n href: props.href,\n id: (WALLETCONNECT_CONNECT_BUTTON_ID + \"-\" + (props.name)),\n onClick: props.onClick,\n rel: \"noopener noreferrer\",\n style: {\n backgroundColor: props.color\n },\n target: \"_blank\"\n }, props.name);\n}\n\nvar CARET_SVG_URL = \"data:image/svg+xml,%3Csvg width='8' height='18' viewBox='0 0 8 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.586301 0.213898C0.150354 0.552968 0.0718197 1.18124 0.41089 1.61719L5.2892 7.88931C5.57007 8.25042 5.57007 8.75608 5.2892 9.11719L0.410889 15.3893C0.071819 15.8253 0.150353 16.4535 0.586301 16.7926C1.02225 17.1317 1.65052 17.0531 1.98959 16.6172L6.86791 10.3451C7.7105 9.26174 7.7105 7.74476 6.86791 6.66143L1.98959 0.38931C1.65052 -0.0466374 1.02225 -0.125172 0.586301 0.213898Z' fill='%233C4252'/%3E %3C/svg%3E\";\n\nfunction WalletButton(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n return React.createElement(\"a\", {\n className: \"walletconnect-modal__base__row\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"h3\", {\n className: \"walletconnect-modal__base__row__h3\"\n }, name), React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right__app-icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"img\", {\n src: CARET_SVG_URL,\n className: \"walletconnect-modal__base__row__right__caret\"\n })));\n}\n\nfunction WalletIcon(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n var fontSize = window.innerWidth < 768 ? ((name.length > 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\" 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n var _temp = _catch(function () {\n var url = props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl ? props.qrcodeModalOptions.registryUrl : browserUtils.getWalletRegistryUrl();\n return Promise.resolve(fetch(url).then(function (x) { return x.json(); })).then(function (registry) {\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n });\n }, function (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n });\n\n return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, qrcodeModalOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.importPublic = exports.privateToPublic = exports.privateToAddress = exports.publicToAddress = exports.pubToAddress = exports.isValidPublic = exports.isValidPrivate = exports.isPrecompiled = exports.generateAddress2 = exports.generateAddress = exports.isValidChecksumAddress = exports.toChecksumAddress = exports.isZeroAddress = exports.isValidAddress = exports.zeroAddress = void 0;\nvar assert = require('assert');\nvar ethjsUtil = require('ethjs-util');\nvar secp256k1 = require('./secp256k1v3-adapter');\nvar BN = require(\"bn.js\");\nvar bytes_1 = require(\"./bytes\");\nvar hash_1 = require(\"./hash\");\n/**\n * Returns a zero address.\n */\nexports.zeroAddress = function () {\n var addressLength = 20;\n var addr = bytes_1.zeros(addressLength);\n return bytes_1.bufferToHex(addr);\n};\n/**\n * Checks if the address is a valid. Accepts checksummed addresses too.\n */\nexports.isValidAddress = function (address) {\n return /^0x[0-9a-fA-F]{40}$/.test(address);\n};\n/**\n * Checks if a given address is a zero address.\n */\nexports.isZeroAddress = function (address) {\n var zeroAddr = exports.zeroAddress();\n return zeroAddr === bytes_1.addHexPrefix(address);\n};\n/**\n * Returns a checksummed address.\n *\n * If a eip1191ChainId is provided, the chainId will be included in the checksum calculation. This\n * has the effect of checksummed addresses for one chain having invalid checksums for others.\n * For more details, consult EIP-1191.\n *\n * WARNING: Checksums with and without the chainId will differ. As of 2019-06-26, the most commonly\n * used variation in Ethereum was without the chainId. This may change in the future.\n */\nexports.toChecksumAddress = function (address, eip1191ChainId) {\n address = ethjsUtil.stripHexPrefix(address).toLowerCase();\n var prefix = eip1191ChainId !== undefined ? eip1191ChainId.toString() + '0x' : '';\n var hash = hash_1.keccak(prefix + address).toString('hex');\n var ret = '0x';\n for (var i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) >= 8) {\n ret += address[i].toUpperCase();\n }\n else {\n ret += address[i];\n }\n }\n return ret;\n};\n/**\n * Checks if the address is a valid checksummed address.\n *\n * See toChecksumAddress' documentation for details about the eip1191ChainId parameter.\n */\nexports.isValidChecksumAddress = function (address, eip1191ChainId) {\n return exports.isValidAddress(address) && exports.toChecksumAddress(address, eip1191ChainId) === address;\n};\n/**\n * Generates an address of a newly created contract.\n * @param from The address which is creating this new address\n * @param nonce The nonce of the from account\n */\nexports.generateAddress = function (from, nonce) {\n from = bytes_1.toBuffer(from);\n var nonceBN = new BN(nonce);\n if (nonceBN.isZero()) {\n // in RLP we want to encode null in the case of zero nonce\n // read the RLP documentation for an answer if you dare\n return hash_1.rlphash([from, null]).slice(-20);\n }\n // Only take the lower 160bits of the hash\n return hash_1.rlphash([from, Buffer.from(nonceBN.toArray())]).slice(-20);\n};\n/**\n * Generates an address for a contract created using CREATE2.\n * @param from The address which is creating this new address\n * @param salt A salt\n * @param initCode The init code of the contract being created\n */\nexports.generateAddress2 = function (from, salt, initCode) {\n var fromBuf = bytes_1.toBuffer(from);\n var saltBuf = bytes_1.toBuffer(salt);\n var initCodeBuf = bytes_1.toBuffer(initCode);\n assert(fromBuf.length === 20);\n assert(saltBuf.length === 32);\n var address = hash_1.keccak256(Buffer.concat([Buffer.from('ff', 'hex'), fromBuf, saltBuf, hash_1.keccak256(initCodeBuf)]));\n return address.slice(-20);\n};\n/**\n * Returns true if the supplied address belongs to a precompiled account (Byzantium).\n */\nexports.isPrecompiled = function (address) {\n var a = bytes_1.unpad(address);\n return a.length === 1 && a[0] >= 1 && a[0] <= 8;\n};\n/**\n * Checks if the private key satisfies the rules of the curve secp256k1.\n */\nexports.isValidPrivate = function (privateKey) {\n return secp256k1.privateKeyVerify(privateKey);\n};\n/**\n * Checks if the public key satisfies the rules of the curve secp256k1\n * and the requirements of Ethereum.\n * @param publicKey The two points of an uncompressed key, unless sanitize is enabled\n * @param sanitize Accept public keys in other formats\n */\nexports.isValidPublic = function (publicKey, sanitize) {\n if (sanitize === void 0) { sanitize = false; }\n if (publicKey.length === 64) {\n // Convert to SEC1 for secp256k1\n return secp256k1.publicKeyVerify(Buffer.concat([Buffer.from([4]), publicKey]));\n }\n if (!sanitize) {\n return false;\n }\n return secp256k1.publicKeyVerify(publicKey);\n};\n/**\n * Returns the ethereum address of a given public key.\n * Accepts \"Ethereum public keys\" and SEC1 encoded keys.\n * @param pubKey The two points of an uncompressed key, unless sanitize is enabled\n * @param sanitize Accept public keys in other formats\n */\nexports.pubToAddress = function (pubKey, sanitize) {\n if (sanitize === void 0) { sanitize = false; }\n pubKey = bytes_1.toBuffer(pubKey);\n if (sanitize && pubKey.length !== 64) {\n pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(1);\n }\n assert(pubKey.length === 64);\n // Only take the lower 160bits of the hash\n return hash_1.keccak(pubKey).slice(-20);\n};\nexports.publicToAddress = exports.pubToAddress;\n/**\n * Returns the ethereum address of a given private key.\n * @param privateKey A private key must be 256 bits wide\n */\nexports.privateToAddress = function (privateKey) {\n return exports.publicToAddress(exports.privateToPublic(privateKey));\n};\n/**\n * Returns the ethereum public key of a given private key.\n * @param privateKey A private key must be 256 bits wide\n */\nexports.privateToPublic = function (privateKey) {\n privateKey = bytes_1.toBuffer(privateKey);\n // skip the type flag and use the X, Y points\n return secp256k1.publicKeyCreate(privateKey, false).slice(1);\n};\n/**\n * Converts a public key to the Ethereum format.\n */\nexports.importPublic = function (publicKey) {\n publicKey = bytes_1.toBuffer(publicKey);\n if (publicKey.length !== 64) {\n publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(1);\n }\n return publicKey;\n};\n//# sourceMappingURL=account.js.map","'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","exports.parse = require('./lib/parse');\nexports.stringify = require('./lib/stringify');\n","/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = /*@__PURE__*/ (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map\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 passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecdhUnsafe = exports.ecdh = exports.recover = exports.verify = exports.sign = exports.signatureImportLax = exports.signatureImport = exports.signatureExport = exports.signatureNormalize = exports.publicKeyCombine = exports.publicKeyTweakMul = exports.publicKeyTweakAdd = exports.publicKeyVerify = exports.publicKeyConvert = exports.publicKeyCreate = exports.privateKeyTweakMul = exports.privateKeyTweakAdd = exports.privateKeyModInverse = exports.privateKeyNegate = exports.privateKeyImport = exports.privateKeyExport = exports.privateKeyVerify = void 0;\nvar secp256k1 = require('ethereum-cryptography/secp256k1');\nvar secp256k1v3 = require('./secp256k1v3-lib/index');\nvar der = require('./secp256k1v3-lib/der');\n/**\n * Verify an ECDSA privateKey\n * @method privateKeyVerify\n * @param {Buffer} privateKey\n * @return {boolean}\n */\nexports.privateKeyVerify = function (privateKey) {\n // secp256k1 v4 version throws when privateKey length is not 32\n if (privateKey.length !== 32) {\n return false;\n }\n return secp256k1.privateKeyVerify(Uint8Array.from(privateKey));\n};\n/**\n * Export a privateKey in DER format\n * @method privateKeyExport\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {boolean}\n */\nexports.privateKeyExport = function (privateKey, compressed) {\n // secp256k1 v4 version throws when privateKey length is not 32\n if (privateKey.length !== 32) {\n throw new RangeError('private key length is invalid');\n }\n var publicKey = secp256k1v3.privateKeyExport(privateKey, compressed);\n return der.privateKeyExport(privateKey, publicKey, compressed);\n};\n/**\n * Import a privateKey in DER format\n * @method privateKeyImport\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.privateKeyImport = function (privateKey) {\n // privateKeyImport method is not part of secp256k1 v4 package\n // this implementation is based on v3\n privateKey = der.privateKeyImport(privateKey);\n if (privateKey !== null && privateKey.length === 32 && exports.privateKeyVerify(privateKey)) {\n return privateKey;\n }\n throw new Error(\"couldn't import from DER format\");\n};\n/**\n * Negate a privateKey by subtracting it from the order of the curve's base point\n * @method privateKeyNegate\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.privateKeyNegate = function (privateKey) {\n return Buffer.from(secp256k1.privateKeyNegate(Uint8Array.from(privateKey)));\n};\n/**\n * Compute the inverse of a privateKey (modulo the order of the curve's base point).\n * @method privateKeyModInverse\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.privateKeyModInverse = function (privateKey) {\n if (privateKey.length !== 32) {\n throw new Error('private key length is invalid');\n }\n return Buffer.from(secp256k1v3.privateKeyModInverse(Uint8Array.from(privateKey)));\n};\n/**\n * Tweak a privateKey by adding tweak to it.\n * @method privateKeyTweakAdd\n * @param {Buffer} privateKey\n * @param {Buffer} tweak\n * @return {Buffer}\n */\nexports.privateKeyTweakAdd = function (privateKey, tweak) {\n return Buffer.from(secp256k1.privateKeyTweakAdd(Uint8Array.from(privateKey), tweak));\n};\n/**\n * Tweak a privateKey by multiplying it by a tweak.\n * @method privateKeyTweakMul\n * @param {Buffer} privateKey\n * @param {Buffer} tweak\n * @return {Buffer}\n */\nexports.privateKeyTweakMul = function (privateKey, tweak) {\n return Buffer.from(secp256k1.privateKeyTweakMul(Uint8Array.from(privateKey), Uint8Array.from(tweak)));\n};\n/**\n * Compute the public key for a privateKey.\n * @method publicKeyCreate\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyCreate = function (privateKey, compressed) {\n return Buffer.from(secp256k1.publicKeyCreate(Uint8Array.from(privateKey), compressed));\n};\n/**\n * Convert a publicKey to compressed or uncompressed form.\n * @method publicKeyConvert\n * @param {Buffer} publicKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyConvert = function (publicKey, compressed) {\n return Buffer.from(secp256k1.publicKeyConvert(Uint8Array.from(publicKey), compressed));\n};\n/**\n * Verify an ECDSA publicKey.\n * @method publicKeyVerify\n * @param {Buffer} publicKey\n * @return {boolean}\n */\nexports.publicKeyVerify = function (publicKey) {\n // secp256k1 v4 version throws when publicKey length is not 33 or 65\n if (publicKey.length !== 33 && publicKey.length !== 65) {\n return false;\n }\n return secp256k1.publicKeyVerify(Uint8Array.from(publicKey));\n};\n/**\n * Tweak a publicKey by adding tweak times the generator to it.\n * @method publicKeyTweakAdd\n * @param {Buffer} publicKey\n * @param {Buffer} tweak\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {\n return Buffer.from(secp256k1.publicKeyTweakAdd(Uint8Array.from(publicKey), Uint8Array.from(tweak), compressed));\n};\n/**\n * Tweak a publicKey by multiplying it by a tweak value\n * @method publicKeyTweakMul\n * @param {Buffer} publicKey\n * @param {Buffer} tweak\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyTweakMul = function (publicKey, tweak, compressed) {\n return Buffer.from(secp256k1.publicKeyTweakMul(Uint8Array.from(publicKey), Uint8Array.from(tweak), compressed));\n};\n/**\n * Add a given publicKeys together.\n * @method publicKeyCombine\n * @param {Array} publicKeys\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyCombine = function (publicKeys, compressed) {\n var keys = [];\n publicKeys.forEach(function (publicKey) {\n keys.push(Uint8Array.from(publicKey));\n });\n return Buffer.from(secp256k1.publicKeyCombine(keys, compressed));\n};\n/**\n * Convert a signature to a normalized lower-S form.\n * @method signatureNormalize\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureNormalize = function (signature) {\n return Buffer.from(secp256k1.signatureNormalize(Uint8Array.from(signature)));\n};\n/**\n * Serialize an ECDSA signature in DER format.\n * @method signatureExport\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureExport = function (signature) {\n return Buffer.from(secp256k1.signatureExport(Uint8Array.from(signature)));\n};\n/**\n * Parse a DER ECDSA signature (follow by [BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)).\n * @method signatureImport\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureImport = function (signature) {\n return Buffer.from(secp256k1.signatureImport(Uint8Array.from(signature)));\n};\n/**\n * Parse a DER ECDSA signature (not follow by [BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)).\n * @method signatureImportLax\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureImportLax = function (signature) {\n // signatureImportLax method is not part of secp256k1 v4 package\n // this implementation is based on v3\n // ensure that signature is greater than 0\n if (signature.length === 0) {\n throw new RangeError('signature length is invalid');\n }\n var sigObj = der.signatureImportLax(signature);\n if (sigObj === null) {\n throw new Error(\"couldn't parse DER signature\");\n }\n return secp256k1v3.signatureImport(sigObj);\n};\n/**\n * Create an ECDSA signature. Always return low-S signature.\n * @method sign\n * @param {Buffer} message\n * @param {Buffer} privateKey\n * @param {Object} options\n * @return {Buffer}\n */\nexports.sign = function (message, privateKey, options) {\n if (options === null) {\n throw new TypeError('options should be an Object');\n }\n var signOptions = undefined;\n if (options) {\n signOptions = {};\n if (options.data === null) {\n // validate option.data length\n throw new TypeError('options.data should be a Buffer');\n }\n if (options.data) {\n if (options.data.length != 32) {\n throw new RangeError('options.data length is invalid');\n }\n signOptions.data = new Uint8Array(options.data);\n }\n if (options.noncefn === null) {\n throw new TypeError('options.noncefn should be a Function');\n }\n if (options.noncefn) {\n // convert option.noncefn function signature\n signOptions.noncefn = function (message, privateKey, algo, data, attempt) {\n var bufferAlgo = algo != null ? Buffer.from(algo) : null;\n var bufferData = data != null ? Buffer.from(data) : null;\n var buffer = Buffer.from('');\n if (options.noncefn) {\n buffer = options.noncefn(Buffer.from(message), Buffer.from(privateKey), bufferAlgo, bufferData, attempt);\n }\n return new Uint8Array(buffer);\n };\n }\n }\n var sig = secp256k1.ecdsaSign(Uint8Array.from(message), Uint8Array.from(privateKey), signOptions);\n return {\n signature: Buffer.from(sig.signature),\n recovery: sig.recid,\n };\n};\n/**\n * Verify an ECDSA signature.\n * @method verify\n * @param {Buffer} message\n * @param {Buffer} signature\n * @param {Buffer} publicKey\n * @return {boolean}\n */\nexports.verify = function (message, signature, publicKey) {\n return secp256k1.ecdsaVerify(Uint8Array.from(signature), Uint8Array.from(message), publicKey);\n};\n/**\n * Recover an ECDSA public key from a signature.\n * @method recover\n * @param {Buffer} message\n * @param {Buffer} signature\n * @param {Number} recid\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.recover = function (message, signature, recid, compressed) {\n return Buffer.from(secp256k1.ecdsaRecover(Uint8Array.from(signature), recid, Uint8Array.from(message), compressed));\n};\n/**\n * Compute an EC Diffie-Hellman secret and applied sha256 to compressed public key.\n * @method ecdh\n * @param {Buffer} publicKey\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.ecdh = function (publicKey, privateKey) {\n // note: secp256k1 v3 doesn't allow optional parameter\n return Buffer.from(secp256k1.ecdh(Uint8Array.from(publicKey), Uint8Array.from(privateKey), {}));\n};\nexports.ecdhUnsafe = function (publicKey, privateKey, compressed) {\n // ecdhUnsafe method is not part of secp256k1 v4 package\n // this implementation is based on v3\n // ensure valid publicKey length\n if (publicKey.length !== 33 && publicKey.length !== 65) {\n throw new RangeError('public key length is invalid');\n }\n // ensure valid privateKey length\n if (privateKey.length !== 32) {\n throw new RangeError('private key length is invalid');\n }\n return Buffer.from(secp256k1v3.ecdhUnsafe(Uint8Array.from(publicKey), Uint8Array.from(privateKey), compressed));\n};\n//# sourceMappingURL=secp256k1v3-adapter.js.map","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","import { extend, isArray, isMap, isIntegerKey, isSymbol, hasOwn, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nconst effectScopeStack = [];\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n this.active = true;\r\n this.effects = [];\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n try {\r\n this.on();\r\n return fn();\r\n }\r\n finally {\r\n this.off();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n on() {\r\n if (this.active) {\r\n effectScopeStack.push(this);\r\n activeEffectScope = this;\r\n }\r\n }\r\n off() {\r\n if (this.active) {\r\n effectScopeStack.pop();\r\n activeEffectScope = effectScopeStack[effectScopeStack.length - 1];\r\n }\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n this.effects.forEach(e => e.stop());\r\n this.cleanups.forEach(cleanup => cleanup());\r\n if (this.scopes) {\r\n this.scopes.forEach(e => e.stop(true));\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope) {\r\n scope = scope || activeEffectScope;\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nconst effectStack = [];\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n if (!effectStack.length || !effectStack.includes(this)) {\r\n try {\r\n effectStack.push((activeEffect = this));\r\n enableTracking();\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n resetTracking();\r\n effectStack.pop();\r\n const n = effectStack.length;\r\n activeEffect = n > 0 ? effectStack[n - 1] : undefined;\r\n }\r\n }\r\n }\r\n stop() {\r\n if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (!isTracking()) {\r\n return;\r\n }\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n}\r\nfunction isTracking() {\r\n return shouldTrack && activeEffect !== undefined;\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({\r\n effect: activeEffect\r\n }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n for (const effect of isArray(dep) ? dep : [...dep]) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only a whitelist of value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (isTracking()) {\r\n ref = toRaw(ref);\r\n if (!ref.dep) {\r\n ref.dep = createDep();\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep, {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return Boolean(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, reactive, shallowReactive, trigger, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, NO, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {\r\n continue;\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length ||\r\n pendingPreFlushCbs.length ||\r\n pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n // eslint-disable-next-line no-restricted-globals\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(options || {}, { flush: 'post' })\r\n : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(options || {}, { flush: 'sync' })\r\n : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(isReactive);\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => {\r\n if (!instance || instance.isMounted) {\r\n queuePreFlushCb(job);\r\n }\r\n else {\r\n // with 'pre' option, the first call must happen before\r\n // the component is mounted so it is called synchronously.\r\n job();\r\n }\r\n };\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' && mode !== 'out-in' && mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (isInSSRComponentSetup)) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense, true);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').includes(name);\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n return hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\nfunction createDuplicateChecker() {\r\n const cache = Object.create(null);\r\n return (type, key) => {\r\n if (cache[key]) {\r\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\r\n }\r\n else {\r\n cache[key] = type;\r\n }\r\n };\r\n}\r\nlet shouldCacheAccess = true;\r\nfunction applyOptions(instance) {\r\n const options = resolveMergedOptions(instance);\r\n const publicThis = instance.proxy;\r\n const ctx = instance.ctx;\r\n // do not cache property access on public proxy during state initialization\r\n shouldCacheAccess = false;\r\n // call beforeCreate first before accessing other options since\r\n // the hook may mutate resolved options (#2791)\r\n if (options.beforeCreate) {\r\n callHook(options.beforeCreate, instance, \"bc\" /* BEFORE_CREATE */);\r\n }\r\n const { \r\n // state\r\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \r\n // lifecycle\r\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \r\n // public API\r\n expose, inheritAttrs, \r\n // assets\r\n components, directives, filters } = options;\r\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const [propsOptions] = instance.propsOptions;\r\n if (propsOptions) {\r\n for (const key in propsOptions) {\r\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\r\n }\r\n }\r\n }\r\n // options initialization order (to be consistent with Vue 2):\r\n // - props (already done outside of this function)\r\n // - inject\r\n // - methods\r\n // - data (deferred since it relies on `this` access)\r\n // - computed\r\n // - watch (deferred since it relies on `this` access)\r\n if (injectOptions) {\r\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\r\n }\r\n if (methods) {\r\n for (const key in methods) {\r\n const methodHandler = methods[key];\r\n if (isFunction(methodHandler)) {\r\n // In dev mode, we use the `createRenderContext` function to define\r\n // methods to the proxy target, and those are read-only but\r\n // reconfigurable, so it needs to be redefined here\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n Object.defineProperty(ctx, key, {\r\n value: methodHandler.bind(publicThis),\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n });\r\n }\r\n else {\r\n ctx[key] = methodHandler.bind(publicThis);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\r\n `Did you reference the function correctly?`);\r\n }\r\n }\r\n }\r\n if (dataOptions) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\r\n warn(`The data option must be a function. ` +\r\n `Plain object usage is no longer supported.`);\r\n }\r\n const data = dataOptions.call(publicThis, publicThis);\r\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\r\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\r\n `intend to perform data fetching before component renders, use ` +\r\n `async setup() + .`);\r\n }\r\n if (!isObject(data)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\r\n }\r\n else {\r\n instance.data = reactive(data);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n for (const key in data) {\r\n checkDuplicateProperties(\"Data\" /* DATA */, key);\r\n // expose data on ctx during dev\r\n if (key[0] !== '$' && key[0] !== '_') {\r\n Object.defineProperty(ctx, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => data[key],\r\n set: NOOP\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state initialization complete at this point - start caching access\r\n shouldCacheAccess = true;\r\n if (computedOptions) {\r\n for (const key in computedOptions) {\r\n const opt = computedOptions[key];\r\n const get = isFunction(opt)\r\n ? opt.bind(publicThis, publicThis)\r\n : isFunction(opt.get)\r\n ? opt.get.bind(publicThis, publicThis)\r\n : NOOP;\r\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\r\n warn(`Computed property \"${key}\" has no getter.`);\r\n }\r\n const set = !isFunction(opt) && isFunction(opt.set)\r\n ? opt.set.bind(publicThis)\r\n : (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\r\n }\r\n : NOOP;\r\n const c = computed({\r\n get,\r\n set\r\n });\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => c.value,\r\n set: v => (c.value = v)\r\n });\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\r\n }\r\n }\r\n }\r\n if (watchOptions) {\r\n for (const key in watchOptions) {\r\n createWatcher(watchOptions[key], ctx, publicThis, key);\r\n }\r\n }\r\n if (provideOptions) {\r\n const provides = isFunction(provideOptions)\r\n ? provideOptions.call(publicThis)\r\n : provideOptions;\r\n Reflect.ownKeys(provides).forEach(key => {\r\n provide(key, provides[key]);\r\n });\r\n }\r\n if (created) {\r\n callHook(created, instance, \"c\" /* CREATED */);\r\n }\r\n function registerLifecycleHook(register, hook) {\r\n if (isArray(hook)) {\r\n hook.forEach(_hook => register(_hook.bind(publicThis)));\r\n }\r\n else if (hook) {\r\n register(hook.bind(publicThis));\r\n }\r\n }\r\n registerLifecycleHook(onBeforeMount, beforeMount);\r\n registerLifecycleHook(onMounted, mounted);\r\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\r\n registerLifecycleHook(onUpdated, updated);\r\n registerLifecycleHook(onActivated, activated);\r\n registerLifecycleHook(onDeactivated, deactivated);\r\n registerLifecycleHook(onErrorCaptured, errorCaptured);\r\n registerLifecycleHook(onRenderTracked, renderTracked);\r\n registerLifecycleHook(onRenderTriggered, renderTriggered);\r\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\r\n registerLifecycleHook(onUnmounted, unmounted);\r\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\r\n if (isArray(expose)) {\r\n if (expose.length) {\r\n const exposed = instance.exposed || (instance.exposed = {});\r\n expose.forEach(key => {\r\n Object.defineProperty(exposed, key, {\r\n get: () => publicThis[key],\r\n set: val => (publicThis[key] = val)\r\n });\r\n });\r\n }\r\n else if (!instance.exposed) {\r\n instance.exposed = {};\r\n }\r\n }\r\n // options that are handled when creating the instance but also need to be\r\n // applied from mixins\r\n if (render && instance.render === NOOP) {\r\n instance.render = render;\r\n }\r\n if (inheritAttrs != null) {\r\n instance.inheritAttrs = inheritAttrs;\r\n }\r\n // asset options.\r\n if (components)\r\n instance.components = components;\r\n if (directives)\r\n instance.directives = directives;\r\n}\r\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\r\n if (isArray(injectOptions)) {\r\n injectOptions = normalizeInject(injectOptions);\r\n }\r\n for (const key in injectOptions) {\r\n const opt = injectOptions[key];\r\n let injected;\r\n if (isObject(opt)) {\r\n if ('default' in opt) {\r\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\r\n }\r\n else {\r\n injected = inject(opt.from || key);\r\n }\r\n }\r\n else {\r\n injected = inject(opt);\r\n }\r\n if (isRef(injected)) {\r\n // TODO remove the check in 3.3\r\n if (unwrapRef) {\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => injected.value,\r\n set: v => (injected.value = v)\r\n });\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\r\n `and no longer needs \\`.value\\` in the next minor release. ` +\r\n `To opt-in to the new behavior now, ` +\r\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\r\n `temporary and will not be needed in the future.)`);\r\n }\r\n ctx[key] = injected;\r\n }\r\n }\r\n else {\r\n ctx[key] = injected;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\r\n }\r\n }\r\n}\r\nfunction callHook(hook, instance, type) {\r\n callWithAsyncErrorHandling(isArray(hook)\r\n ? hook.map(h => h.bind(instance.proxy))\r\n : hook.bind(instance.proxy), instance, type);\r\n}\r\nfunction createWatcher(raw, ctx, publicThis, key) {\r\n const getter = key.includes('.')\r\n ? createPathGetter(publicThis, key)\r\n : () => publicThis[key];\r\n if (isString(raw)) {\r\n const handler = ctx[raw];\r\n if (isFunction(handler)) {\r\n watch(getter, handler);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\r\n }\r\n }\r\n else if (isFunction(raw)) {\r\n watch(getter, raw.bind(publicThis));\r\n }\r\n else if (isObject(raw)) {\r\n if (isArray(raw)) {\r\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\r\n }\r\n else {\r\n const handler = isFunction(raw.handler)\r\n ? raw.handler.bind(publicThis)\r\n : ctx[raw.handler];\r\n if (isFunction(handler)) {\r\n watch(getter, handler, raw);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\r\n }\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch option: \"${key}\"`, raw);\r\n }\r\n}\r\n/**\r\n * Resolve merged options and cache it on the component.\r\n * This is done only once per-component since the merging does not involve\r\n * instances.\r\n */\r\nfunction resolveMergedOptions(instance) {\r\n const base = instance.type;\r\n const { mixins, extends: extendsOptions } = base;\r\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\r\n const cached = cache.get(base);\r\n let resolved;\r\n if (cached) {\r\n resolved = cached;\r\n }\r\n else if (!globalMixins.length && !mixins && !extendsOptions) {\r\n {\r\n resolved = base;\r\n }\r\n }\r\n else {\r\n resolved = {};\r\n if (globalMixins.length) {\r\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\r\n }\r\n mergeOptions(resolved, base, optionMergeStrategies);\r\n }\r\n cache.set(base, resolved);\r\n return resolved;\r\n}\r\nfunction mergeOptions(to, from, strats, asMixin = false) {\r\n const { mixins, extends: extendsOptions } = from;\r\n if (extendsOptions) {\r\n mergeOptions(to, extendsOptions, strats, true);\r\n }\r\n if (mixins) {\r\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\r\n }\r\n for (const key in from) {\r\n if (asMixin && key === 'expose') {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\r\n `It should only be declared in the base component itself.`);\r\n }\r\n else {\r\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\r\n to[key] = strat ? strat(to[key], from[key]) : from[key];\r\n }\r\n }\r\n return to;\r\n}\r\nconst internalOptionMergeStrats = {\r\n data: mergeDataFn,\r\n props: mergeObjectOptions,\r\n emits: mergeObjectOptions,\r\n // objects\r\n methods: mergeObjectOptions,\r\n computed: mergeObjectOptions,\r\n // lifecycle\r\n beforeCreate: mergeAsArray,\r\n created: mergeAsArray,\r\n beforeMount: mergeAsArray,\r\n mounted: mergeAsArray,\r\n beforeUpdate: mergeAsArray,\r\n updated: mergeAsArray,\r\n beforeDestroy: mergeAsArray,\r\n beforeUnmount: mergeAsArray,\r\n destroyed: mergeAsArray,\r\n unmounted: mergeAsArray,\r\n activated: mergeAsArray,\r\n deactivated: mergeAsArray,\r\n errorCaptured: mergeAsArray,\r\n serverPrefetch: mergeAsArray,\r\n // assets\r\n components: mergeObjectOptions,\r\n directives: mergeObjectOptions,\r\n // watch\r\n watch: mergeWatchOptions,\r\n // provide / inject\r\n provide: mergeDataFn,\r\n inject: mergeInject\r\n};\r\nfunction mergeDataFn(to, from) {\r\n if (!from) {\r\n return to;\r\n }\r\n if (!to) {\r\n return from;\r\n }\r\n return function mergedDataFn() {\r\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\r\n };\r\n}\r\nfunction mergeInject(to, from) {\r\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\r\n}\r\nfunction normalizeInject(raw) {\r\n if (isArray(raw)) {\r\n const res = {};\r\n for (let i = 0; i < raw.length; i++) {\r\n res[raw[i]] = raw[i];\r\n }\r\n return res;\r\n }\r\n return raw;\r\n}\r\nfunction mergeAsArray(to, from) {\r\n return to ? [...new Set([].concat(to, from))] : from;\r\n}\r\nfunction mergeObjectOptions(to, from) {\r\n return to ? extend(extend(Object.create(null), to), from) : from;\r\n}\r\nfunction mergeWatchOptions(to, from) {\r\n if (!to)\r\n return from;\r\n if (!from)\r\n return to;\r\n const merged = extend(Object.create(null), to);\r\n for (const key in from) {\r\n merged[key] = mergeAsArray(to[key], from[key]);\r\n }\r\n return merged;\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // ensure all declared prop keys are present\r\n for (const key in instance.propsOptions[0]) {\r\n if (!(key in props)) {\r\n props[key] = undefined;\r\n }\r\n }\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n let key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\r\n }\r\n }\r\n else {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n if (setFullProps(instance, rawProps, props, attrs)) {\r\n hasAttrsChanged = true;\r\n }\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps ||\r\n (!hasOwn(rawProps, key) &&\r\n (!false ))) {\r\n delete attrs[key];\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n if (hasAttrsChanged) {\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n let rawCastValues;\r\n if (rawProps) {\r\n for (let key in rawProps) {\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n const value = rawProps[key];\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\r\n props[camelKey] = value;\r\n }\r\n else {\r\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\r\n }\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n if (!(key in attrs) || value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n const castValues = rawCastValues || EMPTY_OBJ;\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\r\n }\r\n }\r\n return hasAttrsChanged;\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue.call(null, props);\r\n unsetCurrentInstance();\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (isAbsent && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.propsCache;\r\n const cached = cache.get(comp);\r\n if (cached) {\r\n return cached;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, EMPTY_ARR);\r\n return EMPTY_ARR;\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const res = [normalized, needCastKeys];\r\n cache.set(comp, res);\r\n return res;\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : ctor === null ? 'null' : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else if (expectedType === 'null') {\r\n valid = value === null;\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => {\r\n const normalized = withCtx((...args) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(...args));\r\n }, ctx);\r\n normalized._c = false;\r\n return normalized;\r\n};\r\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !(false )) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !isKeepAlive(instance.vnode) &&\r\n !(false )) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // users can get the shallow readonly version of the slots object through `this.$slots`,\r\n // we should avoid the proxy object polluting the slots of the internal instance\r\n instance.slots = toRaw(children);\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: undefined,\r\n warnHandler: undefined,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null),\r\n optionsCache: new WeakMap(),\r\n propsCache: new WeakMap(),\r\n emitsCache: new WeakMap()\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = vnode.component;\r\n devtoolsInitApp(app, version);\r\n }\r\n return getExposeProxy(vnode.component) || vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = null;\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\n/**\r\n * Function for handling a template ref\r\n */\r\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\r\n return;\r\n }\r\n if (isAsyncWrapper(vnode) && !isUnmount) {\r\n // when mounting async components, nothing needs to be done,\r\n // because the template ref is forwarded to inner component\r\n return;\r\n }\r\n const refValue = vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */\r\n ? getExposeProxy(vnode.component) || vnode.component.proxy\r\n : vnode.el;\r\n const value = isUnmount ? null : refValue;\r\n const { i: owner, r: ref } = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef.r;\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // dynamic ref changed. unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n setupState[oldRef] = null;\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isFunction(ref)) {\r\n callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);\r\n }\r\n else {\r\n const _isString = isString(ref);\r\n const _isRef = isRef(ref);\r\n if (_isString || _isRef) {\r\n const doSet = () => {\r\n if (rawRef.f) {\r\n const existing = _isString ? refs[ref] : ref.value;\r\n if (isUnmount) {\r\n isArray(existing) && remove(existing, refValue);\r\n }\r\n else {\r\n if (!isArray(existing)) {\r\n if (_isString) {\r\n refs[ref] = [refValue];\r\n }\r\n else {\r\n ref.value = [refValue];\r\n if (rawRef.k)\r\n refs[rawRef.k] = ref.value;\r\n }\r\n }\r\n else if (!existing.includes(refValue)) {\r\n existing.push(refValue);\r\n }\r\n }\r\n }\r\n else if (_isString) {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n ref.value = value;\r\n if (rawRef.k)\r\n refs[rawRef.k] = value;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\r\n }\r\n };\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\r\n }\r\n }\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if (!container.hasChildNodes()) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n flushPostFlushCbs();\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n // #3787\r\n // if component is async, it may get moved / unmounted before its\r\n // inner component is loaded, so we need to give it a placeholder\r\n // vnode that matches its adopted DOM.\r\n if (isAsyncWrapper(vnode)) {\r\n let subTree;\r\n if (isFragmentStart) {\r\n subTree = createVNode(Fragment);\r\n subTree.anchor = nextNode\r\n ? nextNode.previousSibling\r\n : container.lastChild;\r\n }\r\n else {\r\n subTree =\r\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\r\n }\r\n subTree.el = node;\r\n vnode.component.subTree = subTree;\r\n }\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\r\n // #4006 for form elements with non-string v-model value bindings\r\n // e.g.