{"version":3,"sources":["webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/public-encrypt/mgf.js"],"names":["module","exports","parseKeys","mgf","xor","BN","crt","createHash","withPublic","Buffer","oaep","key","msg","k","modulus","byteLength","iHash","update","alloc","digest","hLen","length","Error","maskedSeed","slice","maskedDb","seed","db","compare","i","pkcs1","reverse","p1","status","ps","toString","a","b","from","dif","len","Math","min","privateKey","enc","padding","cmp","zBuffer","concat","MAX_BYTES","MAX_UINT32","oldBrowser","crypto","global","msCrypto","randomBytes","size","cb","RangeError","bytes","allocUnsafe","generated","getRandomValues","process","nextTick","Transform","Duplex","util","Object","create","afterTransform","er","data","ts","this","_transformState","transforming","writecb","emit","writechunk","push","rs","_readableState","reading","needReadable","highWaterMark","_read","options","call","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","done","stream","_writableState","inherits","prototype","chunk","encoding","_write","n","_destroy","err","_this2","err2","EventEmitter","pna","destroy","readableDestroyed","destroyed","writableDestroyed","errorEmitted","emitErrorNT","undestroy","ended","endEmitted","ending","finished","self","paddedMsg","toRed","mont","redPow","publicExponent","fromRed","toArray","_classCallCheck","instance","Constructor","TypeError","copyBuffer","src","target","offset","copy","BufferList","head","tail","v","entry","next","unshift","shift","ret","clear","join","s","p","inspect","custom","obj","constructor","name","publicEncrypt","privateDecrypt","privateEncrypt","buf","publicDecrypt","safeBuffer","randombytes","kBufferMaxLength","kMaxLength","kMaxUint32","pow","assertOffset","assertSize","randomFill","isBuffer","Uint8Array","actualFill","browser","ourBuf","buffer","uint","randomFillSync","undefined","PassThrough","runtime","Op","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","type","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","value","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","pop","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","fill","SlowBuffer","mLen","hLen2","dblen","nonZero","num","out","cache","cur","publicKey","Readable","isArray","ReadableState","EElistenerCount","emitter","listeners","Stream","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debug","debuglog","StringDecoder","destroyImpl","kProxyEvents","prependListener","event","_events","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","floor","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","readable","read","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","write","maybeReadMore","needMoreData","emitReadable","defineProperty","get","set","_undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","end","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume","resume_","fromList","fromListPartial","list","hasStrings","copyFromBufferString","copyFromBuffer","c","str","nb","endReadable","endReadableNT","indexOf","xs","x","l","parseInt","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","once","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","needDrain","increasedAwaitDrain","pause","dests","index","splice","ev","res","addListener","paused","apply","arguments","enumerable","_fromList","objectKeys","Writable","writable","allowHalfOpen","onEndNT","HashBase","ARRAY16","Array","zl","zr","sl","sr","hl","hr","RIPEMD160","_a","_b","_c","_d","_e","rotl","fn1","d","e","m","fn2","fn3","fn4","fn5","_update","words","j","_block","readInt32LE","al","bl","cl","dl","el","ar","br","cr","dr","tl","tr","t","_digest","_blockOffset","writeUInt32LE","_length","writeInt32LE","CorkedRequest","onCorkedFinish","asyncWrite","version","setImmediate","WritableState","internalUtil","deprecate","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","isBuf","newChunk","last","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","count","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","current","_","hasInstance","cork","uncork","setDefaultEncoding","toLowerCase","i2ops","writeUInt32BE"],"mappings":"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","file":"js/chunk-vendors~f9ca8911.3a0cd58c.js","sourcesContent":["module.exports = require('./lib/_stream_duplex.js');\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'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","// 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}","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// 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};","'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","module.exports = require('./readable').PassThrough\n","module.exports = require('./readable').Transform\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","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","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"],"sourceRoot":""}