{"version":3,"sources":["../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/inherits/inherits_browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/safe-buffer/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/buffer/index.js","../node_modules/axios/lib/utils.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/webpack/buildin/global.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/minimalistic-assert/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/utils.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/utils.js","../node_modules/debug/src/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/process/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/webpack/buildin/module.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/node_modules/bn.js/lib/bn.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/cipher-base/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/component-emitter/index.js","../node_modules/engine.io-parser/lib/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/randombytes/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/hash.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/create-hash/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/core-util-is/lib/util.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/buffer-xor/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/common.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/parseqs/index.js","../node_modules/component-inherit/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/readable-browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/process-nextick-args/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/aes.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/evp_bytestokey/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/curve/base.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/parse-asn1/index.js","../node_modules/socket.io-parser/index.js","../node_modules/isarray/index.js","../node_modules/engine.io-client/lib/transports/xmlhttprequest.browser.js","../node_modules/engine.io-client/lib/globalThis.browser.js","../node_modules/engine.io-client/lib/transport.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/md5.js/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/events/events.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/_stream_writable.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/string_decoder/lib/string_decoder.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/ripemd160/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/des.js/lib/des/cipher.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/brorand/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-sign/node_modules/safe-buffer/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-rsa/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/bn.js/lib/bn.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/curves.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/promise/lib/core.js","../node_modules/parseuri/index.js","../node_modules/socket.io-parser/is-buffer.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/isarray/index.js","../node_modules/socket.io-client/lib/manager.js","../node_modules/engine.io-client/lib/transports/index.js","../node_modules/engine.io-client/lib/transports/polling.js","../node_modules/has-binary2/index.js","../node_modules/yeast/index.js","../node_modules/indexof/index.js","../node_modules/socket.io-client/lib/socket.js","../node_modules/socket.io-client/lib/on.js","../node_modules/component-bind/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash-base/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/stream-browserify/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/_stream_readable.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/internal/streams/destroy.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/_stream_transform.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/sha256.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/sha512.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/create-hmac/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/create-hash/md5.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/pbkdf2/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/pbkdf2/lib/precondition.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/pbkdf2/lib/default-encoding.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/pbkdf2/lib/sync-browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/pbkdf2/lib/to-buffer.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/des.js/lib/des/utils.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/des.js/lib/des/des.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/ctr.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/incr32.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/authCipher.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/streamCipher.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/diffie-hellman/lib/generatePrime.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/miller-rabin/lib/mr.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/minimalistic-crypto-utils/lib/utils.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/curve/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha/common.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha/256.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha/512.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/base/buffer.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/constants/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/decoders/der.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/encoders/der.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/parse-asn1/node_modules/safe-buffer/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/mgf.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/xor.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/withPublic.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/socket.io-client/lib/index.js","../node_modules/url-parse/index.js","../node_modules/get-youtube-id/index.js","../node_modules/webfontloader/webfontloader.js","../node_modules/clipboard/dist/clipboard.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/config/polyfills.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/promise/lib/rejection-tracking.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asap/browser-raw.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/promise/lib/es6-extensions.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/whatwg-fetch/fetch.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/object-assign/index.js","../node_modules/socket.io-client/lib/url.js","../node_modules/debug/src/debug.js","../node_modules/ms/index.js","../node_modules/socket.io-parser/binary.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/base64-js/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/ieee754/index.js","../node_modules/engine.io-client/lib/index.js","../node_modules/engine.io-client/lib/socket.js","../node_modules/has-cors/index.js","../node_modules/engine.io-client/lib/transports/polling-xhr.js","../node_modules/engine.io-parser/lib/keys.js","../node_modules/arraybuffer.slice/index.js","../node_modules/after/index.js","../node_modules/engine.io-parser/lib/utf8.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/blob/index.js","../node_modules/engine.io-client/lib/transports/polling-jsonp.js","../node_modules/engine.io-client/lib/transports/websocket.js","../node_modules/to-array/index.js","../node_modules/backo2/index.js","../node_modules/requires-port/index.js","../node_modules/querystringify/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/crypto-browserify/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/internal/streams/BufferList.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/timers-browserify/main.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/setimmediate/setImmediate.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/util-deprecate/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/lib/_stream_passthrough.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/writable-browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/duplex-browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/transform.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/readable-stream/passthrough.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/sha.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/sha1.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/sha224.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/sha.js/sha384.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/cipher-base/node_modules/safe-buffer/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/create-hmac/legacy.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-sign/algos.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/pbkdf2/lib/async.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-cipher/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-des/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/des.js/lib/des.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/des.js/lib/des/cbc.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/des.js/lib/des/ede.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/encrypter.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/ecb.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/cbc.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/cfb.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/cfb8.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/cfb1.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/modes/ofb.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/ghash.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-aes/decrypter.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-des/modes.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/diffie-hellman/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/diffie-hellman/lib/dh.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-sign/browser/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-sign/browser/sign.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-rsa/node_modules/safe-buffer/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/curve/short.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/curve/mont.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/curve/edwards.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha/1.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha/224.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/sha/384.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/ripemd.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hash.js/lib/hash/hmac.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/ec/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/hmac-drbg/lib/hmac-drbg.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/ec/key.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/ec/signature.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/eddsa/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/eddsa/key.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/parse-asn1/asn1.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/api.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/vm-browserify/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/base/reporter.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/base/node.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/constants/der.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/decoders/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/decoders/pem.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/encoders/index.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/asn1.js/lib/asn1/encoders/pem.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/parse-asn1/certificate.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/parse-asn1/fixProc.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/browserify-sign/browser/verify.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/create-ecdh/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/browser.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/publicEncrypt.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/public-encrypt/privateDecrypt.js","../../../../_tool/node/14.17.0/x64/node_modules/create-elm-app/node_modules/randomfill/browser.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/material-components-web-elm/dist/material-components-web-elm.js"],"names":["module","exports","Object","create","ctor","superCtor","super_","prototype","constructor","value","enumerable","writable","configurable","TempCtor","buffer","require","Buffer","copyProps","src","dst","key","SafeBuffer","arg","encodingOrOffset","length","from","alloc","allocUnsafe","allocUnsafeSlow","TypeError","size","fill","encoding","buf","undefined","SlowBuffer","global","base64","ieee754","isArray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","this","Error","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","isEncoding","actual","write","slice","fromString","obj","isBuffer","len","checked","copy","val","type","data","fromObject","assertSize","i","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","swap","b","n","m","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","call","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","utf16leToBytes","base64Slice","start","end","fromByteArray","utf8Slice","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","INSPECT_MAX_BYTES","foo","subarray","e","typedArraySupport","poolSize","_augment","Symbol","species","defineProperty","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","hexSlice","asciiSlice","latin1Slice","utf16leSlice","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","_typeof","o","iterator","bind","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","forEach","fn","l","hasOwnProperty","isArrayBuffer","isFormData","FormData","isArrayBufferView","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","extend","thisArg","stripBOM","content","g","Function","assert","msg","equal","r","utils","BN","minAssert","minUtils","toArray","zero2","toHex","encode","getNAF","num","w","bits","naf","bitLength","ws","k","clone","z","mod","andln","isOdd","isubn","iushrn","getJSF","k1","k2","jsf","m8","d1","d2","cmpn","u1","u2","m14","m24","cachedProperty","name","computer","parseBytes","intFromLE","inherits","isSurrogatePair","htonl","word","zero8","enc","p","toHex32","endian","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","d","sum32_5","sum64","ah","al","lo","sum64_hi","bh","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","carry","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","load","storage","debug","process","DEBUG","log","console","formatArgs","args","useColors","namespace","humanize","diff","color","splice","index","lastC","save","namespaces","removeItem","userAgent","documentElement","style","WebkitAppearance","firebug","exception","table","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","v","JSON","stringify","err","message","enable","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","webpackPolyfill","deprecate","paths","children","get","number","base","isBN","negative","words","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","strip","limbLen","limbPow","total","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","self","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","toBuffer","toArrayLike","ArrayType","reqLength","q","_countBits","clz32","t","_zeroBits","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","s","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","isEven","yp","xp","im","jm","gcd","_invmp","x1","x2","delta","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","u","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","_final","__final","_decoder","_encoding","useUint8Array","useArrayBuffer","update","inputEnc","outputEnc","bufferData","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_flush","done","fin","pna","objectKeys","keys","Duplex","util","Readable","Writable","method","options","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","cb","Emitter","mixin","addEventListener","event","_callbacks","removeEventListener","callbacks","hasListeners","base64encoder","hasBinary","sliceBuffer","after","utf8","isAndroid","test","isPhantomJS","dontSendBlobs","protocol","packets","open","close","ping","pong","upgrade","packetslist","Blob","map","ary","each","eachWithIndex","error","encodePacket","packet","supportsBinary","utf8encode","callback","encodeBase64Packet","contentArray","resultBuffer","encodeArrayBuffer","fr","FileReader","onload","readAsArrayBuffer","encodeBlobAsArrayBuffer","encodeBlob","encodeBase64Object","encoded","strict","b64data","b64","readAsDataURL","typed","basic","btoa","decodePacket","binaryType","utf8decode","charAt","decodeBase64Packet","decode","tryDecode","substring","rest","encodePayload","isBinary","encodePayloadAsBlob","encodePayloadAsArrayBuffer","doneCallback","setLengthHeader","results","decodePayload","decodePayloadAsBinary","chr","encodedPackets","totalLength","reduce","resultArray","bufferIndex","ab","view","lenStr","binaryIdentifier","lengthAry","blob","bufferTail","buffers","tailArray","msgLength","crypto","msCrypto","getRandomValues","generated","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","block","accum","assigned","remainder","digest","rem","lowBits","hash","_hash","MD5","RIPEMD160","sha","Base","alg","objectToString","isBoolean","isNull","isNullOrUndefined","isSymbol","isRegExp","isError","isPrimitive","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","asn1","bignum","define","constants","decoders","encoders","Reporter","DecoderBuffer","EncoderBuffer","Node","encodeURIComponent","qs","qry","pairs","pair","decodeURIComponent","Stream","PassThrough","arg1","arg2","arg3","asUInt32Array","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_key","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","password","salt","keyBits","ivLen","keyLen","iv","used","ivStart","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","step","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","tag","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","decrypt","kde","kdeparams","iters","algo","cipher","cipherText","keylen","pbkdf2Sync","createDecipheriv","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","signature","binary","isBuf","Encoder","types","CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK","Decoder","ERROR_PACKET","encodeAsString","attachments","nsp","id","payload","tryStringify","reconstructor","BinaryReconstructor","reconPack","removeBlobs","bloblessData","deconstruction","deconstructPacket","pack","unshift","encodeAsBinary","parse","tryParse","isPayloadValid","decodeString","takeBinaryData","destroy","finishedReconstruction","binData","reconstructPacket","hasCORS","globalThis","opts","xdomain","xscheme","enablesXDR","XMLHttpRequest","XDomainRequest","parser","Transport","path","hostname","port","secure","query","timestampParam","timestampRequests","readyState","agent","socket","withCredentials","pfx","cert","ca","rejectUnauthorized","forceNode","isReactNative","extraHeaders","localAddress","onError","desc","description","doOpen","doClose","onClose","send","onOpen","onData","onPacket","HashBase","ARRAY16","_a","_b","_c","_d","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","Number","EventEmitter","init","emitter","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","newListener","warned","count","warn","_onceWrap","state","fired","wrapFn","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","flags","wrapListener","setMaxListeners","getMaxListeners","doError","er","context","handler","position","originalListener","pop","spliceOne","rawListeners","eventNames","setImmediate","CorkedRequest","_this","entry","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","asyncWrite","WritableState","realHasInstance","internalUtil","OurUint8Array","destroyImpl","nop","stream","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","finalCalled","needDrain","ending","finished","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","doWrite","chunk","onwriteDrain","holder","allBuffers","callFinal","need","prefinish","getBuffer","hasInstance","object","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","zl","zr","sl","sr","hl","hr","_e","fn1","fn2","fn3","fn4","fn5","ar","br","cr","dr","tl","tr","Algorithm","sha1","sha224","sha256","sha384","sha512","Cipher","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","first","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","createCipher","createCipheriv","Cipheriv","createDecipher","Decipher","Decipheriv","listCiphers","getCiphers","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","Rand","rand","generate","_rand","getBytes","getByte","randomBytes","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","move","_move","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","elliptic","curves","ec","eddsa","pre","PresetCurve","edwards","isInfinity","defineCurve","lambda","basis","common","ripemd","hmac","ripemd160","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","adapter","defaults","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","transformRequest","rawValue","stringifySafely","transformResponse","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","Accept","asap","LAST_ERROR","IS_ERROR","_U","_V","_W","_X","doResolve","handle","deferred","_Y","onFulfilled","onRejected","ex","tryCallOne","promise","handleResolved","newValue","then","getThen","finale","_Z","Handler","reason","tryCallTwo","_0","safeThen","parts","names","exec","uri","source","host","authority","ipv6uri","pathNames","queryKey","$0","$2","withNativeBuffer","withNativeArrayBuffer","eio","Socket","Backoff","has","Manager","nsps","subs","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","jitter","connecting","lastPing","packetBuffer","_parser","encoder","decoder","autoConnect","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","connect","skipReconnect","openSub","onopen","errorSub","cleanup","timer","onping","Date","onpong","ondata","ondecoded","onerror","onConnecting","processPacketQueue","subsLength","disconnect","reset","onclose","delay","duration","onreconnect","attempt","XHR","JSONP","websocket","polling","xd","xs","jsonp","location","isSSL","forceJSONP","parseqs","inherit","yeast","Polling","hasXHR2","forceBase64","poll","pause","onPause","doPoll","callbackfn","schema","sid","withNativeBlob","withNativeFile","File","alphabet","seed","now","decoded","hasBin","connect_error","connect_timeout","reconnect_attempt","reconnect_failed","reconnect_error","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","subEvents","ev","compress","onpacket","onconnect","onevent","onack","ondisconnect","ack","sent","emitBuffered","_finalized","prefix","throwIfNotStringOrBuffer","EE","ondrain","resume","_isStdio","didOnEnd","ReadableState","EElistenerCount","debugUtil","debuglog","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","MAX_HWM","howMuchToRead","head","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","clear","endReadable","endReadableNT","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","cleanedUp","pipeOnDrain","increasedAwaitDrain","dests","wrap","paused","_fromList","emitErrorNT","_transformState","afterTransform","ts","transforming","writechunk","rs","needTransform","writeencoding","flush","_this2","err2","K","W","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","f","T1","T2","H","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","pbkdf2","iterations","checkParameters","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","T","U","thing","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","padSplit","group","DES","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","pad","lStart","rStart","keyL","keyR","incr32","getBlock","_cipher","_prev","encrypt","chunkNum","_cache","item","aes","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","gen","n2","bn","brorand","MillerRabin","_randbelow","min_bytes","_randrange","stop","rone","n1","rn1","getDivisor","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","SHA256","sha512_K","SHA512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","reporter","restore","isEmpty","fail","skip","_reporterState","raw","_reverse","der","DERDecoder","entity","tree","DERNode","body","parent","derDecodeTag","cls","tagClass","primitive","oct","tagStr","derDecodeLen","_decode","_peekTag","any","decodedTag","_decodeTag","_skipUntilEnd","_decodeList","possibleEnd","_decodeStr","unused","numstr","_isNumstr","printstr","_isPrintstr","_decodeObjid","values","relative","identifiers","ident","subident","_decodeTime","year","mon","day","hour","sec","UTC","_decodeNull","_decodeBool","_decodeInt","_use","_getDecoder","DEREncoder","_encodeComposite","header","encodedTag","tagByName","tagClassByName","encodeTag","_createEncoderBuffer","lenOctets","_encodeStr","_encodeObjid","objid","_encodeTime","time","date","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_encodeNull","_encodeInt","numArray","sign","_encodeBool","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","createHash","i2ops","paddedMsg","url","paramsSerializer","serializedParams","toISOString","hashmarkIndex","config","request","response","isAxiosError","fileName","lineNumber","columnNumber","stack","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","Authorization","username","unescape","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","toUpperCase","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","xsrfValue","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","cancel","abort","__CANCEL__","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","prop","axiosKeys","otherKeys","filter","Cancel","lookup","cache","managers","forceNew","multiplex","required","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","NaN","ignore","lolcation","loc","globalVar","finaldestination","Url","pathname","href","scheme","extractProtocol","forwardSlashes","otherSlashes","slashesCount","extracted","instruction","instructions","up","origin","part","char","ins","factory","fuzzy","patterns","tokens","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","__webpack_require__","aa","ba","da","FontFace","createElement","cssText","setAttribute","appendChild","createTextNode","getElementsByTagName","insertBefore","lastChild","parentNode","removeChild","className","rel","media","tagName","E","F","J","ga","L","aria-hidden","O","P","Q","fonts","fa","race","S","la","V","serif","offsetWidth","ma","X","na","oa","qa","xa","vendor","ra","sa","classes","ia","ka","pa","projectId","api","fontfamily","fontStyle","fontWeight","urls","families","testStrings","za","latin","latin-ext","cyrillic","greek","khmer","Hanuman","Aa","thin","extralight","extra-light","ultralight","ultra-light","light","regular","book","medium","semi-bold","semibold","demi-bold","demibold","bold","extra-bold","extrabold","ultra-bold","ultrabold","black","heavy","Ba","italic","normal","Ca","Ea","Fa","Arimo","Cousine","Tinos","Ga","Ha","va","Da","wa","Typekit","async","__webfontfontdeckmodule__","weight","ea","Y","custom","fontdeck","monotype","typekit","google","Z","__webpack_modules__","686","__unused_webpack_module","__webpack_exports__","default","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","execCommand","actions_cut","selectedText","fakeCopyAction","fakeElement","isRTL","getAttribute","fontSize","border","margin","yPosition","pageYOffset","scrollTop","top","createFakeElement","container","remove","actions_copy","HTMLInputElement","clipboard_typeof","_defineProperties","props","descriptor","_setPrototypeOf","setPrototypeOf","_getPrototypeOf","getAttributeValue","suffix","element","attribute","hasAttribute","subClass","superClass","_inherits","Clipboard","Constructor","protoProps","staticProps","Derived","hasNativeReflectConstruct","_super","construct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","ReferenceError","_assertThisInitialized","trigger","instance","_classCallCheck","resolveOptions","listenClick","action","support","queryCommandSupported","defaultAction","defaultTarget","defaultText","onClick","delegateTarget","currentTarget","_options$action","nodeType","actions_default","clearSelection","focus","getSelection","removeAllRanges","selector","querySelector","828","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","438","__unused_webpack_exports","closest","_delegate","useCapture","listenerFn","elements","querySelectorAll","879","node","HTMLElement","nodeList","370","is","delegate","listenNode","listenNodeList","listenSelector","817","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","279","evtArr","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","__esModule","definition","_typeof2","assign","DEFAULT_WHITELIST","enabled","disable","matchWhitelist","some","displayId","rejections","_1","logged","onHandled","onUnhandled","allRejections","whitelist","line","logError","rawAsap","task","requestFlush","capacity","currentIndex","scan","newLength","toggle","observer","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","timeoutHandle","handleTimer","intervalHandle","setInterval","clearInterval","observe","characterData","TRUE","valuePromise","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","iterableToArray","iterable","all","searchParams","formData","arrayBuffer","viewClasses","normalizeName","normalizeValue","iteratorFor","items","Headers","append","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","DataView","_bodyArrayBuffer","rejected","readAsText","chars","readArrayBufferAsText","oldValue","entries","methods","Request","upcased","credentials","signal","referrer","reParamSearch","getTime","form","Response","bodyInit","ok","redirectStatuses","redirect","DOMException","fetch","aborted","xhr","abortXhr","rawHeaders","fixUrl","polyfill","propIsEnumerable","propertyIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","to","toObject","parseuri","createDebug","prevTime","curr","coerce","format","formatter","selectColor","instances","skips","plural","ms","parseFloat","fmtShort","_deconstructPacket","placeholder","_placeholder","newData","_reconstructPacket","pendingBlobs","_removeBlobs","curKey","containingObject","fileReader","lens","getLens","placeHoldersLen","validLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","onlyBinaryUpgrades","perMessageDeflate","threshold","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","priorWebsocketSuccess","createTransport","EIO","transport","requestTimeout","protocols","setTransport","onDrain","probe","failed","onTransportOpen","upgrading","freezeTransport","onTransportClose","onupgrade","onHandshake","setPing","filterUpgrades","onHeartbeat","sendPacket","waitForUpgrade","cleanupAndClose","filteredUpgrades","empty","unloadHandler","requests","req","sendXhr","pollXhr","setDisableHeaderCheck","hasXDR","onLoad","contentType","getResponseHeader","requestsCount","onSuccess","fromError","attachEvent","arraybuffer","abv","ii","err_cb","bail","proxy","byteCount","byteIndex","stringFromCharCode","ucs2decode","extra","counter","checkScalarValue","createByte","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","byteString","ucs2encode","encoded1","encoded2","encoded3","encoded4","bufferLength","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","blobSupportsArrayBufferView","blobBuilderSupported","getBlob","mapArrayBufferViews","BlobBuilderConstructor","bb","BlobConstructor","JSONPPolling","rNewline","rEscapedNewline","___eio","script","iframe","insertAt","area","iframeId","complete","initIframe","submit","BrowserWebSocket","NodeWebSocket","WebSocket","MozWebSocket","WebSocketImpl","WS","usingBrowserWebSocket","check","supports","addEventListeners","onmessage","factor","random","deviation","undef","rng","pseudoRandomBytes","prng","createHmac","algos","hashes","getHashes","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","DH_CHECK_P_NOT_SAFE_PRIME","DH_CHECK_P_NOT_PRIME","DH_UNABLE_TO_CHECK_GENERATOR","DH_NOT_SUITABLE_GENERATOR","NPN_ENABLED","ALPN_ENABLED","RSA_PKCS1_PADDING","RSA_SSLV23_PADDING","RSA_NO_PADDING","RSA_PKCS1_OAEP_PADDING","RSA_X931_PADDING","RSA_PKCS1_PSS_PADDING","POINT_CONVERSION_COMPRESSED","POINT_CONVERSION_UNCOMPRESSED","POINT_CONVERSION_HYBRID","Timeout","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","MessageChannel","port1","port2","trace","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","ZERO_BUF","subtle","toBrowser","sha-1","sha-256","sha-384","sha-512","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","aesModes","desModes","ebtk","suite","des","des-ede3-cbc","instantiate","EDE","des-ede3","des-ede-cbc","des-ede","des-cbc","des-ecb","modeName","_des","des3","_cbcInit","_cbcState","superProto","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","_last","padded","unpad","autoPadding","generatePrime","DH","ENCODINGS","hex","generator","genc","SEVEN","setPublicKey","pub","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","other","secret","getPrime","front","getPrivateKey","getGenerator","verify","algorithms","_hashType","_tag","_signType","sig","sigBuffer","EC","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","keyFromPrivate","toDER","ecSign","dsaSign","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","xc","MontCurve","i4","a24","normalize","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","sha1_K","SHA1","SHA224","SHA384","Kh","Ah","Bh","Dh","Eh","rh","sh","inner","outer","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","nonce","ns2","_truncateToN","truncOnly","msgBitLength","bkey","getPrivate","ns1","iter","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","kmac","reseed","addEnc","temp","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","getLength","initial","place","octetLen","rmPadding","constructLength","octets","slen","backHalf","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","seq","AlgorithmIdentifier","null_","optional","use","bitstr","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","choice","namedCurve","explicit","Entity","_createNamed","named","runInThisContext","_initNamed","Object_keys","defineProp","globals","Context","Script","runInContext","display","win","contentWindow","wEval","eval","wExecScript","execScript","winKeys","runInNewContext","createContext","isContext","createScript","errors","ReporterError","rethrow","pathLen","enterKey","exitKey","leaveKey","enterObject","leaveObject","inherited","elem","partial","wrapResult","captureStackTrace","tags","reverseArgs","useDecoder","implicit","contains","_wrap","stateProps","cstate","child","_useArgs","def","newKey","prevObj","present","prevKey","_decodeGeneric","_decodeChoice","track","_getUse","_encodeChoice","_encodePrimitive","0","1","2","3","4","5","6","7","8","9","10","11","12","13","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","pem","PEMDecoder","lines","label","PEMEncoder","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","mgf","withPublic","publicKey","reverse","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","cur","nonZero","pkcs1","zBuffer","db","dif","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","uint","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","responseInterceptorChain","chain","newConfig","getUri","handlers","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","expires","domain","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","search","requestURL","pkg","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","allowUnknown","executor","token","modules","installedModules","toStringTag","ns","property","./packages/material-components-web/index.ts","./packages/material-components-web/native-shim.es5.js","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","./packages/material-components-web/node_modules/@webcomponents/custom-elements/custom-elements.min.js","Document","createElementNS","importNode","DocumentFragment","cloneNode","replaceChild","getOwnPropertyDescriptor","attachShadow","getAttributeNS","setAttributeNS","removeAttributeNS","insertAdjacentElement","insertAdjacentHTML","ha","before","ja","replaceWith","Set","isConnected","__CE_isImportDocument","ShadowRoot","firstChild","nextSibling","ELEMENT_NODE","noDocumentConstructionObserver","shadyDomFastWalk","ShadyDom","inUse","nativeMethods","localName","__CE_shadowRoot","__CE_patched","__CE_state","connectedCallback","disconnectedCallback","__CE_registry","__CE_documentLoadHandled","ownerDocument","defaultView","constructionStack","constructorFunction","__CE_definition","attributeChangedCallback","hasAttributes","observedAttributes","ua","namespaceURI","HTMLUnknownElement","sourceURL","ErrorEvent","initErrorEvent","cancelable","filename","lineno","colno","column","createEvent","preventDefault","dispatchEvent","defaultPrevented","childList","subtree","Map","ya","SyntaxError","adoptedCallback","addedNodes","whenDefined","CustomElementRegistry","polyfillDefineLazy","TEXT_NODE","childNodes","COMMENT_NODE","textContent","previousSibling","ta","innerHTML","forcePolyfill","__CE_installPolyfill","./packages/mdc-animation/util.ts","cssPropertyNameMap","animation","prefixed","standard","transition","jsEventTypeMap","animationend","cssProperty","animationiteration","animationstart","transitionend","isWindow","windowObj","getCorrectPropertyName","getCorrectEventName","eventType","./packages/mdc-base/component.ts","__read","__spread","foundation_1","MDCComponent","root","foundation","_i","root_","initialize","foundation_","getDefaultFoundation","initialSyncWithDOM","MDCFoundation","_args","evtType","unlisten","evtData","shouldBubble","evt","CustomEvent","bubbles","detail","initCustomEvent","./packages/mdc-base/foundation.ts","adapter_","./packages/mdc-button/custom-element.js","_material_ripple_component__WEBPACK_IMPORTED_MODULE_0__","_material_utils_className__WEBPACK_IMPORTED_MODULE_1__","_createClass","defineProperties","MdcButton","_possibleConstructorReturn","ripple_","./packages/mdc-card/custom-element.js","MdcCard","primaryAction_","blur","primaryActionElement","./packages/mdc-checkbox/component.ts","_extendStatics","__extends","__","__assign","util_1","component_1","events_1","ponyfill_1","component_2","constants_1","foundation_2","CB_PROTO_PROPS","MDCCheckbox","createRipple_","nativeControl_","indeterminate","disabled","setDisabled","DATA_INDETERMINATE_ATTR","strings","handleAnimationEnd_","handleAnimationEnd","installPropertyChangeHooks_","uninstallPropertyChangeHooks_","MDCCheckboxFoundation","addClass","classList","forceLayout","hasNativeControl","isAttachedToDOM","isChecked","isIndeterminate","removeClass","removeNativeControlAttr","attr","setNativeControlAttr","setNativeControlDisabled","MDCRipple","createAdapter","deregisterInteractionHandler","applyPassive","isSurfaceActive","isUnbounded","registerInteractionHandler","MDCRippleFoundation","nativeCb","cbProto","controlState","validDescriptor","handleChange","NATIVE_CONTROL_SELECTOR","inputPropDesc","./packages/mdc-checkbox/constants.ts","cssClasses","ANIM_CHECKED_INDETERMINATE","ANIM_CHECKED_UNCHECKED","ANIM_INDETERMINATE_CHECKED","ANIM_INDETERMINATE_UNCHECKED","ANIM_UNCHECKED_CHECKED","ANIM_UNCHECKED_INDETERMINATE","BACKGROUND","CHECKED","CHECKMARK","CHECKMARK_PATH","DISABLED","INDETERMINATE","MIXEDMARK","NATIVE_CONTROL","ROOT","SELECTED","UPGRADED","ARIA_CHECKED_ATTR","ARIA_CHECKED_INDETERMINATE_VALUE","TRANSITION_STATE_CHECKED","TRANSITION_STATE_INDETERMINATE","TRANSITION_STATE_INIT","TRANSITION_STATE_UNCHECKED","numbers","ANIM_END_LATCH_MS","./packages/mdc-checkbox/custom-element.js","_component__WEBPACK_IMPORTED_MODULE_0__","MdcCheckbox","checked_","indeterminate_","disabled_","checkbox_","./packages/mdc-checkbox/foundation.ts","defaultAdapter","currentCheckState_","currentAnimationClass_","animEndLatchTimer_","enableAnimationEndHandler_","determineCheckState_","updateAriaChecked_","transitionCheckState_","oldState","newState","getTransitionAnimationClass_","./packages/mdc-chips/chip-set/component.ts","announce_1","MDCChipFoundation","INTERACTION_EVENT","SELECTION_EVENT","REMOVAL_EVENT","NAVIGATION_EVENT","MDCChipSet","chips_","getSelectedChipIds","chipFactory_","chip_","chip","selected","handleChipInteraction_","handleChipInteraction","handleChipSelection_","handleChipSelection","handleChipRemoval_","handleChipRemoval","handleChipNavigation_","handleChipNavigation","addChip","chipEl","makePrimaryActionFocusable","MDCChipSetFoundation","announceMessage","announce","focusChipPrimaryActionAtIndex","focusPrimaryAction","focusChipTrailingActionAtIndex","focusTrailingAction","getChipListCount","getIndexOfChipById","chipId","findChipIndex_","hasClass","getComputedStyle","getPropertyValue","removeChipAtIndex","isPrimaryActionFocusable","removeFocusFromChipAtIndex","removeFocus","selectChipAtIndex","shouldNotifyClients","setSelectedFromChipSet","./packages/mdc-chips/chip-set/constants.ts","CHIP_SELECTOR","CHOICE","FILTER","./packages/mdc-chips/chip-set/custom-element.js","MdcChipSet","selectedChip","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","chipset_","chips","activeElement","./packages/mdc-chips/chip-set/foundation.ts","constants_2","selectedChipIds_","select_","removeFocusFromChipsExcept_","shouldIgnore","chipIsSelected","deselect_","removedAnnouncement","deselectAndNotifyClients_","maxIndex","nextIndex","navigationKeys","ARROW_RIGHT_KEY","IE_ARROW_RIGHT_KEY","ARROW_LEFT_KEY","IE_ARROW_LEFT_KEY","ARROW_DOWN_KEY","IE_ARROW_DOWN_KEY","HOME_KEY","END_KEY","focusChipAction_","shouldJumpChips","jumpChipKeys","EventSource","PRIMARY","TRAILING","getDirection_","Direction","LEFT","RIGHT","chipIndex","chipCount","previouslySelectedIndex","./packages/mdc-chips/chip/component.ts","INTERACTION_EVENTS","MDCChip","isSelected","setSelected","getShouldRemoveOnTrailingIconClick","shouldRemove","setShouldRemoveOnTrailingIconClick","rippleFactory","leadingIcon_","LEADING_ICON_SELECTOR","trailingIcon_","TRAILING_ICON_SELECTOR","checkmark_","CHECKMARK_SELECTOR","PRIMARY_ACTION_SELECTOR","trailingAction_","TRAILING_ACTION_SELECTOR","rippleAdapter","computeBoundingRect","getDimensions","handleInteraction_","handleInteraction","handleTransitionEnd_","handleTransitionEnd","handleTrailingIconInteraction_","handleTrailingIconInteraction","handleKeydown_","handleKeydown","handleFocusIn_","handleFocusIn","handleFocusOut_","handleFocusOut","beginExit","addClassToLeadingIcon","eventTargetHasClass","getCheckmarkBoundingClientRect","getBoundingClientRect","getComputedStyleValue","propertyName","getRootBoundingClientRect","hasLeadingIcon","hasTrailingAction","notifyInteraction","notifyNavigation","notifyRemoval","notifySelection","notifyTrailingIconInteraction","TRAILING_ICON_INTERACTION_EVENT","removeClassFromLeadingIcon","setPrimaryActionAttr","setStyleProperty","setProperty","setTrailingActionAttr","./packages/mdc-chips/chip/constants.ts","ADDED_ANNOUNCEMENT_ATTRIBUTE","ARIA_CHECKED","ARROW_UP_KEY","BACKSPACE_KEY","DELETE_KEY","ENTER_KEY","ENTRY_ANIMATION_NAME","IE_ARROW_UP_KEY","IE_DELETE_KEY","REMOVED_ANNOUNCEMENT_ATTRIBUTE","SPACEBAR_KEY","TAB_INDEX","CHIP_EXIT","DELETABLE","HIDDEN_LEADING_ICON","LEADING_ICON","PRIMARY_ACTION","PRIMARY_ACTION_FOCUSED","TEXT","TRAILING_ACTION","TRAILING_ICON","./packages/mdc-chips/chip/custom-element.js","idCounter","MdcChip","selected_","id_","parentElement","./packages/mdc-chips/chip/foundation.ts","emptyClientRect","bottom","height","shouldRemoveOnTrailingIconClick_","setSelected_","notifySelection_","notifyIgnoredSelection_","getRootRect","checkmarkRect","rootRect","shouldHandleInteraction_","focusPrimaryAction_","shouldHandle","widthIsAnimating","opacityIsAnimating","chipWidth_1","requestAnimationFrame","removeFocus_","shouldHideLeadingIcon","shouldShowLeadingIcon","eventFromPrimaryAction_","removeChip_","shouldRemoveChip_","focusNextAction_","focusTrailingAction_","getEvtSource_","NONE","stopPropagation","./packages/mdc-circular-progress/component.ts","MDCCircularProgress","determinateCircle_","MDCCircularProgressFoundation","DETERMINATE_CIRCLE_SELECTOR","setDeterminate","setProgress","isClosed","getDeterminateCircleAttribute","attributeName","setDeterminateCircleAttribute","./packages/mdc-circular-progress/constants.ts","INDETERMINATE_CLASS","CLOSED_CLASS","ARIA_VALUENOW","RADIUS","STROKE_DASHOFFSET","./packages/mdc-circular-progress/custom-element.js","MdcCircularProgress","determinate_","progress_","closed_","determinate","circularProgress_","progress","closed","./packages/mdc-circular-progress/foundation.ts","isClosed_","isDeterminate_","radius_","isDeterminate","getProgress","./packages/mdc-data-table/custom-element.js","MdcDataTable","./packages/mdc-dialog/component.ts","__importStar","MDCDialogFoundation","MDCDialog","isOpen","getEscapeKeyAction","setEscapeKeyAction","getScrimClickAction","setScrimClickAction","getAutoStackButtons","autoStack","setAutoStackButtons","focusTrapFactory","CONTAINER_SELECTOR","container_","content_","CONTENT_SELECTOR","buttons_","BUTTON_SELECTOR","focusTrapFactory_","focusTrap_","createFocusTrapInstance","getInitialFocusEl_","handleClick_","handleClick","handleDocumentKeydown_","handleDocumentKeydown","handleLayout_","layout","LAYOUT_EVENTS","handleOpening_","handleClosing_","OPENING_EVENT","CLOSING_EVENT","eventTargetMatches","SCRIM_SELECTOR","keyCode","addBodyClass","areButtonsStacked","areTopsMisaligned","clickDefaultButton","getActionFromEvent","getInitialFocusEl","isContentScrollable","isScrollable","notifyClosed","CLOSED_EVENT","notifyClosing","notifyOpened","OPENED_EVENT","notifyOpening","releaseFocus","deactivate","removeBodyClass","reverseButtons","button","trapFocus","activate","INITIAL_FOCUS_ATTRIBUTE","./packages/mdc-dialog/constants.ts","CLOSING","OPEN","OPENING","SCROLLABLE","SCROLL_LOCK","STACKED","ACTION_ATTRIBUTE","BUTTON_DEFAULT_ATTRIBUTE","CLOSE_ACTION","DESTROY_ACTION","SUPPRESS_DEFAULT_PRESS_SELECTOR","SURFACE_SELECTOR","DIALOG_ANIMATION_CLOSE_TIME_MS","DIALOG_ANIMATION_OPEN_TIME_MS","./packages/mdc-dialog/custom-element.js","MdcDialog","open_","dialog_","./packages/mdc-dialog/foundation.ts","isOpen_","animationFrame_","animationTimer_","layoutFrame_","escapeKeyAction_","scrimClickAction_","autoStackButtons_","areButtonsStacked_","handleAnimationTimerEnd_","cancelAnimationFrame","runNextAnimationFrame_","layoutInternal_","isEnter","isDefault","detectStackedButtons_","detectScrollableContent_","./packages/mdc-dialog/node_modules/focus-trap/index.js","activeFocusDelay","trapQueue","tabbable","xtend","activeFocusTraps","activateTrap","trap","activeTrap","trapIndex","deactivateTrap","unpause","userOptions","returnFocusOnDeactivate","escapeDeactivates","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","activateOptions","updateTabbableNodes","onActivate","addListeners","removeListeners","deactivateOptions","onDeactivate","returnFocus","previousActiveElement","tryFocus","getNodeForOption","getInitialFocusNode","checkFocusIn","checkPointerDown","capture","passive","checkClick","checkKey","optionName","optionValue","clickOutsideDeactivates","isFocusable","allowOutsideClick","stopImmediatePropagation","isEscapeEvent","isTabEvent","shiftKey","checkTab","tabbableNodes","isSelectableInput","./packages/mdc-dialog/node_modules/tabbable/index.js","candidateSelectors","candidateSelector","candidate","candidateTabindex","regularTabbables","orderedTabbables","candidates","includeContainer","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","tabIndex","sort","sortOrderedTabbables","isNodeMatchingSelectorFocusable","isInput","isRadio","nodes","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isHiddenInput","offsetParent","visibility","isHidden","isTabbable","focusableCandidateSelector","tabindexAttr","contentEditable","isContentEditable","./packages/mdc-dialog/node_modules/xtend/immutable.js","./packages/mdc-dialog/util.ts","__importDefault","focus_trap_1","surfaceEl","initialFocusEl","initialFocus","scrollHeight","offsetHeight","els","tops","offsetTop","./packages/mdc-dom/announce.ts","AnnouncerPriority","priority","Announcer","getInstance","say","liveRegions","POLITE","liveRegion","getLiveRegion","existingLiveRegion","createLiveRegion","overflow","./packages/mdc-dom/events.ts","globalObj","passiveSupported","supportsPassiveOption","./packages/mdc-dom/ponyfill.ts","estimateScrollWidth","htmlEl","scrollWidth","./packages/mdc-drawer/component.ts","foundation_3","MDCDismissibleDrawerFoundation","MDCDrawer","list_","MODAL","scrim_","handleScrimClick_","handleScrimClick","elementHasClass","saveFocus","previousFocus_","restoreFocus","previousFocus","focusActiveNavigationItem","activeNavItemEl","MDCListFoundation","LIST_ITEM_ACTIVATED_CLASS","notifyClose","CLOSE_EVENT","notifyOpen","OPEN_EVENT","DISMISSIBLE","MDCModalDrawerFoundation","./packages/mdc-drawer/constants.ts","ANIMATE","APP_CONTENT_SELECTOR","./packages/mdc-drawer/custom-element.js","MdcDrawer","drawer_","./packages/mdc-drawer/dismissible/foundation.ts","isOpening","isClosing","isElement_","opened_","./packages/mdc-drawer/modal/foundation.ts","./packages/mdc-drawer/node_modules/focus-trap/index.js","./packages/mdc-drawer/node_modules/tabbable/index.js","./packages/mdc-drawer/node_modules/xtend/immutable.js","./packages/mdc-drawer/util.ts","./packages/mdc-fab/custom-element.js","MdcFab","./packages/mdc-floating-label/component.ts","MDCFloatingLabel","shake","shouldShake","shouldFloat","getWidth","MDCFloatingLabelFoundation","./packages/mdc-floating-label/constants.ts","LABEL_FLOAT_ABOVE","LABEL_SHAKE","./packages/mdc-floating-label/foundation.ts","shakeAnimationEndHandler_","handleShakeAnimationEnd_","./packages/mdc-form-field/component.ts","MDCFormField","input_","MDCFormFieldFoundation","LABEL_SELECTOR","activateInputRipple","ripple","deactivateInputRipple","label_","./packages/mdc-form-field/constants.ts","./packages/mdc-form-field/custom-element.js","MdcFormField","formField_","inputElement","./packages/mdc-form-field/foundation.ts","clickHandler_","./packages/mdc-icon-button/component.ts","MDCIconButtonToggleFoundation","MDCIconButtonToggle","notifyChange","getAttr","attrName","setAttr","attrValue","CHANGE_EVENT","isOn","unbounded","./packages/mdc-icon-button/constants.ts","ICON_BUTTON_ON","ARIA_LABEL","ARIA_PRESSED","DATA_ARIA_LABEL_OFF","DATA_ARIA_LABEL_ON","./packages/mdc-icon-button/custom-element.js","MdcIconButton","on_","iconButtonToggle_","./packages/mdc-icon-button/foundation.ts","hasToggledAriaLabel","ariaLabelOn","ariaLabelOff","ariaLabel","./packages/mdc-image-list/custom-element.js","MdcImageList","MdcImageListItem","rippleSurfaceElement","./packages/mdc-layout-grid/custom-element.js","MdcLayoutGrid","./packages/mdc-line-ripple/component.ts","MDCLineRipple","setRippleCenter","xCoordinate","MDCLineRippleFoundation","setStyle","registerEventHandler","deregisterEventHandler","./packages/mdc-line-ripple/constants.ts","LINE_RIPPLE_ACTIVE","LINE_RIPPLE_DEACTIVATING","./packages/mdc-line-ripple/foundation.ts","transitionEndHandler_","isDeactivating","./packages/mdc-linear-progress/component.ts","MDCLinearProgress","setBuffer","setReverse","MDCLinearProgressFoundation","setBufferBarStyle","styleProperty","BUFFER_BAR_SELECTOR","setPrimaryBarStyle","PRIMARY_BAR_SELECTOR","./packages/mdc-linear-progress/constants.ts","REVERSED_CLASS","FLEX_BASIS","./packages/mdc-linear-progress/custom-element.js","MdcLinearProgress","buffer_","reverse_","linearProgress_","linearProgress","./packages/mdc-linear-progress/foundation.ts","isReversed_","setPrimaryBarProgress_","setBufferBarProgress_","isReversed","progressValue","transformProp","./packages/mdc-list/component.ts","MDCList","setVerticalOrientation","LIST_ITEM_CLASS","setWrapFocus","isSingleSelectionList","setSingleSelection","getSelectedIndex","setSelectedIndex","handleClickEvent_","handleKeydownEvent_","focusInEventListener_","handleFocusInEvent_","focusOutEventListener_","handleFocusOutEvent_","initializeListType","direction","ARIA_ORIENTATION","vertical","ARIA_ORIENTATION_HORIZONTAL","FOCUSABLE_CHILD_ELEMENTS","checkboxListItems","ARIA_ROLE_CHECKBOX_SELECTOR","singleSelectedListItem","LIST_ITEM_SELECTED_CLASS","radioSelectedListItem","ARIA_CHECKED_RADIO_SELECTOR","preselectedItems","ARIA_CHECKED_CHECKBOX_SELECTOR","selectedIndex","listItem","listElements","singleSelection","setEnabled","itemIndex","isEnabled","addClassForElementIndex","focusItemAtIndex","getAttributeForElementIndex","getFocusedElementIndex","getListItemCount","hasCheckboxAtIndex","CHECKBOX_SELECTOR","hasRadioAtIndex","RADIO_SELECTOR","isCheckboxCheckedAtIndex","CHECKBOX_RADIO_SELECTOR","isFocusInsideList","isRootFocused","listItemAtIndexHasClass","notifyAction","ACTION_EVENT","removeClassForElementIndex","setAttributeForElementIndex","setCheckedCheckboxOrRadioAtIndex","toggleEl","initEvent","setTabIndexForListItemChildren","listItemIndex","tabIndexValue","CHILD_ELEMENTS_TO_TOGGLE_TABINDEX","getListItemIndex_","nearestParent","toggleCheckbox","./packages/mdc-list/constants.ts","LIST_ITEM_DISABLED_CLASS","ARIA_CURRENT","ARIA_DISABLED","ARIA_SELECTED","UNSET_INDEX","./packages/mdc-list/custom-element.js","_material_ripple_component__WEBPACK_IMPORTED_MODULE_1__","_material_utils_className__WEBPACK_IMPORTED_MODULE_2__","MdcList","selectedIndex_","wrapFocus_","vertical_","previousSelectedIndex","previousIndex","wrapFocus","firstSelectedListItem","firstListItem","listSetup","MdcListItem","./packages/mdc-list/foundation.ts","ELEMENTS_KEY_ALLOWED_IN","isVertical_","isSingleSelectionList_","focusedItemIndex_","ariaCurrentAttrValue_","isCheckboxList_","isRadioList_","isIndexValid_","setCheckboxAtIndex_","setSingleSelectionAtIndex_","setTabindexToFirstSelectedItem_","isRootListItem","isArrowLeft","isArrowUp","isArrowRight","isArrowDown","isHome","isEnd","isSpace","focusLastElement","focusFirstElement","preventDefaultEvent_","focusNextElement","focusPrevElement","isSelectableList_","setSelectedIndexOnAction_","setTabindexAtIndex_","prevIndex","lastIndex","setAriaForSingleSelectionAtIndex_","isAriaCurrent","targetIndex","minIndex","isIndexInRange_","listSize","toggleCheckboxAtIndex_","./packages/mdc-menu-surface/component.ts","MDCMenuSurface","parentEl","anchorElement","ANCHOR","FIXED","setFixedPosition","handleBodyClick_","handleBodyClick","registerBodyClickListener_","deregisterBodyClickListener_","isElementInContainer","skipRestoreFocus","quickOpen","setQuickOpen","setIsHoisted","isHoisted","setMenuSurfaceAnchorElement","isFixed","setAbsolutePosition","setAnchorCorner","corner","setAnchorMargin","MDCMenuSurfaceFoundation","hasAnchor","isRtl","setTransformOrigin","getTransformPropertyName","isFocused","getInnerDimensions","getAnchorDimensions","getWindowDimensions","innerWidth","innerHeight","getBodyDimensions","clientWidth","clientHeight","getWindowScroll","pageXOffset","setPosition","setMaxHeight","maxHeight","./packages/mdc-menu-surface/constants.ts","CornerBit","Corner","ANIMATING_CLOSED","ANIMATING_OPEN","IS_OPEN_BELOW","FOCUSABLE_ELEMENTS","TRANSITION_OPEN_DURATION","TRANSITION_CLOSE_DURATION","MARGIN_TO_EDGE","ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO","./packages/mdc-menu-surface/foundation.ts","__values","isQuickOpen_","isHoistedElement_","isFixedPosition_","openAnimationEndTimerId_","closeAnimationEndTimerId_","animationRequestId_","anchorCorner_","TOP_START","originCorner_","anchorMargin_","position_","flipCornerHorizontally","isFixedPosition","isFinite_","dimensions_","autoPosition_","maybeRestoreFocus_","measurements_","getAutoLayoutMeasurements_","getOriginCorner_","maxMenuSurfaceHeight","getMenuSurfaceMaxHeight_","verticalAlignment","hasBit_","BOTTOM","horizontalAlignment","horizontalOffset","getHorizontalOriginOffset_","verticalOffset","getVerticalOriginOffset_","anchorSize","surfaceSize","adjustPositionForHoistedElement_","anchorRect","bodySize","viewportSize","windowScroll","viewportDistance","availableTop","availableBottom","setBit_","availableLeft","availableRight","isAnchoredToRight","isFlipRtl","FLIP_RTL","hasRightBit","isAvailableLeft","isAvailableRight","isOriginCornerAlignedToEnd","unsetBit_","isBottomAligned","isBottomAnchored","isRightAligned","avoidHorizontalOverlap","rightOffset","avoidVerticalOverlap","e_1","props_1","props_1_1","e_1_1","childHasFocus","./packages/mdc-menu-surface/util.ts","cachedCssTransformPropertyName_","forceRefresh","./packages/mdc-menu/component.ts","MDCMenu","menuSurfaceFactory","menuSurfaceFactory_","menuSurface_","handleItemAction_","handleItemAction","handleMenuSurfaceOpened_","handleMenuSurfaceOpened","listElement","setDefaultFocusState","focusState","getOptionByIndex","setAnchorElement","MDCMenuFoundation","addClassToElementAtIndex","removeClassFromElementAtIndex","addAttributeToElementAtIndex","removeAttributeFromElementAtIndex","elementContainsClass","closeSurface","getElementIndex","notifySelected","SELECTED_EVENT","getMenuItemCount","focusListRoot","LIST_SELECTOR","isSelectableItemAtIndex","MENU_SELECTION_GROUP","getSelectedSiblingOfItemAtIndex","selectedItemEl","MENU_SELECTED_LIST_ITEM","./packages/mdc-menu/constants.ts","DefaultFocusState","ARIA_DISABLED_ATTR","FOCUS_ROOT_INDEX","./packages/mdc-menu/custom-element.js","MdcMenu","quickOpen_","menu_","menuSetup","./packages/mdc-menu/foundation.ts","defaultFocusState_","LIST_ROOT","recomputedIndex","FIRST_ITEM","LAST_ITEM","validatedIndex_","prevSelectedIndex","menuSize","./packages/mdc-notched-outline/component.ts","MDCNotchedOutline","notchElement_","NOTCH_ELEMENT_SELECTOR","transitionDuration","OUTLINE_UPGRADED","NO_LABEL","notch","notchWidth","closeNotch","MDCNotchedOutlineFoundation","setNotchWidthProperty","removeNotchWidthProperty","removeProperty","./packages/mdc-notched-outline/constants.ts","NOTCH_ELEMENT_PADDING","OUTLINE_NOTCHED","./packages/mdc-notched-outline/foundation.ts","./packages/mdc-radio/component.ts","MDCRadio","MDCRadioFoundation","./packages/mdc-radio/constants.ts","./packages/mdc-radio/custom-element.js","MdcRadio","radio_","./packages/mdc-radio/foundation.ts","./packages/mdc-ripple/component.ts","browserSupportsCssVars","supportsCssVariables","containsEventTarget","deregisterDocumentInteractionHandler","deregisterResizeHandler","getWindowPageOffset","isSurfaceDisabled","registerDocumentInteractionHandler","registerResizeHandler","updateCssVariable","varName","unbounded_","setUnbounded_","dataset","setUnbounded","./packages/mdc-ripple/constants.ts","BG_FOCUSED","FG_ACTIVATION","FG_DEACTIVATION","UNBOUNDED","VAR_FG_SCALE","VAR_FG_SIZE","VAR_FG_TRANSLATE_END","VAR_FG_TRANSLATE_START","VAR_LEFT","VAR_TOP","DEACTIVATION_TIMEOUT_MS","FG_DEACTIVATION_MS","INITIAL_ORIGIN_SCALE","TAP_DELAY_MS","./packages/mdc-ripple/custom-element.js","MdcRipple","./packages/mdc-ripple/foundation.ts","ACTIVATION_EVENT_TYPES","POINTER_DEACTIVATION_EVENT_TYPES","activatedTargets","activationAnimationHasEnded_","activationTimer_","fgDeactivationRemovalTimer_","fgScale_","frame_","initialSize_","maxRadius_","unboundedCoords_","activationState_","defaultActivationState_","activationTimerCallback_","runDeactivationUXLogicIfReady_","activateHandler_","activate_","deactivateHandler_","deactivate_","focusHandler_","handleFocus","blurHandler_","handleBlur","resizeHandler_","supportsPressRipple","supportsPressRipple_","registerRootHandlers_","ROOT_1","UNBOUNDED_1","ROOT_2","UNBOUNDED_2","removeCssVars_","deregisterRootHandlers_","deregisterDeactivationHandlers_","activationEvent","hasDeactivationUXRun","isActivated","isProgrammatic","wasActivatedByPointer","wasElementMadeActive","registerDeactivationHandlers_","rippleStrings","activationState","previousActivationEvent","previousActivationEvent_","resetActivationState_","checkElementMadeActive_","animateActivation_","translateStart","translateEnd","getFgTranslationCoordinates_","startPoint","endPoint","rmBoundedActivationClasses_","getNormalizedEventCoords","animateDeactivation_","maxDim","initialSize","updateLayoutCssVars_","./packages/mdc-ripple/util.ts","supportsCssVariables_","supportsCssVars","CSS","explicitlySupportsCssVars","weAreFeatureDetectingSafari10plus","pageOffset","clientRect","normalizedX","normalizedY","documentX","documentY","changedTouches","pageX","pageY","./packages/mdc-select/component.ts","component_3","menuSurfaceConstants","menuConstants","component_4","component_5","component_6","component_7","MDCSelect","labelFactory","lineRippleFactory","outlineFactory","iconFactory","helperTextFactory","MDCSelectIcon","MDCSelectHelperText","selectAnchor","SELECT_ANCHOR_SELECTOR","SELECTED_TEXT_SELECTOR","ARIA_CONTROLS","helperTextElement","getElementById","helperText","labelElement","lineRippleElement","LINE_RIPPLE_SELECTOR","lineRipple","outlineElement","OUTLINE_SELECTOR","outline","leadingIcon","OUTLINED","createRipple","getNormalizedXCoordinate","handleMenuItemAction","handleMenuOpened","handleMenuClose","menu","handleMenuClosed","getDisabled","setLeadingIconAriaLabel","setLeadingIconContent","setHelperTextContent","isValid","setValid","getRequired","isRequired","setRequired","getSelectAdapterMethods","getCommonAdapterMethods","getOutlineAdapterMethods","getLabelAdapterMethods","MDCSelectFoundation","getFoundationMap","menuElement","initMenu","getSelectedMenuItem","SELECTED_ITEM_SELECTOR","getMenuItemAttr","menuItem","setSelectedText","isSelectAnchorFocused","getSelectAnchorAttr","setSelectAnchorAttr","openMenu","closeMenu","getAnchorElement","setMenuAnchorElement","anchorEl","setMenuAnchorCorner","anchorCorner","setMenuWrapFocus","setAttributeAtIndex","attributeValue","removeAttributeAtIndex","focusMenuItemAtIndex","getMenuItemValues","VALUE_ATTR","getMenuItemTextAtIndex","addClassAtIndex","removeClassAtIndex","activateBottomLine","deactivateBottomLine","hasOutline","notchOutline","labelWidth","closeOutline","hasLabel","floatLabel","getLabelWidth","targetClientRect","isTouchEvent","touches","clientX","./packages/mdc-select/constants.ts","ACTIVATED","FOCUSED","INVALID","REQUIRED","SELECTED_ITEM_CLASS","WITH_LEADING_ICON","ARIA_SELECTED_ATTR","MENU_SELECTOR","LABEL_SCALE","./packages/mdc-select/custom-element.js","MdcSelect","valid_","required_","./packages/mdc-select/foundation.ts","foundationMap","isMenuOpen","isDisabled","setContent","openNotch","updateLabel","setValidity","showToScreenReader","arrowUp","arrowDown","labelScale","setAriaLabel","BOTTOM_START","optionHasValue","./packages/mdc-select/helper-text/component.ts","MDCSelectHelperTextFoundation","removeAttr","./packages/mdc-select/helper-text/constants.ts","ARIA_HIDDEN","ROLE","HELPER_TEXT_PERSISTENT","HELPER_TEXT_VALIDATION_MSG","./packages/mdc-select/helper-text/foundation.ts","setPersistent","isPersistent","setValidation","isValidation","selectIsValid","helperTextIsPersistent","validationMsgNeedsDisplay","hide_","./packages/mdc-select/icon/component.ts","MDCSelectIconFoundation","notifyIconAction","ICON_EVENT","./packages/mdc-select/icon/constants.ts","ICON_ROLE","./packages/mdc-select/icon/foundation.ts","savedTabIndex_","interactionHandler_","./packages/mdc-slider/component.ts","MDCSlider","getValue","setValue","getMin","getMax","getStep","setStep","thumbContainer_","THUMB_CONTAINER_SELECTOR","track_","TRACK_SELECTOR","pinValueMarker_","PIN_VALUE_MARKER_SELECTOR","trackMarkerContainer_","TRACK_MARKER_CONTAINER_SELECTOR","MDCSliderFoundation","getTabIndex","registerThumbContainerInteractionHandler","deregisterThumbContainerInteractionHandler","registerBodyInteractionHandler","deregisterBodyInteractionHandler","notifyInput","INPUT_EVENT","setThumbContainerStyleProperty","setTrackStyleProperty","setMarkerValue","innerText","toLocaleString","setTrackMarkers","stepStr","maxStr","minStr","markerBkgdImage","origValueNow","parseFloat_","ARIA_VALUEMIN","ARIA_VALUEMAX","STEP_DATA_ATTR","setupTrackMarker","stepUp","amount","stepDown","defaultValue","./packages/mdc-slider/constants.ts","ACTIVE","DISCRETE","FOCUS","HAS_TRACK_MARKER","IN_TRANSIT","IS_DISCRETE","PAGE_FACTOR","./packages/mdc-slider/custom-element.js","MdcSlider","value_","min_","max_","step_","slider_","./packages/mdc-slider/foundation.ts","hasPointer","PointerEvent","DOWN_EVENTS","UP_EVENTS","MOVE_EVENT_MAP","mousedown","pointerdown","touchstart","active_","inTransit_","isDiscrete_","hasTrackMarker_","handlingThumbTargetEvt_","preventFocusState_","thumbContainerPointerHandler_","interactionStartHandler_","handleDown_","keydownHandler_","handleFocus_","handleBlur_","evtName","rect_","updateUIForCurrentValue_","setValue_","toggleClass_","downEvent","setInTransit_","setActive_","moveHandler","moveEvent","handleMove_","moveEventType","upHandler","handleUp_","setValueFromEvt_","getClientX_","targetTouches","computeValueFromClientX_","pctComplete","keyId","getKeyId_","getValueForKeyId_","kbdEvt","shouldFireInput","force","quantize_","translatePx","hasWindow","transitionendEvtName","onTransitionEnd_1","inTransit","shouldBePresent","./packages/mdc-snackbar/component.ts","ACTION_SELECTOR","DISMISS_SELECTOR","MDCSnackbar","surfaceEl_","labelEl_","actionEl_","handleKeyDown_","handleKeyDown","handleSurfaceClick_","isActionButton_","handleActionButtonClick","isActionIcon_","handleActionIconClick","registerKeyDownHandler_","registerSurfaceClickHandler_","deregisterKeyDownHandler_","deregisterSurfaceClickHandler_","MDCSnackbarFoundation","getTimeoutMs","timeoutMs","setTimeoutMs","getCloseOnEscape","closeOnEscape","setCloseOnEscape","labelText","actionButtonText","./packages/mdc-snackbar/constants.ts","ARIA_LIVE_LABEL_TEXT_ATTR","REASON_ACTION","REASON_DISMISS","DEFAULT_AUTO_DISMISS_TIMEOUT_MS","MAX_AUTO_DISMISS_TIMEOUT_MS","MIN_AUTO_DISMISS_TIMEOUT_MS","SNACKBAR_ANIMATION_CLOSE_TIME_MS","SNACKBAR_ANIMATION_OPEN_TIME_MS","ARIA_LIVE_DELAY_MS","./packages/mdc-snackbar/custom-element.js","MdcSnackbar","closeOnEscape_","timeoutMs_","messageId_","snackbar_","messageId","./packages/mdc-snackbar/foundation.ts","autoDismissTimer_","autoDismissTimeoutMs_","clearAutoDismissTimer_","minValue","maxValue","./packages/mdc-switch/component.ts","MDCSwitch","MDCSwitchFoundation","setNativeControlChecked","setChecked","rippleSurface","RIPPLE_SURFACE_SELECTOR","./packages/mdc-switch/constants.ts","./packages/mdc-switch/custom-element.js","MdcSwitch","switch_","./packages/mdc-switch/foundation.ts","updateCheckedStyling_","nativeControl","./packages/mdc-tab-bar/component.ts","MDCTabBarFoundation","MDCTabBar","focusOnActivate","tabList_","tab","useAutomaticActivation","setUseAutomaticActivation","tabScrollerFactory","MDCTabScroller","tabScroller_","instantiateTabScroller_","handleTabInteraction_","handleTabInteraction","MDCTabFoundation","INTERACTED_EVENT","scrollIntoView","scrollTo","scrollX","incrementScroll","scrollXIncrement","getScrollPosition","getScrollContentWidth","getOffsetWidth","setActiveTab","activateTabAtIndex","deactivateTabAtIndex","focusTabAtIndex","getTabIndicatorClientRectAtIndex","computeIndicatorClientRect","getTabDimensionsAtIndex","computeDimensions","getPreviousActiveTabIndex","getFocusedTabIndex","tabElements","getTabElements_","getIndexOfTabById","getTabListLength","notifyTabActivated","TAB_ACTIVATED_EVENT","activateTab","TAB_SELECTOR","tab_","tabScrollerElement","TAB_SCROLLER_SELECTOR","./packages/mdc-tab-bar/constants.ts","SPACE_KEY","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","END_KEYCODE","ENTER_KEYCODE","EXTRA_SCROLL_AMOUNT","HOME_KEYCODE","SPACE_KEYCODE","./packages/mdc-tab-bar/custom-element.js","MdcTabBar","activeTabIndex_","focusOnActivate_","useAutomaticActivation_","tabBar_","tabList","activeTabIndex","previousActiveTabIndex","./packages/mdc-tab-bar/foundation.ts","ACCEPTABLE_KEYS","KEYCODE_MAP","rootLeft","rootRight","contentLeft","contentRight","previousClientRect","previousActiveIndex","indexIsInRange_","getKeyFromEvent_","isActivationKey_","determineTargetFromKey_","focusedTabIndex","tabId","isRTL_","scrollIntoViewRTL_","scrollIntoView_","calculateScrollIncrement_","scrollPosition","barWidth","nextTabDimensions","rightIncrement","calculateScrollIncrementRTL_","scrollContentWidth","findAdjacentTabIndexClosestToEdge_","tabDimensions","relativeRootLeft","relativeRootRight","relativeRootDelta","findAdjacentTabIndexClosestToEdgeRTL_","rootDelta","scrollIncrement","./packages/mdc-tab-indicator/component.ts","fading_foundation_1","sliding_foundation_1","MDCTabIndicator","MDCTabIndicatorFoundation","computeContentClientRect","setContentStyleProperty","FADE","MDCFadingTabIndicatorFoundation","MDCSlidingTabIndicatorFoundation","previousIndicatorClientRect","./packages/mdc-tab-indicator/constants.ts","NO_TRANSITION","./packages/mdc-tab-indicator/fading-foundation.ts","./packages/mdc-tab-indicator/foundation.ts","./packages/mdc-tab-indicator/sliding-foundation.ts","currentClientRect","widthDelta","xPosition","./packages/mdc-tab-scroller/component.ts","area_","MDCTabScrollerFoundation","AREA_SELECTOR","eventTargetMatchesSelector","evtTarget","addScrollAreaClass","setScrollAreaStyleProperty","setScrollContentStyleProperty","getScrollContentStyleValue","propName","setScrollAreaScrollLeft","scrollLeft","getScrollAreaScrollLeft","getScrollContentOffsetWidth","getScrollAreaOffsetWidth","computeScrollAreaClientRect","computeScrollContentClientRect","computeHorizontalScrollbarHeight","./packages/mdc-tab-scroller/constants.ts","ANIMATING","SCROLL_AREA_SCROLL","SCROLL_TEST","./packages/mdc-tab-scroller/foundation.ts","rtl_default_scroller_1","rtl_negative_scroller_1","rtl_reverse_scroller_1","isAnimating_","horizontalScrollbarHeight","computeCurrentScrollPositionRTL_","currentTranslateX","calculateCurrentTranslateX_","stopScrollAnimation_","animate_","getIncrementScrollOperation_","incrementScrollImmediate","operation","scrollDelta","finalScrollPosition","scrollToRTL_","scrollTo_","getRTLScroller","rtlScrollerInstance_","rtlScrollerFactory_","transformValue","clampScrollValue_","edges","calculateScrollEdges_","translateX","getScrollPositionRTL","currentScrollX","safeScrollX","scrollToRTL","incrementScrollRTL","currentScrollPosition","getAnimatingScrollPosition_","getAnimatingScrollPosition","initialScrollLeft","newScrollLeft","MDCTabScrollerRTLNegative","rootClientRect","contentClientRect","rightEdgeDelta","MDCTabScrollerRTLReverse","MDCTabScrollerRTLDefault","./packages/mdc-tab-scroller/rtl-default-scroller.ts","currentScrollLeft","clampedScrollLeft","MDCTabScrollerRTL","./packages/mdc-tab-scroller/rtl-negative-scroller.ts","contentWidth","./packages/mdc-tab-scroller/rtl-reverse-scroller.ts","./packages/mdc-tab-scroller/rtl-scroller.ts","./packages/mdc-tab-scroller/util.ts","horizontalScrollbarHeight_","documentObj","shouldCacheResult","./packages/mdc-tab/component.ts","MDCTab","tabIndicatorFactory","RIPPLE_SELECTOR","rippleFoundation","tabIndicatorElement","TAB_INDICATOR_SELECTOR","tabIndicator_","activateIndicator","deactivateIndicator","notifyInteracted","getOffsetLeft","offsetLeft","getContentOffsetLeft","getContentOffsetWidth","isActive","setFocusOnActivate","./packages/mdc-tab/constants.ts","TABINDEX","./packages/mdc-tab/custom-element.js","tabIdCounter","MdcTab","instantiated_","./packages/mdc-tab/foundation.ts","rootWidth","./packages/mdc-textfield/character-counter/component.ts","MDCTextFieldCharacterCounter","MDCTextFieldCharacterCounterFoundation","./packages/mdc-textfield/character-counter/constants.ts","ROOT_SELECTOR","./packages/mdc-textfield/character-counter/foundation.ts","setCounterValue","currentLength","maxLength","./packages/mdc-textfield/component.ts","ponyfill","foundation_4","component_8","MDCTextField","characterCounterFactory","MDCTextFieldHelperText","MDCTextFieldIcon","INPUT_SELECTOR","lineRipple_","outline_","helperTextStrings","MDCTextFieldHelperTextFoundation","nextElementSibling","hasHelperLine","HELPER_LINE","helperTextEl","helperText_","characterCounterStrings","characterCounterEl","characterCounter_","leadingIconEl","trailingIconEl","prefix_","PREFIX_SELECTOR","suffix_","SUFFIX_SELECTOR","pattern","minLength","setTrailingIconAriaLabel","setTrailingIconContent","useNativeValidation","setUseNativeValidation","prefixText","suffixText","getRootAdapterMethods_","getInputAdapterMethods_","getLabelAdapterMethods_","getLineRippleAdapterMethods_","getOutlineAdapterMethods_","MDCTextFieldFoundation","getFoundationMap_","registerTextFieldInteractionHandler","deregisterTextFieldInteractionHandler","registerValidationAttributeChangeHandler","mutationsList","mutation","getAttributesList","attributes","deregisterValidationAttributeChangeHandler","getNativeInput","registerInputInteractionHandler","deregisterInputInteractionHandler","shakeLabel","activateLineRipple","deactivateLineRipple","setLineRippleTransformOrigin","characterCounter","trailingIcon","isTextArea","TEXTAREA","isOutlined","./packages/mdc-textfield/constants.ts","FULLWIDTH","LABEL_FLOATING","WITH_TRAILING_ICON","VALIDATION_ATTR_WHITELIST","ALWAYS_FLOAT_TYPES","./packages/mdc-textfield/custom-element.js","MdcTextField","pattern_","minLength_","maxLength_","textField_","textField","floatingLabel","./packages/mdc-textfield/foundation.ts","POINTERDOWN_EVENTS","isFocused_","receivedUserInput_","isValid_","useNativeValidation_","inputFocusHandler_","activateFocus","inputBlurHandler_","deactivateFocus","inputInputHandler_","handleInput","setPointerXOffset_","textFieldInteractionHandler_","handleTextFieldInteraction","validationAttributeChangeHandler_","attributesList","handleValidationAttributeChange","getNativeInput_","shouldAlwaysFloat_","isBadInput_","styleFloating_","validationObserver_","setCharacterCounter_","nativeInput","styleValidity_","styleFocused_","targetEvent","autoCompleteFocus","isNativeInputValid_","styleDisabled_","validity","badInput","isFloating","./packages/mdc-textfield/helper-text/component.ts","./packages/mdc-textfield/helper-text/constants.ts","./packages/mdc-textfield/helper-text/foundation.ts","inputIsValid","./packages/mdc-textfield/icon/component.ts","MDCTextFieldIconFoundation","./packages/mdc-textfield/icon/constants.ts","./packages/mdc-textfield/icon/foundation.ts","./packages/mdc-top-app-bar/component.ts","MDCTopAppBar","navIcon_","NAVIGATION_ICON_SELECTOR","scrollTarget_","handleNavigationClick_","handleNavigationClick","handleWindowResize_","handleWindowResize","handleTargetScroll_","handleTargetScroll","FIXED_CLASS","SHORT_CLASS","setScrollTarget","getTopAppBarHeight","notifyNavigationIconClicked","getViewportScrollY","getTotalActionItems","ACTION_ITEM_SELECTOR","MDCShortTopAppBarFoundation","MDCFixedTopAppBarFoundation","MDCTopAppBarFoundation","./packages/mdc-top-app-bar/constants.ts","FIXED_SCROLLED_CLASS","SHORT_COLLAPSED_CLASS","SHORT_HAS_ACTION_ITEM_CLASS","DEBOUNCE_THROTTLE_RESIZE_TIME_MS","MAX_TOP_APP_BAR_HEIGHT","TITLE_SELECTOR","./packages/mdc-top-app-bar/custom-element.js","MdcTopAppBar","topAppBar_","./packages/mdc-top-app-bar/fixed/foundation.ts","wasScrolled_","./packages/mdc-top-app-bar/foundation.ts","MDCTopAppBarBaseFoundation","./packages/mdc-top-app-bar/short/foundation.ts","isCollapsed_","isAlwaysCollapsed_","setAlwaysCollapsed","collapse_","maybeCollapseBar_","getAlwaysCollapsed","uncollapse_","./packages/mdc-top-app-bar/standard/foundation.ts","INITIAL_VALUE","wasDocked_","isDockedShowing_","currentAppBarOffsetTop_","isCurrentlyBeingResized_","resizeThrottleId_","resizeDebounceId_","lastScrollPosition_","topAppBarHeight_","moveTopAppBar_","throttledResizeHandler_","checkForUpdate_","hasAnyPixelsOnscreen","partiallyShowing","currentHeight","./packages/mdc-utils/className.js","getClassName","installClassNameChangeHook","css","cs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","className_","_cs","foucClassNames","arr2","_toConsumableArray","uninstallClassNameChangeHook"],"mappings":"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mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,kEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,kEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,kEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,kEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,iEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,kEACA,qEAGA,mEACA,oEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,qEAGA,mEACA,oEAGA,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","file":"static/js/vendors~main.c8fc972b.chunk.js","sourcesContent":["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","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/*!\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","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","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","(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 off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.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 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\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined'\n\t&& ArrayBuffer.isView\n\t&& (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData;\n\tif (data instanceof Buffer) {\n\t\t// No need to do anything\n\t\tbufferData = data;\n\t} else if (typeof data === 'string') {\n\t\t// Convert strings to Buffer\n\t\tbufferData = Buffer.from(data, inputEnc);\n\t} else if (useArrayBuffer && ArrayBuffer.isView(data)) {\n\t\t/*\n\t\t * Wrap any TypedArray instances and DataViews\n\t\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t\t */\n\t\tbufferData = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t} else if (useUint8Array && data instanceof Uint8Array) {\n\t\t/*\n\t\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t\t * Doesn't make sense with other TypedArray instances\n\t\t */\n\t\tbufferData = Buffer.from(data);\n\t} else if (\n\t\tBuffer.isBuffer(data)\n\t\t&& data.constructor\n\t\t&& data.constructor.isBuffer\n\t\t&& data.constructor.isBuffer(data)\n\t) {\n\t\t/*\n\t\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t\t * Convert to our current Buffer implementation\n\t\t */\n\t\tbufferData = Buffer.from(data);\n\t} else {\n\t\tthrow new Error('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');\n\t}\n\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","\n/**\n * Expose `Emitter`.\n */\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}\n\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n};\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (typeof ArrayBuffer !== 'undefined') {\n base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n * [ ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * :data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string>[...]\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\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","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","// 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","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\n\nexports.encode = function (obj) {\n var str = '';\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length) str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n\n return str;\n};\n\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\n\nexports.decode = function(qs){\n var qry = {};\n var pairs = qs.split('&');\n for (var i = 0, l = pairs.length; i < l; i++) {\n var pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n};\n","\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n 'CONNECT',\n 'DISCONNECT',\n 'EVENT',\n 'ACK',\n 'ERROR',\n 'BINARY_EVENT',\n 'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n debug('encoding packet %j', obj);\n\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n } else {\n var encoding = encodeAsString(obj);\n callback([encoding]);\n }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n // first is type\n var str = '' + obj.type;\n\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n\n // json data\n if (null != obj.data) {\n var payload = tryStringify(obj.data);\n if (payload !== false) {\n str += payload;\n } else {\n return ERROR_PACKET;\n }\n }\n\n debug('encoded %j as %s', obj, str);\n return str;\n}\n\nfunction tryStringify(str) {\n try {\n return JSON.stringify(str);\n } catch(e){\n return false;\n }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n\n binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n var packet;\n if (typeof obj === 'string') {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else { // non-binary full packet\n this.emit('decoded', packet);\n }\n } else if (isBuf(obj) || obj.base64) { // raw binary data\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) { // received final buffer\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n } else {\n throw new Error('Unknown type: ' + obj);\n }\n};\n\nfunction isPayloadValid(type, payload) {\n switch (type) {\n case 0: // CONNECT\n return typeof payload === \"object\";\n case 1: // DISCONNECT\n return payload === undefined;\n case 4: // ERROR\n return typeof payload === \"string\" || typeof payload === \"object\";\n case 2: // EVENT\n case 5: // BINARY_EVENT\n return (\n isArray(payload) &&\n (typeof payload[0] === \"string\" || typeof payload[0] === \"number\")\n );\n case 3: // ACK\n case 6: // BINARY_ACK\n return isArray(payload);\n }\n}\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n\n if (null == exports.types[p.type]) {\n return error('unknown packet type ' + p.type);\n }\n\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var start = i + 1;\n while (str.charAt(++i) !== '-' && i != str.length) {}\n var buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n var start = i + 1;\n while (++i) {\n var c = str.charAt(i);\n if (',' === c) break;\n if (i === str.length) break;\n }\n p.nsp = str.substring(start, i);\n } else {\n p.nsp = '/';\n }\n\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n var start = i + 1;\n while (++i) {\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length) break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n\n // look up json data\n if (str.charAt(++i)) {\n var payload = tryParse(str.substr(i));\n if (isPayloadValid(p.type, payload)) {\n p.data = payload;\n } else {\n throw new Error(\"invalid payload\");\n }\n }\n\n debug('decoded %s as %j', str, p);\n return p;\n}\n\nfunction tryParse(str) {\n try {\n return JSON.parse(str);\n } catch(e){\n return false;\n }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n this.reconPack = null;\n this.buffers = [];\n};\n\nfunction error(msg) {\n return {\n type: exports.ERROR,\n data: 'parser error: ' + msg\n };\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\nvar globalThis = require('../globalThis');\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n","module.exports = (function () {\n if (typeof self !== 'undefined') {\n return self;\n } else if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this')(); // eslint-disable-line no-new-func\n }\n})();\n","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n this.forceNode = opts.forceNode;\n\n // results of ReactNative environment detection\n this.isReactNative = opts.isReactNative;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n\n return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n\n return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n this.readyState = 'closed';\n this.emit('close');\n};\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","(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 off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.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 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;\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\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\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","module.exports = require('./lib/axios');","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._U = 0;\n this._V = 0;\n this._W = null;\n this._X = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._Y = null;\nPromise._Z = null;\nPromise._0 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._V === 3) {\n self = self._W;\n }\n if (Promise._Y) {\n Promise._Y(self);\n }\n if (self._V === 0) {\n if (self._U === 0) {\n self._U = 1;\n self._X = deferred;\n return;\n }\n if (self._U === 1) {\n self._U = 2;\n self._X = [self._X, deferred];\n return;\n }\n self._X.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._V === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._V === 1) {\n resolve(deferred.promise, self._W);\n } else {\n reject(deferred.promise, self._W);\n }\n return;\n }\n var ret = tryCallOne(cb, self._W);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._V = 3;\n self._W = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._V = 1;\n self._W = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._V = 2;\n self._W = newValue;\n if (Promise._Z) {\n Promise._Z(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._U === 1) {\n handle(self, self._X);\n self._X = null;\n }\n if (self._U === 2) {\n for (var i = 0; i < self._X.length; i++) {\n handle(self, self._X[i]);\n }\n self._X = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\n\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\n\nvar parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\n\nmodule.exports = function parseuri(str) {\n var src = str,\n b = str.indexOf('['),\n e = str.indexOf(']');\n\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n\n var m = re.exec(str || ''),\n uri = {},\n i = 14;\n\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n\n return uri;\n};\n\nfunction pathNames(obj, path) {\n var regx = /\\/{2,9}/g,\n names = path.replace(regx, \"/\").split(\"/\");\n\n if (path.substr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n\n return names;\n}\n\nfunction queryKey(uri, query) {\n var data = {};\n\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n\n return data;\n}\n","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof ArrayBuffer === 'function';\n\nvar isView = function (obj) {\n return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer);\n};\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return (withNativeBuffer && Buffer.isBuffer(obj)) ||\n (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)));\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && ('object' === typeof uri)) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n\n // emit `open`\n var openSub = on(socket, 'open', function () {\n self.onopen();\n fn && fn();\n });\n\n // emit `connect_error`\n var errorSub = on(socket, 'error', function (data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n\n if (timeout === 0) {\n openSub.destroy(); // prevents a race condition with the 'open' event\n }\n\n // set timer\n var timer = setTimeout(function () {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n\n this.subs.push(openSub);\n this.subs.push(errorSub);\n\n return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n debug('open');\n\n // clear old subs\n this.cleanup();\n\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n this.lastPing = new Date();\n this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n debug('error', err);\n this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function () {\n socket.id = self.generateId(nsp);\n });\n\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n\n function onConnecting () {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n\n return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n\n this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function (encodedPackets) {\n for (var i = 0; i < encodedPackets.length; i++) {\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else { // add packet to the queue\n self.packetBuffer.push(packet);\n }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n debug('cleanup');\n\n var subsLength = this.subs.length;\n for (var i = 0; i < subsLength; i++) {\n var sub = this.subs.shift();\n sub.destroy();\n }\n\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n\n this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n debug('onclose');\n\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n\n var self = this;\n\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n\n this.reconnecting = true;\n var timer = setTimeout(function () {\n if (self.skipReconnect) return;\n\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n\n self.open(function (err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n};\n","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('./xmlhttprequest');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n}\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('./xmlhttprequest');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState && packet.type === 'open') {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' ||\n typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof File === 'function' ||\n typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n\n if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) ||\n (typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)\n ) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n , length = 64\n , map = {}\n , seed = 0\n , i = 0\n , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n\n if (now !== prev) return seed = 0, prev = now;\n return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n if (this.connected) return this;\n\n this.subEvents();\n if (!this.io.reconnecting) this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n\n var args = toArray(arguments);\n var packet = {\n type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n data: args\n };\n\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n this.flags = {};\n\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({type: parser.CONNECT, query: query});\n } else {\n this.packet({type: parser.CONNECT});\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n var sameNamespace = packet.nsp === this.nsp;\n var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n if (!sameNamespace && !rootNamespaceError) return;\n\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n\n case parser.EVENT:\n this.onevent(packet);\n break;\n\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case parser.ACK:\n this.onack(packet);\n break;\n\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n\n self.packet({\n type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emitBuffered();\n this.emit('connect');\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({ type: parser.DISCONNECT });\n }\n\n // remove socket from pool\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags.compress = compress;\n return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n this.flags.binary = binary;\n return this;\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function () {\n obj.removeListener(ev, fn);\n }\n };\n}\n","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n if ('string' == typeof fn) fn = obj[fn];\n if ('function' != typeof fn) throw new Error('bind() requires a function');\n var args = slice.call(arguments, 2);\n return function(){\n return fn.apply(obj, args.concat(slice.call(arguments)));\n }\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\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 if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\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.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\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","'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","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\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 function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] ||\n false === opts.multiplex || sameNamespace;\n\n var io;\n\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","\n(function (root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n define(factory);\n } else {\n root.getYouTubeID = factory();\n }\n}(this, function (exports) {\n\n return function (url, opts) {\n if (opts == undefined) {\n opts = {fuzzy: true};\n }\n\n if (/youtu\\.?be/.test(url)) {\n\n // Look first for known patterns\n var i;\n var patterns = [\n /youtu\\.be\\/([^#\\&\\?]{11})/, // youtu.be/\n /\\?v=([^#\\&\\?]{11})/, // ?v=\n /\\&v=([^#\\&\\?]{11})/, // &v=\n /embed\\/([^#\\&\\?]{11})/, // embed/\n /\\/v\\/([^#\\&\\?]{11})/ // /v/\n ];\n\n // If any pattern matches, return the ID\n for (i = 0; i < patterns.length; ++i) {\n if (patterns[i].test(url)) {\n return patterns[i].exec(url)[1];\n }\n }\n\n if (opts.fuzzy) {\n // If that fails, break it apart by certain characters and look \n // for the 11 character key\n var tokens = url.split(/[\\/\\&\\?=#\\.\\s]/g);\n for (i = 0; i < tokens.length; ++i) {\n if (/^[^#\\&\\?]{11}$/.test(tokens[i])) {\n return tokens[i];\n }\n }\n }\n }\n\n return null;\n };\n\n}));\n","/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||\"BESbswy\";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+\",serif\",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+\",sans-serif\",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G(\"serif\",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G(\"sans-serif\",J(this.a));a=\nO(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:\"serif\",C:\"sans-serif\"},S=null;function T(){if(null===S){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f[\"sans-serif\"]=this.m.a.offsetWidth;this.A=q();U(this)};\nfunction la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f[\"sans-serif\"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c(\"wf\",a.c,J(a).toString(),\"active\")],[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\"),b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\")]);K(b,\"fontactive\",a);this.m=!0;na(this)};\nW.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c(\"wf\",a.c,J(a).toString(),\"active\")),d=[],e=[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\")];c||d.push(b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\"));w(b.f,d,e)}K(b,\"fontinactive\",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c(\"wf\",\"active\")],[a.a.c(\"wf\",\"loading\"),a.a.c(\"wf\",\"inactive\")]),K(a,\"active\")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};\nfunction qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._Y = null;\n Promise._Z = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._Y = function (promise) {\n if (\n promise._V === 2 && // IS REJECTED\n rejections[promise._1]\n ) {\n if (rejections[promise._1].logged) {\n onHandled(promise._1);\n } else {\n clearTimeout(rejections[promise._1].timeout);\n }\n delete rejections[promise._1];\n }\n };\n Promise._Z = function (promise, err) {\n if (promise._U === 0) { // not yet handled\n promise._1 = id++;\n rejections[promise._1] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._1),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._0);\n p._V = 1;\n p._W = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._V === 3) {\n val = val._W;\n }\n if (val._V === 1) return res(i, val._W);\n if (val._V === 2) reject(val._W);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n","var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : ''\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","/*\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","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || (typeof location !== 'undefined' && location);\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n\n obj.path = obj.path || '/';\n\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n return obj;\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]');\nvar withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]');\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBuf(data)) {\n var placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder === true) {\n var isIndexValid =\n typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else {\n throw new Error(\"illegal attachments\");\n }\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if ((withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() { // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n }\n else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if(! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) { // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\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","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n opts = opts || {};\n\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n\n this.secure = null != opts.secure ? opts.secure\n : (typeof location !== 'undefined' && 'https:' === location.protocol);\n\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n\n this.agent = opts.agent || false;\n this.hostname = opts.hostname ||\n (typeof location !== 'undefined' ? location.hostname : 'localhost');\n this.port = opts.port || (typeof location !== 'undefined' && location.port\n ? location.port\n : (this.secure ? 443 : 80));\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.withCredentials = false !== opts.withCredentials;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || ['polling', 'websocket'];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n\n // SSL options for Node.js client\n this.pfx = opts.pfx || undefined;\n this.key = opts.key || undefined;\n this.passphrase = opts.passphrase || undefined;\n this.cert = opts.cert || undefined;\n this.ca = opts.ca || undefined;\n this.ciphers = opts.ciphers || undefined;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n\n // detect ReactNative environment\n this.isReactNative = (typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative');\n\n // other options for Node.js or ReactNative client\n if (typeof self === 'undefined' || this.isReactNative) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n\n this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // per-transport options\n var options = this.transportOptions[name] || {};\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n withCredentials: options.withCredentials || this.withCredentials,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void (0),\n isReactNative: this.isReactNative\n });\n\n return transport;\n};\n\nfunction clone (obj) {\n var o = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function () {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport\n .on('drain', function () {\n self.onDrain();\n })\n .on('packet', function (packet) {\n self.onPacket(packet);\n })\n .on('error', function (e) {\n self.onError(e);\n })\n .on('close', function () {\n self.onClose('transport close');\n });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, { probe: 1 });\n var failed = false;\n var self = this;\n\n Socket.priorWebsocketSuccess = false;\n\n function onTransportOpen () {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n\n debug('probe transport \"%s\" opened', name);\n transport.send([{ type: 'ping', data: 'probe' }]);\n transport.once('packet', function (msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function () {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n\n cleanup();\n\n self.setTransport(transport);\n transport.send([{ type: 'upgrade' }]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n\n function freezeTransport () {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n\n cleanup();\n\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror (err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n\n freezeTransport();\n\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n self.emit('upgradeError', error);\n }\n\n function onTransportClose () {\n onerror('transport closed');\n }\n\n // When the socket is closed while we're probing\n function onclose () {\n onerror('socket closed');\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade (to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup () {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n\n transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for (var i = 0, l = this.upgrades.length; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n if ('opening' === this.readyState || 'open' === this.readyState ||\n 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n this.emit('packet', packet);\n\n // Socket is live - any packet counts\n this.emit('heartbeat');\n\n switch (packet.type) {\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function () {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function () {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n var self = this;\n this.sendPacket('ping', function () {\n self.emit('ping');\n });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n if ('closed' !== this.readyState && this.transport.writable &&\n !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n\n var self = this;\n\n if (this.writeBuffer.length) {\n this.once('drain', function () {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n function close () {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n\n function cleanupAndClose () {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n\n function waitForUpgrade () {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n\n return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n // set ready state\n this.readyState = 'closed';\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit('close', reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n var filteredUpgrades = [];\n for (var i = 0, j = upgrades.length; i < j; i++) {\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n};\n","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('./xmlhttprequest');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};\n","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n\n if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n if (start < 0) { start += bytes; }\n if (end < 0) { end += bytes; }\n if (end > bytes) { end = bytes; }\n\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\n};\n","module.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n\nvar stringFromCharCode = String.fromCharCode;\n\n// Taken from https://mths.be/punycode\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\tvar value;\n\tvar extra;\n\twhile (counter < length) {\n\t\tvalue = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// high surrogate, and there is a next character\n\t\t\textra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n// Taken from https://mths.be/punycode\nfunction ucs2encode(array) {\n\tvar length = array.length;\n\tvar index = -1;\n\tvar value;\n\tvar output = '';\n\twhile (++index < length) {\n\t\tvalue = array[index];\n\t\tif (value > 0xFFFF) {\n\t\t\tvalue -= 0x10000;\n\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(value);\n\t}\n\treturn output;\n}\n\nfunction checkScalarValue(codePoint, strict) {\n\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\tif (strict) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\treturn true;\n}\n/*--------------------------------------------------------------------------*/\n\nfunction createByte(codePoint, shift) {\n\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n}\n\nfunction encodeCodePoint(codePoint, strict) {\n\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\treturn stringFromCharCode(codePoint);\n\t}\n\tvar symbol = '';\n\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t}\n\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\tcodePoint = 0xFFFD;\n\t\t}\n\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\tsymbol += createByte(codePoint, 6);\n\t}\n\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\tsymbol += createByte(codePoint, 12);\n\t\tsymbol += createByte(codePoint, 6);\n\t}\n\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\treturn symbol;\n}\n\nfunction utf8encode(string, opts) {\n\topts = opts || {};\n\tvar strict = false !== opts.strict;\n\n\tvar codePoints = ucs2decode(string);\n\tvar length = codePoints.length;\n\tvar index = -1;\n\tvar codePoint;\n\tvar byteString = '';\n\twhile (++index < length) {\n\t\tcodePoint = codePoints[index];\n\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t}\n\treturn byteString;\n}\n\n/*--------------------------------------------------------------------------*/\n\nfunction readContinuationByte() {\n\tif (byteIndex >= byteCount) {\n\t\tthrow Error('Invalid byte index');\n\t}\n\n\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\tbyteIndex++;\n\n\tif ((continuationByte & 0xC0) == 0x80) {\n\t\treturn continuationByte & 0x3F;\n\t}\n\n\t// If we end up here, it’s not a continuation byte\n\tthrow Error('Invalid continuation byte');\n}\n\nfunction decodeSymbol(strict) {\n\tvar byte1;\n\tvar byte2;\n\tvar byte3;\n\tvar byte4;\n\tvar codePoint;\n\n\tif (byteIndex > byteCount) {\n\t\tthrow Error('Invalid byte index');\n\t}\n\n\tif (byteIndex == byteCount) {\n\t\treturn false;\n\t}\n\n\t// Read first byte\n\tbyte1 = byteArray[byteIndex] & 0xFF;\n\tbyteIndex++;\n\n\t// 1-byte sequence (no continuation bytes)\n\tif ((byte1 & 0x80) == 0) {\n\t\treturn byte1;\n\t}\n\n\t// 2-byte sequence\n\tif ((byte1 & 0xE0) == 0xC0) {\n\t\tbyte2 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\tif (codePoint >= 0x80) {\n\t\t\treturn codePoint;\n\t\t} else {\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t}\n\n\t// 3-byte sequence (may include unpaired surrogates)\n\tif ((byte1 & 0xF0) == 0xE0) {\n\t\tbyte2 = readContinuationByte();\n\t\tbyte3 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\tif (codePoint >= 0x0800) {\n\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t} else {\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t}\n\n\t// 4-byte sequence\n\tif ((byte1 & 0xF8) == 0xF0) {\n\t\tbyte2 = readContinuationByte();\n\t\tbyte3 = readContinuationByte();\n\t\tbyte4 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t(byte3 << 0x06) | byte4;\n\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\treturn codePoint;\n\t\t}\n\t}\n\n\tthrow Error('Invalid UTF-8 detected');\n}\n\nvar byteArray;\nvar byteCount;\nvar byteIndex;\nfunction utf8decode(byteString, opts) {\n\topts = opts || {};\n\tvar strict = false !== opts.strict;\n\n\tbyteArray = ucs2decode(byteString);\n\tbyteCount = byteArray.length;\n\tbyteIndex = 0;\n\tvar codePoints = [];\n\tvar tmp;\n\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\tcodePoints.push(tmp);\n\t}\n\treturn ucs2encode(codePoints);\n}\n\nmodule.exports = {\n\tversion: '2.1.2',\n\tencode: utf8encode,\n\tdecode: utf8decode\n};\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(chars){\n \"use strict\";\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i+1]);\n encoded3 = chars.indexOf(base64[i+2]);\n encoded4 = chars.indexOf(base64[i+3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n","/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = (globalThis.___eio || []);\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '