{"version":3,"sources":["webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-sign/node_modules/safe-buffer/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/browserify-zlib/lib/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/browserify-zlib/lib/binding.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js"],"names":["ERR_INVALID_OPT_VALUE","codes","highWaterMarkFrom","options","isDuplex","duplexKey","highWaterMark","getHighWaterMark","state","hwm","isFinite","Math","floor","name","objectMode","module","exports","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","prototype","_require","Buffer","_require2","inspect","custom","copyBuffer","src","offset","copy","call","BufferList","this","head","tail","v","entry","data","next","ret","s","p","n","alloc","allocUnsafe","hasStrings","slice","shift","_getString","_getBuffer","c","str","nb","buf","_","depth","customInspect","Stream","Readable","Writable","Duplex","Transform","PassThrough","finished","pipeline","buffer","copyProps","dst","SafeBuffer","arg","encodingOrOffset","from","allocUnsafeSlow","create","size","fill","encoding","undefined","SlowBuffer","ERR_STREAM_PREMATURE_CLOSE","once","callback","called","_len","args","Array","_key","noop","isRequest","stream","setHeader","abort","eos","opts","readable","onlegacyfinish","onfinish","writableEnded","_writableState","readableEnded","_readableState","endEmitted","onend","onerror","err","onclose","ended","onrequest","req","on","error","removeListener","binding","util","assert","ok","kMaxLength","kRangeErrorMessage","toString","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Infinity","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","Z_DEFAULT_COMPRESSION","bkeys","bk","bkey","match","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_VERSION_ERROR","ckeys","ck","ckey","zlibBuffer","engine","buffers","nread","flow","chunk","read","onError","onEnd","RangeError","concat","close","end","zlibBufferSync","isBuffer","flushFlag","_finishFlushFlag","_processChunk","Deflate","Zlib","DEFLATE","Inflate","INFLATE","Gzip","GZIP","Gunzip","GUNZIP","DeflateRaw","DEFLATERAW","InflateRaw","INFLATERAW","Unzip","UNZIP","isValidFlushFlag","flag","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","mode","_this","_opts","_chunkSize","chunkSize","flush","Error","finishFlush","_flushFlag","windowBits","level","memLevel","strategy","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","dictionary","_handle","self","_hadError","message","errno","_close","code","emit","init","_buffer","_offset","_level","_strategy","get","process","nextTick","emitCloseNT","freeze","createDeflate","o","createInflate","createDeflateRaw","createInflateRaw","createGzip","createGunzip","createUnzip","deflate","deflateSync","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","inherits","params","reset","_flush","_transform","kind","_this2","ws","ending","needDrain","write","cb","last","availInBefore","availOutBefore","inOff","async","er","res","writeSync","availInAfter","availOutAfter","have","out","newReq","CorkedRequest","finish","onCorkedFinish","WritableState","internalUtil","deprecate","OurUint8Array","global","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","realHasInstance","destroyImpl","_require$codes","ERR_INVALID_ARG_TYPE","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","writableObjectMode","finalCalled","destroyed","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","_write","writev","_writev","destroy","_destroy","final","_final","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","len","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","l","holder","count","allBuffers","callFinal","prefinish","need","rState","endWritable","corkReq","getBuffer","current","Symbol","hasInstance","Function","pipe","cork","uncork","setDefaultEncoding","toLowerCase","indexOf","set","_undestroy","undestroy","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","done","readAndResolve","iter","resolve","onReadable","wrapForNext","lastPromise","reject","then","AsyncIteratorPrototype","getPrototypeOf","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","Promise","promise","asyncIterator","createReadableStreamAsyncIterator","_Object$create","iterator","bind","objectKeys","method","allowHalfOpen","onEndNT","Zstream","zlib_deflate","zlib_inflate","constants","NONE","GZIP_HEADER_ID1","GZIP_HEADER_ID2","init_done","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","strm","inflateEnd","input","in_off","in_len","out_off","out_len","equal","avail_in","next_in","avail_out","output","next_out","_process","_checkError","_afterSync","_after","next_expected_header_byte","inflateSetDictionary","_error","msg","_init","_setDictionary","_reset","deflateInit2","Z_DEFLATED","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","createHmac","crt","EC","ec","BN","parseKeys","curves","sign","hash","hashType","signType","tag","priv","curve","ecSign","type","dsaSign","modulus","byteLength","pad","curveId","join","keyFromPrivate","privateKey","toDER","algo","k","x","priv_key","q","g","r","H","bits2int","mod","kv","getKey","makeKey","makeR","invm","imul","add","mul","cmpn","toArray","total","zeros","hlen","hbits","bits2octets","update","digest","obits","bits","bitLength","ishrn","t","cmp","toRed","mont","redPow","fromRed","readableDestroyed","writableDestroyed","emitErrorNT","emitErrorAndCloseNT","reading","wState","verify","sig","pub","ecVerify","dsaVerify","padNum","red","publicExponent","min","algorithm","pubkey","subjectPrivateKey","y","pub_key","unpacked","signature","decode","checkValue","montp","w","b","ERR_MISSING_ARGS","destroyer","closed","fn","to","popCallback","streams","pop","isArray","destroys","map","reduce","createHash","algorithms","Sign","_hashType","_hash","_tag","id","_signType","Verify","createSign","createVerify","enc","ReadableState","EventEmitter","EElistenerCount","emitter","listeners","debug","debugUtil","debuglog","StringDecoder","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","event","_events","unshift","readableObjectMode","pipes","pipesCount","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","content","clear","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","maybeReadMore_","pipeOnDrain","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","first","consume","endReadable","endReadableNT","xs","parseInt","nOrig","doRead","dest","pipeOpts","doEnd","stdout","stderr","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","ondata","pause","dests","index","splice","ev","addListener","removeAllListeners","wrap","_fromList","iterable","_inheritsLoose","subClass","superClass","constructor","__proto__","createErrorType","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","oneOf","expected","thing","String","startsWith","search","pos","substr","endsWith","this_len","substring","includes","start","actual","determiner","replace","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","err2"],"mappings":"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","file":"js/chunk-vendors~ba5beb3c.09b76c3a.js","sourcesContent":["'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('./browser/algorithms.json')\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar binding = require('./binding');\nvar util = require('util');\nvar assert = require('assert').ok;\nvar kMaxLength = require('buffer').kMaxLength;\nvar kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';\n\n// zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15;\n\n// fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low. Usually a MB or more is best.\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = 16 * 1024;\n\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\n\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n// expose all the zlib constants\nvar bkeys = Object.keys(binding);\nfor (var bk = 0; bk < bkeys.length; bk++) {\n var bkey = bkeys[bk];\n if (bkey.match(/^Z/)) {\n Object.defineProperty(exports, bkey, {\n enumerable: true, value: binding[bkey], writable: false\n });\n }\n}\n\n// translation table for return codes.\nvar codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\n\nvar ckeys = Object.keys(codes);\nfor (var ck = 0; ck < ckeys.length; ck++) {\n var ckey = ckeys[ck];\n codes[codes[ckey]] = ckey;\n}\n\nObject.defineProperty(exports, 'codes', {\n enumerable: true, value: Object.freeze(codes), writable: false\n});\n\nexports.Deflate = Deflate;\nexports.Inflate = Inflate;\nexports.Gzip = Gzip;\nexports.Gunzip = Gunzip;\nexports.DeflateRaw = DeflateRaw;\nexports.InflateRaw = InflateRaw;\nexports.Unzip = Unzip;\n\nexports.createDeflate = function (o) {\n return new Deflate(o);\n};\n\nexports.createInflate = function (o) {\n return new Inflate(o);\n};\n\nexports.createDeflateRaw = function (o) {\n return new DeflateRaw(o);\n};\n\nexports.createInflateRaw = function (o) {\n return new InflateRaw(o);\n};\n\nexports.createGzip = function (o) {\n return new Gzip(o);\n};\n\nexports.createGunzip = function (o) {\n return new Gunzip(o);\n};\n\nexports.createUnzip = function (o) {\n return new Unzip(o);\n};\n\n// Convenience methods.\n// compress/decompress a string or buffer in one step.\nexports.deflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n};\n\nexports.deflateSync = function (buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n};\n\nexports.gzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n};\n\nexports.gzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n};\n\nexports.deflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n};\n\nexports.deflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n};\n\nexports.unzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n};\n\nexports.unzipSync = function (buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n};\n\nexports.inflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n};\n\nexports.inflateSync = function (buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n};\n\nexports.gunzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n};\n\nexports.gunzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n};\n\nexports.inflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n};\n\nexports.inflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n};\n\nfunction zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n\n engine.on('error', onError);\n engine.on('end', onEnd);\n\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf;\n var err = null;\n\n if (nread >= kMaxLength) {\n err = new RangeError(kRangeErrorMessage);\n } else {\n buf = Buffer.concat(buffers, nread);\n }\n\n buffers = [];\n engine.close();\n callback(err, buf);\n }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n\n if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n\n var flushFlag = engine._finishFlushFlag;\n\n return engine._processChunk(buffer, flushFlag);\n}\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n}\n\n// gzip - bigger header, same deflate compression\nfunction Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n}\n\n// raw - no header\nfunction DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n}\n\n// auto-detect header.\nfunction Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n}\n\nfunction isValidFlushFlag(flag) {\n return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK;\n}\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\nfunction Zlib(opts, mode) {\n var _this = this;\n\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n\n Transform.call(this, opts);\n\n if (opts.flush && !isValidFlushFlag(opts.flush)) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n throw new Error('Invalid flush flag: ' + opts.finishFlush);\n }\n\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._handle = new binding.Zlib(mode);\n\n var self = this;\n this._hadError = false;\n this._handle.onerror = function (message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n _close(self);\n self._hadError = true;\n\n var error = new Error(message);\n error.errno = errno;\n error.code = exports.codes[errno];\n self.emit('error', error);\n };\n\n var level = exports.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n\n var strategy = exports.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n\n this._buffer = Buffer.allocUnsafe(this._chunkSize);\n this._offset = 0;\n this._level = level;\n this._strategy = strategy;\n\n this.once('end', this.close);\n\n Object.defineProperty(this, '_closed', {\n get: function () {\n return !_this._handle;\n },\n configurable: true,\n enumerable: true\n });\n}\n\nutil.inherits(Zlib, Transform);\n\nZlib.prototype.params = function (level, strategy, callback) {\n if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function () {\n assert(self._handle, 'zlib binding closed');\n self._handle.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n process.nextTick(callback);\n }\n};\n\nZlib.prototype.reset = function () {\n assert(this._handle, 'zlib binding closed');\n return this._handle.reset();\n};\n\n// This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\nZlib.prototype._flush = function (callback) {\n this._transform(Buffer.alloc(0), '', callback);\n};\n\nZlib.prototype.flush = function (kind, callback) {\n var _this2 = this;\n\n var ws = this._writableState;\n\n if (typeof kind === 'function' || kind === undefined && !callback) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback) process.nextTick(callback);\n } else if (ws.ending) {\n if (callback) this.once('end', callback);\n } else if (ws.needDrain) {\n if (callback) {\n this.once('drain', function () {\n return _this2.flush(kind, callback);\n });\n }\n } else {\n this._flushFlag = kind;\n this.write(Buffer.alloc(0), '', callback);\n }\n};\n\nZlib.prototype.close = function (callback) {\n _close(this, callback);\n process.nextTick(emitCloseNT, this);\n};\n\nfunction _close(engine, callback) {\n if (callback) process.nextTick(callback);\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) return;\n\n engine._handle.close();\n engine._handle = null;\n}\n\nfunction emitCloseNT(self) {\n self.emit('close');\n}\n\nZlib.prototype._transform = function (chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n\n if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n\n if (!this._handle) return cb(new Error('zlib binding closed'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n // (or whatever flag was provided using opts.finishFlush).\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last) flushFlag = this._finishFlushFlag;else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n\n var self = this;\n\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function (er) {\n error = er;\n });\n\n assert(this._handle, 'zlib binding closed');\n do {\n var res = this._handle.writeSync(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(kRangeErrorMessage);\n }\n\n var buf = Buffer.concat(buffers, nread);\n _close(this);\n\n return buf;\n }\n\n assert(this._handle, 'zlib binding closed');\n var req = this._handle.write(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n // When the callback is used in an async write, the callback's\n // context is the `req` object that was created. The req object\n // is === this._handle, and that's why it's important to null\n // out the values after they are done being used. `this._handle`\n // can stay in memory longer than the callback and buffer are needed.\n if (this) {\n this.buffer = null;\n this.callback = null;\n }\n\n if (self._hadError) return;\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n\n if (!async) return true;\n\n var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n\n if (!async) return false;\n\n // finished with the chunk.\n cb();\n }\n};\n\nutil.inherits(Deflate, Zlib);\nutil.inherits(Inflate, Zlib);\nutil.inherits(Gzip, Zlib);\nutil.inherits(Gunzip, Zlib);\nutil.inherits(DeflateRaw, Zlib);\nutil.inherits(InflateRaw, Zlib);\nutil.inherits(Unzip, Zlib);","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict';\n/* eslint camelcase: \"off\" */\n\nvar assert = require('assert');\n\nvar Zstream = require('pako/lib/zlib/zstream');\nvar zlib_deflate = require('pako/lib/zlib/deflate.js');\nvar zlib_inflate = require('pako/lib/zlib/inflate.js');\nvar constants = require('pako/lib/zlib/constants');\n\nfor (var key in constants) {\n exports[key] = constants[key];\n}\n\n// zlib modes\nexports.NONE = 0;\nexports.DEFLATE = 1;\nexports.INFLATE = 2;\nexports.GZIP = 3;\nexports.GUNZIP = 4;\nexports.DEFLATERAW = 5;\nexports.INFLATERAW = 6;\nexports.UNZIP = 7;\n\nvar GZIP_HEADER_ID1 = 0x1f;\nvar GZIP_HEADER_ID2 = 0x8b;\n\n/**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\nfunction Zlib(mode) {\n if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n throw new TypeError('Bad argument');\n }\n\n this.dictionary = null;\n this.err = 0;\n this.flush = 0;\n this.init_done = false;\n this.level = 0;\n this.memLevel = 0;\n this.mode = mode;\n this.strategy = 0;\n this.windowBits = 0;\n this.write_in_progress = false;\n this.pending_close = false;\n this.gzip_id_bytes_read = 0;\n}\n\nZlib.prototype.close = function () {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n\n assert(this.init_done, 'close before init');\n assert(this.mode <= exports.UNZIP);\n\n if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n zlib_deflate.deflateEnd(this.strm);\n } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n zlib_inflate.inflateEnd(this.strm);\n }\n\n this.mode = exports.NONE;\n\n this.dictionary = null;\n};\n\nZlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n assert.equal(arguments.length, 8);\n\n assert(this.init_done, 'write before init');\n assert(this.mode !== exports.NONE, 'already finalized');\n assert.equal(false, this.write_in_progress, 'write already in progress');\n assert.equal(false, this.pending_close, 'close is pending');\n\n this.write_in_progress = true;\n\n assert.equal(false, flush === undefined, 'must provide flush value');\n\n this.write_in_progress = true;\n\n if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = Buffer.alloc(0);\n in_len = 0;\n in_off = 0;\n }\n\n this.strm.avail_in = in_len;\n this.strm.input = input;\n this.strm.next_in = in_off;\n this.strm.avail_out = out_len;\n this.strm.output = out;\n this.strm.next_out = out_off;\n this.flush = flush;\n\n if (!async) {\n // sync version\n this._process();\n\n if (this._checkError()) {\n return this._afterSync();\n }\n return;\n }\n\n // async version\n var self = this;\n process.nextTick(function () {\n self._process();\n self._after();\n });\n\n return this;\n};\n\nZlib.prototype._afterSync = function () {\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n\n this.write_in_progress = false;\n\n return [avail_in, avail_out];\n};\n\nZlib.prototype._process = function () {\n var next_expected_header_byte = null;\n\n // If the avail_out is left at 0, then it means that it ran out\n // of room. If there was avail_out left over, then it means\n // that all of the input was consumed.\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflate(this.strm, this.flush);\n break;\n case exports.UNZIP:\n if (this.strm.avail_in > 0) {\n next_expected_header_byte = this.strm.next_in;\n }\n\n switch (this.gzip_id_bytes_read) {\n case 0:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n this.gzip_id_bytes_read = 1;\n next_expected_header_byte++;\n\n if (this.strm.avail_in === 1) {\n // The only available byte was already read.\n break;\n }\n } else {\n this.mode = exports.INFLATE;\n break;\n }\n\n // fallthrough\n case 1:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n this.gzip_id_bytes_read = 2;\n this.mode = exports.GUNZIP;\n } else {\n // There is no actual difference between INFLATE and INFLATERAW\n // (after initialization).\n this.mode = exports.INFLATE;\n }\n\n break;\n default:\n throw new Error('invalid number of gzip magic number bytes read');\n }\n\n // fallthrough\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n this.err = zlib_inflate.inflate(this.strm, this.flush\n\n // If data was encoded with dictionary\n );if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n // Load it\n this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n if (this.err === exports.Z_OK) {\n // And try to decode again\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n } else if (this.err === exports.Z_DATA_ERROR) {\n // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n // Make it possible for After() to tell a bad dictionary from bad\n // input.\n this.err = exports.Z_NEED_DICT;\n }\n }\n while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n // Bytes remain in input buffer. Perhaps this is another compressed\n // member in the same archive, or just trailing garbage.\n // Trailing zero bytes are okay, though, since they are frequently\n // used for padding.\n\n this.reset();\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n }\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n};\n\nZlib.prototype._checkError = function () {\n // Acceptable error states depend on the type of zlib stream.\n switch (this.err) {\n case exports.Z_OK:\n case exports.Z_BUF_ERROR:\n if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n this._error('unexpected end of file');\n return false;\n }\n break;\n case exports.Z_STREAM_END:\n // normal statuses, not fatal\n break;\n case exports.Z_NEED_DICT:\n if (this.dictionary == null) {\n this._error('Missing dictionary');\n } else {\n this._error('Bad dictionary');\n }\n return false;\n default:\n // something else.\n this._error('Zlib error');\n return false;\n }\n\n return true;\n};\n\nZlib.prototype._after = function () {\n if (!this._checkError()) {\n return;\n }\n\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n\n this.write_in_progress = false;\n\n // call the write() cb\n this.callback(avail_in, avail_out);\n\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype._error = function (message) {\n if (this.strm.msg) {\n message = this.strm.msg;\n }\n this.onerror(message, this.err\n\n // no hope of rescue.\n );this.write_in_progress = false;\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n\n assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n assert(level >= -1 && level <= 9, 'invalid compression level');\n\n assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n\n assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n\n this._init(level, windowBits, memLevel, strategy, dictionary);\n this._setDictionary();\n};\n\nZlib.prototype.params = function () {\n throw new Error('deflateParams Not supported');\n};\n\nZlib.prototype.reset = function () {\n this._reset();\n this._setDictionary();\n};\n\nZlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n this.level = level;\n this.windowBits = windowBits;\n this.memLevel = memLevel;\n this.strategy = strategy;\n\n this.flush = exports.Z_NO_FLUSH;\n\n this.err = exports.Z_OK;\n\n if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n this.windowBits += 16;\n }\n\n if (this.mode === exports.UNZIP) {\n this.windowBits += 32;\n }\n\n if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n this.windowBits = -1 * this.windowBits;\n }\n\n this.strm = new Zstream();\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n break;\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n case exports.UNZIP:\n this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Init error');\n }\n\n this.dictionary = dictionary;\n\n this.write_in_progress = false;\n this.init_done = true;\n};\n\nZlib.prototype._setDictionary = function () {\n if (this.dictionary == null) {\n return;\n }\n\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n break;\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to set dictionary');\n }\n};\n\nZlib.prototype._reset = function () {\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n case exports.GZIP:\n this.err = zlib_deflate.deflateReset(this.strm);\n break;\n case exports.INFLATE:\n case exports.INFLATERAW:\n case exports.GUNZIP:\n this.err = zlib_inflate.inflateReset(this.strm);\n break;\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to reset stream');\n }\n};\n\nexports.Zlib = Zlib;","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","module.exports = require('events').EventEmitter;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n"],"sourceRoot":""}