{"version":3,"sources":["webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/punycode/punycode.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js"],"names":["pna","CorkedRequest","state","_this","this","next","entry","finish","corkReq","err","cb","callback","pendingcb","corkedRequestsFree","onCorkedFinish","module","exports","Writable","Duplex","asyncWrite","process","browser","indexOf","version","slice","setImmediate","nextTick","WritableState","util","Object","create","inherits","internalUtil","deprecate","Stream","Buffer","OurUint8Array","global","Uint8Array","realHasInstance","destroyImpl","nop","options","stream","isDuplex","objectMode","writableObjectMode","hwm","highWaterMark","writableHwm","writableHighWaterMark","defaultHwm","Math","floor","finalCalled","needDrain","ending","ended","finished","destroyed","noDecode","decodeStrings","defaultEncoding","length","writing","corked","sync","bufferProcessing","onwrite","er","_writableState","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","emit","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","call","writable","write","_write","writev","_writev","destroy","_destroy","final","_final","doWrite","len","chunk","encoding","onwriteDrain","l","buffer","Array","holder","count","allBuffers","isBuf","callFinal","need","prefinish","prototype","getBuffer","current","out","push","defineProperty","get","_","Symbol","hasInstance","Function","value","object","pipe","Error","obj","ret","isBuffer","from","_uint8ArrayToBuffer","writeAfterEnd","valid","TypeError","undefined","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","toLowerCase","enumerable","end","once","endWritable","set","_undestroy","undestroy","Readable","Transform","PassThrough","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","args","arguments","i","apply","title","env","argv","versions","on","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","afterTransform","data","ts","_transformState","transforming","writechunk","rs","_readableState","reading","needReadable","_read","bind","needTransform","writeencoding","transform","_transform","flush","_flush","done","n","_this2","err2","EventEmitter","emitErrorNT","self","readableDestroyed","writableDestroyed","endEmitted","BufferList","instance","Constructor","_classCallCheck","head","tail","v","unshift","shift","clear","join","s","p","alloc","src","target","offset","allocUnsafe","copy","inspect","custom","constructor","fn","arg1","arg2","arg3","root","nodeType","freeGlobal","window","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","result","mapDomain","string","parts","split","replace","ucs2decode","extra","output","counter","charCodeAt","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","base","decode","input","basic","j","index","oldi","w","t","baseMinusT","codePoint","inputLength","bias","lastIndexOf","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","test","isArray","ReadableState","EElistenerCount","emitter","debugUtil","debug","debuglog","StringDecoder","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","readable","read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","enc","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","list","hasStrings","c","str","nb","copyFromBufferString","buf","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","x","parseInt","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","onerror","ondata","cleanedUp","pipeOnDrain","increasedAwaitDrain","pause","event","_events","resume","dests","ev","res","wrap","paused","method","_fromList","objectKeys","keys","key","allowHalfOpen","onEndNT"],"mappings":"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","file":"vendors~f9ca8911.e36aa80eb5740e017d05.chunk.js","sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n  deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  var hwm = options.highWaterMark;\n  var writableHwm = options.writableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function () {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function (object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function (object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n    return new Writable(options);\n  }\n\n  this._writableState = new WritableState(options, this);\n\n  // legacy.\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n\n    if (typeof options.writev === 'function') this._writev = options.writev;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new Error('write after end');\n  // TODO: defer error events consistently everywhere, not just the cb\n  stream.emit('error', er);\n  pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var valid = true;\n  var er = false;\n\n  if (chunk === null) {\n    er = new TypeError('May not write null values to stream');\n  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  if (er) {\n    stream.emit('error', er);\n    pna.nextTick(cb, er);\n    valid = false;\n  }\n  return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n  if (typeof cb !== 'function') cb = nop;\n\n  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  var state = this._writableState;\n\n  state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n\n    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n\n  state.length += len;\n\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    pna.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    pna.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n\n  onwriteStateUpdate(state);\n\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state);\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      /*<replacement>*/\n      asyncWrite(afterWrite, stream, state, finished, cb);\n      /*</replacement>*/\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      stream.emit('error', err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function') {\n      state.pendingcb++;\n      state.finalCalled = true;\n      pna.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n    }\n  }\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n  if (state.corkedRequestsFree) {\n    state.corkedRequestsFree.next = corkReq;\n  } else {\n    state.corkedRequestsFree = corkReq;\n  }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  get: function () {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  this.end();\n  cb(err);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n\n  var cb = ts.writecb;\n\n  if (!cb) {\n    return this.emit('error', new Error('write callback called multiple times'));\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n\n  cb(er);\n\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n\n  Duplex.call(this, options);\n\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function') {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  var _this2 = this;\n\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n    _this2.emit('close');\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n  return stream.push(null);\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n      pna.nextTick(emitErrorNT, this, err);\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      pna.nextTick(emitErrorNT, _this, err);\n      if (_this._writableState) {\n        _this._writableState.errorEmitted = true;\n      }\n    } else if (cb) {\n      cb(err);\n    }\n  });\n\n  return this;\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n  src.copy(target, offset);\n}\n\nmodule.exports = function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  BufferList.prototype.push = function push(v) {\n    var entry = { data: v, next: null };\n    if (this.length > 0) this.tail.next = entry;else this.head = entry;\n    this.tail = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.unshift = function unshift(v) {\n    var entry = { data: v, next: this.head };\n    if (this.length === 0) this.tail = entry;\n    this.head = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.shift = function shift() {\n    if (this.length === 0) return;\n    var ret = this.head.data;\n    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n    --this.length;\n    return ret;\n  };\n\n  BufferList.prototype.clear = function clear() {\n    this.head = this.tail = null;\n    this.length = 0;\n  };\n\n  BufferList.prototype.join = function join(s) {\n    if (this.length === 0) return '';\n    var p = this.head;\n    var ret = '' + p.data;\n    while (p = p.next) {\n      ret += s + p.data;\n    }return ret;\n  };\n\n  BufferList.prototype.concat = function concat(n) {\n    if (this.length === 0) return Buffer.alloc(0);\n    if (this.length === 1) return this.head.data;\n    var ret = Buffer.allocUnsafe(n >>> 0);\n    var p = this.head;\n    var i = 0;\n    while (p) {\n      copyBuffer(p.data, ret, i);\n      i += p.data.length;\n      p = p.next;\n    }\n    return ret;\n  };\n\n  return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n  module.exports.prototype[util.inspect.custom] = function () {\n    var obj = util.inspect({ length: this.length });\n    return this.constructor.name + ' ' + obj;\n  };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};","'use strict';\n\nif (typeof process === 'undefined' ||\n    !process.version ||\n    process.version.indexOf('v0.') === 0 ||\n    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n  module.exports = { nextTick: nextTick };\n} else {\n  module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('\"callback\" argument must be a function');\n  }\n  var len = arguments.length;\n  var args, i;\n  switch (len) {\n  case 0:\n  case 1:\n    return process.nextTick(fn);\n  case 2:\n    return process.nextTick(function afterTickOne() {\n      fn.call(null, arg1);\n    });\n  case 3:\n    return process.nextTick(function afterTickTwo() {\n      fn.call(null, arg1, arg2);\n    });\n  case 4:\n    return process.nextTick(function afterTickThree() {\n      fn.call(null, arg1, arg2, arg3);\n    });\n  default:\n    args = new Array(len - 1);\n    i = 0;\n    while (i < args.length) {\n      args[i++] = arguments[i];\n    }\n    return process.nextTick(function afterTick() {\n      fn.apply(null, args);\n    });\n  }\n}\n\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  var hwm = options.highWaterMark;\n  var readableHwm = options.readableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  this._readableState = new ReadableState(options, this);\n\n  // legacy\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  this.push(null);\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      stream.emit('error', er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        stream.emit('error', new Error('stream.push() after EOF'));\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n    }\n  }\n\n  return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    stream.emit('data', chunk);\n    stream.read(0);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes.  This is to work around cases where hwm=0,\n// such as the repl.  Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n  this._readableState.decoder = new StringDecoder(enc);\n  this._readableState.encoding = enc;\n  return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = true;\n    n = 0;\n  } else {\n    state.length -= n;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n\n  // emit 'readable' now to make sure it gets picked up.\n  emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  debug('emit readable');\n  stream.emit('readable');\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    pna.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  var len = state.length;\n  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;else len = state.length;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n\n  // If the user pushes more data while we're writing to dest then we'll end up\n  // in ondata again. However, we only want to increase awaitDrain once because\n  // dest will only emit one 'drain' event for the multiple writes.\n  // => Introduce a guard on increasing awaitDrain.\n  var increasedAwaitDrain = false;\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    increasedAwaitDrain = false;\n    var ret = dest.write(chunk);\n    if (false === ret && !increasedAwaitDrain) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', src._readableState.awaitDrain);\n        src._readableState.awaitDrain++;\n        increasedAwaitDrain = true;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function () {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = { hasUnpiped: false };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, unpipeInfo);\n    }return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n  dest.emit('unpipe', this, unpipeInfo);\n\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n\n  if (ev === 'data') {\n    // Start flowing on next tick if stream isn't explicitly paused\n    if (this._readableState.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    var state = this._readableState;\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.emittedReadable = false;\n      if (!state.reading) {\n        pna.nextTick(nReadingNextTick, this);\n      } else if (state.length) {\n        emitReadable(this);\n      }\n    }\n  }\n\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    state.flowing = true;\n    resume(this, state);\n  }\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    pna.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  if (!state.reading) {\n    debug('resume read 0');\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  state.awaitDrain = 0;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (false !== this._readableState.flowing) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function (method) {\n        return function () {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._readableState.highWaterMark;\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = fromListPartial(n, state.buffer, state.decoder);\n  }\n\n  return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n  var ret;\n  if (n < list.head.data.length) {\n    // slice is the same for buffers and strings\n    ret = list.head.data.slice(0, n);\n    list.head.data = list.head.data.slice(n);\n  } else if (n === list.head.data.length) {\n    // first chunk is a perfect match\n    ret = list.shift();\n  } else {\n    // result spans more than one buffer\n    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n  }\n  return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n  var p = list.head;\n  var c = 1;\n  var ret = p.data;\n  n -= ret.length;\n  while (p = p.next) {\n    var str = p.data;\n    var nb = n > str.length ? str.length : n;\n    if (nb === str.length) ret += str;else ret += str.slice(0, n);\n    n -= nb;\n    if (n === 0) {\n      if (nb === str.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = str.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n  var ret = Buffer.allocUnsafe(n);\n  var p = list.head;\n  var c = 1;\n  p.data.copy(ret);\n  n -= p.data.length;\n  while (p = p.next) {\n    var buf = p.data;\n    var nb = n > buf.length ? buf.length : n;\n    buf.copy(ret, ret.length - n, 0, nb);\n    n -= nb;\n    if (n === 0) {\n      if (nb === buf.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = buf.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState;\n\n  // If we get here before consuming all the bytes, then that is a\n  // bug in node.  Should never happen.\n  if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    pna.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n  }\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    keys.push(key);\n  }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n  // avoid scope creep, the keys array can then be collected\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n\n  Readable.call(this, options);\n  Writable.call(this, options);\n\n  if (options && options.readable === false) this.readable = false;\n\n  if (options && options.writable === false) this.writable = false;\n\n  this.allowHalfOpen = true;\n  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n  this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // if we allow half-open state, or if the writable side ended,\n  // then we're ok.\n  if (this.allowHalfOpen || this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n  this.push(null);\n  this.end();\n\n  pna.nextTick(cb, err);\n};"],"sourceRoot":""}