{"version":3,"sources":["webpack:///./node_modules/hash-base/node_modules/safe-buffer/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/https-browserify/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/form-data/lib/browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/http-signature/lib/verify.js","webpack:///./node_modules/forever-agent/index.js","webpack:///./node_modules/fast-deep-equal/index.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/isstream/isstream.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/fb/node_modules/ms/index.js","webpack:///./node_modules/http-signature/lib/index.js","webpack:///./node_modules/har-validator/lib/error.js","webpack:///./node_modules/fb/node_modules/debug/src/browser.js","webpack:///./node_modules/is-typedarray/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/har-schema/lib/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/http-signature/lib/signer.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/fb/node_modules/debug/src/debug.js","webpack:///./node_modules/fb/lib/index.js","webpack:///./node_modules/http-signature/lib/parser.js","webpack:///./node_modules/fb/lib/fb.js","webpack:///./node_modules/har-validator/lib/promise.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/extsprintf/lib/extsprintf.js","webpack:///./node_modules/extend/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/fb/lib/FacebookApiException.js","webpack:///./node_modules/fast-json-stable-stringify/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/http-signature/lib/utils.js"],"names":["buffer","Buffer","copyProps","src","dst","key","SafeBuffer","arg","encodingOrOffset","length","from","alloc","allocUnsafe","allocUnsafeSlow","module","exports","prototype","Object","create","TypeError","size","fill","encoding","buf","undefined","SlowBuffer","utils","SHA256","SHA224","this","call","h","inherits","blockSize","outSize","hmacStrength","padLength","_digest","enc","toHex32","slice","split32","Transform","_require$codes","codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","data","ts","_transformState","transforming","cb","writecb","emit","writechunk","push","rs","_readableState","reading","needReadable","highWaterMark","_read","options","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","destroyed","done","stream","_writableState","chunk","_write","n","_destroy","err","err2","PassThrough","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","W","Array","_update","msg","start","i","a","b","c","d","e","s","t","CorkedRequest","state","next","entry","finish","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","Stream","OurUint8Array","global","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","obj","isBuffer","realHasInstance","destroyImpl","_require","getHighWaterMark","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","isDuplex","objectMode","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","writable","write","writev","_writev","destroy","final","_final","writeAfterEnd","process","nextTick","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","len","ret","last","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","l","holder","count","allBuffers","callFinal","need","rState","endEmitted","endWritable","once","corkReq","getBuffer","current","out","defineProperty","get","_","Symbol","hasInstance","Function","value","object","pipe","cork","uncork","setDefaultEncoding","toLowerCase","indexOf","enumerable","end","set","_undestroy","undestroy","assert","Hmac","hash","Hash","inner","outer","_init","toArray","update","digest","http","url","https","hasOwnProperty","validateParams","params","parse","protocol","Error","request","Readable","pipeline","ctor","superCtor","super_","constructor","configurable","TempCtor","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","resolve","read","onReadable","wrapForNext","lastPromise","reject","then","AsyncIteratorPrototype","getPrototypeOf","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","error","Promise","promise","asyncIterator","_this2","createReadableStreamAsyncIterator","_Object$create","iterator","code","ReadableState","EventEmitter","EElistenerCount","emitter","type","listeners","debug","debugUtil","debuglog","StringDecoder","BufferList","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","event","fn","_events","isArray","unshift","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readable","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","p","head","content","clear","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","updateReadableListening","self","listenerCount","resume","nReadingNextTick","resume_","fromList","shift","join","first","concat","consume","endReadable","endReadableNT","wState","xs","x","parseInt","nOrig","doRead","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","pause","dests","index","splice","ev","res","addListener","removeAllListeners","apply","arguments","wrap","method","_fromList","iterable","opts","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","sha1","sha224","sha256","sha384","sha512","FormData","window","crypto","sshpk","validateAlgorithm","HASH_ALGOS","PK_ALGOS","InvalidAlgorithmError","HttpSignatureError","verifySignature","parsedSignature","pubkey","parseKey","ok","Key","isKey","alg","algorithm","v","createVerify","signingString","verify","signature","verifyHMAC","secret","string","hashAlg","toUpperCase","hmac","createHmac","h1","h2","equals","toString","ForeverAgent","SSL","ForeverAgentSSL","util","Agent","net","tls","AgentSSL","getConnectionName","host","port","name","localAddress","requests","sockets","freeSockets","maxSockets","defaultMaxSockets","minSockets","defaultMinSockets","socket","onSocket","onIdleError","_onIdleError","createConnectionSSL","connect","createConnection","addRequestNoreuse","addRequest","req","useChunkedEncodingByDefault","idleSocket","pop","_reusedSocket","removeSocket","createSocket","equal","keys","RegExp","source","flags","valueOf","HmacDRBG","predResist","outLen","minEntropy","_reseed","reseedInterval","K","V","entropy","entropyEnc","nonce","nonceEnc","pers","persEnc","seed","_hmac","kmac","reseed","add","addEnc","generate","temp","encode","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","k","f","g","T1","T2","sha","ripemd","ripemd160","SHA512","SHA384","isStream","isReadable","isWritable","throwIfNotStringOrBuffer","val","prefix","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","block","offset","j","carry","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","target","forEach","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_require2","inspect","custom","copyBuffer","copy","tail","hasStrings","_getString","_getBuffer","str","nb","depth","customInspect","_inheritsLoose","subClass","superClass","__proto__","createErrorType","message","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","oneOf","expected","thing","map","String","startsWith","search","pos","substr","endsWith","this_len","substring","includes","actual","determiner","replace","m","y","match","exec","parseFloat","fmtShort","ms","Math","round","fmtLong","plural","floor","ceil","isNaN","long","JSON","stringify","parser","signer","parseRequest","sign","signRequest","createSigner","isSigner","sshKeyToPEM","sshKeyFingerprint","fingerprint","pemToRsaSSHKey","HARError","errors","captureStackTrace","stack","useColors","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","navigator","userAgent","$1","formatArgs","args","namespace","humanize","diff","color","lastC","log","save","namespaces","storage","removeItem","load","r","DEBUG","localstorage","localStorage","chrome","local","colors","formatters","enable","isTypedArray","strict","isStrictTypedArray","loose","isLooseTypedArray","names","arr","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","Float32Array","Float64Array","rotr32","z","p32","afterRequest","beforeRequest","browser","cache","cookie","creator","har","header","page","pageTimings","postData","query","response","timings","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","ah","al","bh","bl","ch","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","jsprim","sprintf","format","AUTHZ_FMT","MissingHeaderError","StrictParsingError","RequestSigner","rs_alg","func","rs_signFunc","keyId","rs_keyId","rs_signer","hashAlgorithm","parsePrivateKey","PrivateKey","isPrivateKey","rs_key","createSign","rs_headers","rs_lines","writeHeader","line","writeDateHeader","rfc1123","Date","writeTarget","path","authz","sig","sigObj","optionalString","optionalArrayOfString","headers","httpVersion","getHeader","setHeader","stringToSign","_stringToSign","notStrictEqual","authzHeaderName","authorizationHeaderName","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","isFinite","sum32_3","RIPEMD160","endian","Kh","A","B","C","D","E","Ah","Bh","Ch","Dh","Eh","T","rh","sh","isSurrogatePair","charCodeAt","toHex","zero2","htonl","w","zero8","word","join32","lo","hi","num","prevTime","selectColor","abs","createDebug","enabled","curr","prev","coerce","formatter","logFn","init","skips","split","disable","test","_getPrototypeOf","_getPrototypeOf2","_interopRequireDefault","_getOwnPropertyNames","_getOwnPropertyNames2","_getIterator2","_getIterator3","__esModule","default","mod","FB","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_key","return","State","New","Params","ParamsState","Name","Quote","Value","Comma","ExpiredRequestError","InvalidHeaderError","InvalidParamsError","arrayOfString","optionalFinite","clockSkew","date","substate","tmpName","tmpValue","parsed","scheme","charAt","Number","now","skew","getTime","hdr","algorithms","version","FacebookApiException","Facebook","_class","_getOwnPropertyDescriptor","_getOwnPropertyDescriptor2","_slicedToArray2","_slicedToArray3","_extends2","_extends3","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_symbol","_symbol2","_stringify","_stringify2","_create","_create2","_assign","_assign2","_anyPromise","_anyPromise2","_coreDecorators","_debug","_debug2","_request","_request2","_url","_url2","_querystring","_querystring2","_crypto","_crypto2","_FacebookApiException","_FacebookApiException2","_applyDecoratedDescriptor","property","decorators","context","desc","initializer","reverse","reduce","decorator","debugReq","debugSig","METHODS","has","defaultOptions","accessToken","appId","appSecret","appSecretProof","beta","timeout","scope","redirectUri","proxy","isValidOption","stringifyParams","postParamData","isFormData","_context","getAppSecretProof","base64UrlDecode","base64String","nodeifyCallback","originalCallback","_opts","graph","oauthRequest","_internalInherit","_len","_Promise","_len2","_key2","api","_len3","_key3","uri","parsedUri","parsedQuery","formOptions","requestOptions","pool","access_token","appsecret_proof","MAX_SOCKETS","body","json","ex","signedRequest","_context2","_len4","_key4","encodedSignature","encodedEnvelope","envelope","base64Digest","base64UrlDigest","_split","_split2","opt","clientId","client_id","redirect_uri","display","scopeQuery","displayQuery","stateQuery","encodeURIComponent","responseType","response_type","keyOrOptions","o","extend","autobind","ajv","Ajv","schemas","createAjvInstance","allErrors","addMetaSchema","addSchema","validate","getSchema","valid","objectKeys","allowHalfOpen","onEndNT","mod_assert","mod_util","jsSprintf","fmt","width","precision","conversion","left","pad","regex","re","argn","doPad","dumpException","jsPrintf","jsFprintf","chr","cause","cex","printf","fprintf","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copyIsArray","clone","deep","pending","pendingTotal","_delta8","_delta32","_pad","bytes","ERR_STREAM_PREMATURE_CLOSE","called","noop","isRequest","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","cmp","cycles","node","aobj","bobj","seen","toJSON","seenIndex","sort","ERR_MISSING_ARGS","destroyer","closed","to","popCallback","streams","destroys","caller","pem","comment"],"mappings":"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","file":"js/account~db300d2f.ef9bb1b0.js","sourcesContent":["/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","module.exports = require('events').EventEmitter;\n","// Copyright 2015 Joyent, Inc.\n\nvar assert = require('assert-plus');\nvar crypto = require('crypto');\nvar sshpk = require('sshpk');\nvar utils = require('./utils');\n\nvar HASH_ALGOS = utils.HASH_ALGOS;\nvar PK_ALGOS = utils.PK_ALGOS;\nvar InvalidAlgorithmError = utils.InvalidAlgorithmError;\nvar HttpSignatureError = utils.HttpSignatureError;\nvar validateAlgorithm = utils.validateAlgorithm;\n\n///--- Exported API\n\nmodule.exports = {\n /**\n * Verify RSA/DSA signature against public key. You are expected to pass in\n * an object that was returned from `parse()`.\n *\n * @param {Object} parsedSignature the object you got from `parse`.\n * @param {String} pubkey RSA/DSA private key PEM.\n * @return {Boolean} true if valid, false otherwise.\n * @throws {TypeError} if you pass in bad arguments.\n * @throws {InvalidAlgorithmError}\n */\n verifySignature: function verifySignature(parsedSignature, pubkey) {\n assert.object(parsedSignature, 'parsedSignature');\n if (typeof (pubkey) === 'string' || Buffer.isBuffer(pubkey))\n pubkey = sshpk.parseKey(pubkey);\n assert.ok(sshpk.Key.isKey(pubkey, [1, 1]), 'pubkey must be a sshpk.Key');\n\n var alg = validateAlgorithm(parsedSignature.algorithm);\n if (alg[0] === 'hmac' || alg[0] !== pubkey.type)\n return (false);\n\n var v = pubkey.createVerify(alg[1]);\n v.update(parsedSignature.signingString);\n return (v.verify(parsedSignature.params.signature, 'base64'));\n },\n\n /**\n * Verify HMAC against shared secret. You are expected to pass in an object\n * that was returned from `parse()`.\n *\n * @param {Object} parsedSignature the object you got from `parse`.\n * @param {String} secret HMAC shared secret.\n * @return {Boolean} true if valid, false otherwise.\n * @throws {TypeError} if you pass in bad arguments.\n * @throws {InvalidAlgorithmError}\n */\n verifyHMAC: function verifyHMAC(parsedSignature, secret) {\n assert.object(parsedSignature, 'parsedHMAC');\n assert.string(secret, 'secret');\n\n var alg = validateAlgorithm(parsedSignature.algorithm);\n if (alg[0] !== 'hmac')\n return (false);\n\n var hashAlg = alg[1].toUpperCase();\n\n var hmac = crypto.createHmac(hashAlg, secret);\n hmac.update(parsedSignature.signingString);\n\n /*\n * Now double-hash to avoid leaking timing information - there's\n * no easy constant-time compare in JS, so we use this approach\n * instead. See for more info:\n * https://www.isecpartners.com/blog/2011/february/double-hmac-\n * verification.aspx\n */\n var h1 = crypto.createHmac(hashAlg, secret);\n h1.update(hmac.digest());\n h1 = h1.digest();\n var h2 = crypto.createHmac(hashAlg, secret);\n h2.update(new Buffer(parsedSignature.params.signature, 'base64'));\n h2 = h2.digest();\n\n /* Node 0.8 returns strings from .digest(). */\n if (typeof (h1) === 'string')\n return (h1 === h2);\n /* And node 0.10 lacks the .equals() method on Buffers. */\n if (Buffer.isBuffer(h1) && !h1.equals)\n return (h1.toString('binary') === h2.toString('binary'));\n\n return (h1.equals(h2));\n }\n};\n","module.exports = ForeverAgent\nForeverAgent.SSL = ForeverAgentSSL\n\nvar util = require('util')\n , Agent = require('http').Agent\n , net = require('net')\n , tls = require('tls')\n , AgentSSL = require('https').Agent\n \nfunction getConnectionName(host, port) { \n var name = ''\n if (typeof host === 'string') {\n name = host + ':' + port\n } else {\n // For node.js v012.0 and iojs-v1.5.1, host is an object. And any existing localAddress is part of the connection name.\n name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':')\n }\n return name\n} \n\nfunction ForeverAgent(options) {\n var self = this\n self.options = options || {}\n self.requests = {}\n self.sockets = {}\n self.freeSockets = {}\n self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets\n self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets\n self.on('free', function(socket, host, port) {\n var name = getConnectionName(host, port)\n\n if (self.requests[name] && self.requests[name].length) {\n self.requests[name].shift().onSocket(socket)\n } else if (self.sockets[name].length < self.minSockets) {\n if (!self.freeSockets[name]) self.freeSockets[name] = []\n self.freeSockets[name].push(socket)\n \n // if an error happens while we don't use the socket anyway, meh, throw the socket away\n var onIdleError = function() {\n socket.destroy()\n }\n socket._onIdleError = onIdleError\n socket.on('error', onIdleError)\n } else {\n // If there are no pending requests just destroy the\n // socket and it will get removed from the pool. This\n // gets us out of timeout issues and allows us to\n // default to Connection:keep-alive.\n socket.destroy()\n }\n })\n\n}\nutil.inherits(ForeverAgent, Agent)\n\nForeverAgent.defaultMinSockets = 5\n\n\nForeverAgent.prototype.createConnection = net.createConnection\nForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest\nForeverAgent.prototype.addRequest = function(req, host, port) {\n var name = getConnectionName(host, port)\n \n if (typeof host !== 'string') {\n var options = host\n port = options.port\n host = options.host\n }\n\n if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) {\n var idleSocket = this.freeSockets[name].pop()\n idleSocket.removeListener('error', idleSocket._onIdleError)\n delete idleSocket._onIdleError\n req._reusedSocket = true\n req.onSocket(idleSocket)\n } else {\n this.addRequestNoreuse(req, host, port)\n }\n}\n\nForeverAgent.prototype.removeSocket = function(s, name, host, port) {\n if (this.sockets[name]) {\n var index = this.sockets[name].indexOf(s)\n if (index !== -1) {\n this.sockets[name].splice(index, 1)\n }\n } else if (this.sockets[name] && this.sockets[name].length === 0) {\n // don't leak\n delete this.sockets[name]\n delete this.requests[name]\n }\n \n if (this.freeSockets[name]) {\n var index = this.freeSockets[name].indexOf(s)\n if (index !== -1) {\n this.freeSockets[name].splice(index, 1)\n if (this.freeSockets[name].length === 0) {\n delete this.freeSockets[name]\n }\n }\n }\n\n if (this.requests[name] && this.requests[name].length) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(name, host, port).emit('free')\n }\n}\n\nfunction ForeverAgentSSL (options) {\n ForeverAgent.call(this, options)\n}\nutil.inherits(ForeverAgentSSL, ForeverAgent)\n\nForeverAgentSSL.prototype.createConnection = createConnectionSSL\nForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest\n\nfunction createConnectionSSL (port, host, options) {\n if (typeof port === 'object') {\n options = port;\n } else if (typeof host === 'object') {\n options = host;\n } else if (typeof options === 'object') {\n options = options;\n } else {\n options = {};\n }\n\n if (typeof port === 'number') {\n options.port = port;\n }\n\n if (typeof host === 'string') {\n options.host = host;\n }\n\n return tls.connect(options);\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var stream = require('stream')\n\n\nfunction isStream (obj) {\n return obj instanceof stream.Stream\n}\n\n\nfunction isReadable (obj) {\n return isStream(obj) && typeof obj._read == 'function' && typeof obj._readableState == 'object'\n}\n\n\nfunction isWritable (obj) {\n return isStream(obj) && typeof obj._write == 'function' && typeof obj._writableState == 'object'\n}\n\n\nfunction isDuplex (obj) {\n return isReadable(obj) && isWritable(obj)\n}\n\n\nmodule.exports = isStream\nmodule.exports.isReadable = isReadable\nmodule.exports.isWritable = isWritable\nmodule.exports.isDuplex = isDuplex\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","// Copyright 2015 Joyent, Inc.\n\nvar parser = require('./parser');\nvar signer = require('./signer');\nvar verify = require('./verify');\nvar utils = require('./utils');\n\n\n\n///--- API\n\nmodule.exports = {\n\n parse: parser.parseRequest,\n parseRequest: parser.parseRequest,\n\n sign: signer.signRequest,\n signRequest: signer.signRequest,\n createSigner: signer.createSigner,\n isSigner: signer.isSigner,\n\n sshKeyToPEM: utils.sshKeyToPEM,\n sshKeyFingerprint: utils.fingerprint,\n pemToRsaSSHKey: utils.pemToRsaSSHKey,\n\n verify: verify.verifySignature,\n verifySignature: verify.verifySignature,\n verifyHMAC: verify.verifyHMAC\n};\n","function HARError (errors) {\n var message = 'validation failed'\n\n this.name = 'HARError'\n this.message = message\n this.errors = errors\n\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor)\n } else {\n this.stack = (new Error(message)).stack\n }\n}\n\nHARError.prototype = Error.prototype\n\nmodule.exports = HARError\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","module.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict'\n\nmodule.exports = {\n afterRequest: require('./afterRequest.json'),\n beforeRequest: require('./beforeRequest.json'),\n browser: require('./browser.json'),\n cache: require('./cache.json'),\n content: require('./content.json'),\n cookie: require('./cookie.json'),\n creator: require('./creator.json'),\n entry: require('./entry.json'),\n har: require('./har.json'),\n header: require('./header.json'),\n log: require('./log.json'),\n page: require('./page.json'),\n pageTimings: require('./pageTimings.json'),\n postData: require('./postData.json'),\n query: require('./query.json'),\n request: require('./request.json'),\n response: require('./response.json'),\n timings: require('./timings.json')\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","// Copyright 2012 Joyent, Inc. All rights reserved.\n\nvar assert = require('assert-plus');\nvar crypto = require('crypto');\nvar http = require('http');\nvar util = require('util');\nvar sshpk = require('sshpk');\nvar jsprim = require('jsprim');\nvar utils = require('./utils');\n\nvar sprintf = require('util').format;\n\nvar HASH_ALGOS = utils.HASH_ALGOS;\nvar PK_ALGOS = utils.PK_ALGOS;\nvar InvalidAlgorithmError = utils.InvalidAlgorithmError;\nvar HttpSignatureError = utils.HttpSignatureError;\nvar validateAlgorithm = utils.validateAlgorithm;\n\n///--- Globals\n\nvar AUTHZ_FMT =\n 'Signature keyId=\"%s\",algorithm=\"%s\",headers=\"%s\",signature=\"%s\"';\n\n///--- Specific Errors\n\nfunction MissingHeaderError(message) {\n HttpSignatureError.call(this, message, MissingHeaderError);\n}\nutil.inherits(MissingHeaderError, HttpSignatureError);\n\nfunction StrictParsingError(message) {\n HttpSignatureError.call(this, message, StrictParsingError);\n}\nutil.inherits(StrictParsingError, HttpSignatureError);\n\n/* See createSigner() */\nfunction RequestSigner(options) {\n assert.object(options, 'options');\n\n var alg = [];\n if (options.algorithm !== undefined) {\n assert.string(options.algorithm, 'options.algorithm');\n alg = validateAlgorithm(options.algorithm);\n }\n this.rs_alg = alg;\n\n /*\n * RequestSigners come in two varieties: ones with an rs_signFunc, and ones\n * with an rs_signer.\n *\n * rs_signFunc-based RequestSigners have to build up their entire signing\n * string within the rs_lines array and give it to rs_signFunc as a single\n * concat'd blob. rs_signer-based RequestSigners can add a line at a time to\n * their signing state by using rs_signer.update(), thus only needing to\n * buffer the hash function state and one line at a time.\n */\n if (options.sign !== undefined) {\n assert.func(options.sign, 'options.sign');\n this.rs_signFunc = options.sign;\n\n } else if (alg[0] === 'hmac' && options.key !== undefined) {\n assert.string(options.keyId, 'options.keyId');\n this.rs_keyId = options.keyId;\n\n if (typeof (options.key) !== 'string' && !Buffer.isBuffer(options.key))\n throw (new TypeError('options.key for HMAC must be a string or Buffer'));\n\n /*\n * Make an rs_signer for HMACs, not a rs_signFunc -- HMACs digest their\n * data in chunks rather than requiring it all to be given in one go\n * at the end, so they are more similar to signers than signFuncs.\n */\n this.rs_signer = crypto.createHmac(alg[1].toUpperCase(), options.key);\n this.rs_signer.sign = function () {\n var digest = this.digest('base64');\n return ({\n hashAlgorithm: alg[1],\n toString: function () { return (digest); }\n });\n };\n\n } else if (options.key !== undefined) {\n var key = options.key;\n if (typeof (key) === 'string' || Buffer.isBuffer(key))\n key = sshpk.parsePrivateKey(key);\n\n assert.ok(sshpk.PrivateKey.isPrivateKey(key, [1, 2]),\n 'options.key must be a sshpk.PrivateKey');\n this.rs_key = key;\n\n assert.string(options.keyId, 'options.keyId');\n this.rs_keyId = options.keyId;\n\n if (!PK_ALGOS[key.type]) {\n throw (new InvalidAlgorithmError(key.type.toUpperCase() + ' type ' +\n 'keys are not supported'));\n }\n\n if (alg[0] !== undefined && key.type !== alg[0]) {\n throw (new InvalidAlgorithmError('options.key must be a ' +\n alg[0].toUpperCase() + ' key, was given a ' +\n key.type.toUpperCase() + ' key instead'));\n }\n\n this.rs_signer = key.createSign(alg[1]);\n\n } else {\n throw (new TypeError('options.sign (func) or options.key is required'));\n }\n\n this.rs_headers = [];\n this.rs_lines = [];\n}\n\n/**\n * Adds a header to be signed, with its value, into this signer.\n *\n * @param {String} header\n * @param {String} value\n * @return {String} value written\n */\nRequestSigner.prototype.writeHeader = function (header, value) {\n assert.string(header, 'header');\n header = header.toLowerCase();\n assert.string(value, 'value');\n\n this.rs_headers.push(header);\n\n if (this.rs_signFunc) {\n this.rs_lines.push(header + ': ' + value);\n\n } else {\n var line = header + ': ' + value;\n if (this.rs_headers.length > 0)\n line = '\\n' + line;\n this.rs_signer.update(line);\n }\n\n return (value);\n};\n\n/**\n * Adds a default Date header, returning its value.\n *\n * @return {String}\n */\nRequestSigner.prototype.writeDateHeader = function () {\n return (this.writeHeader('date', jsprim.rfc1123(new Date())));\n};\n\n/**\n * Adds the request target line to be signed.\n *\n * @param {String} method, HTTP method (e.g. 'get', 'post', 'put')\n * @param {String} path\n */\nRequestSigner.prototype.writeTarget = function (method, path) {\n assert.string(method, 'method');\n assert.string(path, 'path');\n method = method.toLowerCase();\n this.writeHeader('(request-target)', method + ' ' + path);\n};\n\n/**\n * Calculate the value for the Authorization header on this request\n * asynchronously.\n *\n * @param {Func} callback (err, authz)\n */\nRequestSigner.prototype.sign = function (cb) {\n assert.func(cb, 'callback');\n\n if (this.rs_headers.length < 1)\n throw (new Error('At least one header must be signed'));\n\n var alg, authz;\n if (this.rs_signFunc) {\n var data = this.rs_lines.join('\\n');\n var self = this;\n this.rs_signFunc(data, function (err, sig) {\n if (err) {\n cb(err);\n return;\n }\n try {\n assert.object(sig, 'signature');\n assert.string(sig.keyId, 'signature.keyId');\n assert.string(sig.algorithm, 'signature.algorithm');\n assert.string(sig.signature, 'signature.signature');\n alg = validateAlgorithm(sig.algorithm);\n\n authz = sprintf(AUTHZ_FMT,\n sig.keyId,\n sig.algorithm,\n self.rs_headers.join(' '),\n sig.signature);\n } catch (e) {\n cb(e);\n return;\n }\n cb(null, authz);\n });\n\n } else {\n try {\n var sigObj = this.rs_signer.sign();\n } catch (e) {\n cb(e);\n return;\n }\n alg = (this.rs_alg[0] || this.rs_key.type) + '-' + sigObj.hashAlgorithm;\n var signature = sigObj.toString();\n authz = sprintf(AUTHZ_FMT,\n this.rs_keyId,\n alg,\n this.rs_headers.join(' '),\n signature);\n cb(null, authz);\n }\n};\n\n///--- Exported API\n\nmodule.exports = {\n /**\n * Identifies whether a given object is a request signer or not.\n *\n * @param {Object} object, the object to identify\n * @returns {Boolean}\n */\n isSigner: function (obj) {\n if (typeof (obj) === 'object' && obj instanceof RequestSigner)\n return (true);\n return (false);\n },\n\n /**\n * Creates a request signer, used to asynchronously build a signature\n * for a request (does not have to be an http.ClientRequest).\n *\n * @param {Object} options, either:\n * - {String} keyId\n * - {String|Buffer} key\n * - {String} algorithm (optional, required for HMAC)\n * or:\n * - {Func} sign (data, cb)\n * @return {RequestSigner}\n */\n createSigner: function createSigner(options) {\n return (new RequestSigner(options));\n },\n\n /**\n * Adds an 'Authorization' header to an http.ClientRequest object.\n *\n * Note that this API will add a Date header if it's not already set. Any\n * other headers in the options.headers array MUST be present, or this\n * will throw.\n *\n * You shouldn't need to check the return type; it's just there if you want\n * to be pedantic.\n *\n * The optional flag indicates whether parsing should use strict enforcement\n * of the version draft-cavage-http-signatures-04 of the spec or beyond.\n * The default is to be loose and support\n * older versions for compatibility.\n *\n * @param {Object} request an instance of http.ClientRequest.\n * @param {Object} options signing parameters object:\n * - {String} keyId required.\n * - {String} key required (either a PEM or HMAC key).\n * - {Array} headers optional; defaults to ['date'].\n * - {String} algorithm optional (unless key is HMAC);\n * default is the same as the sshpk default\n * signing algorithm for the type of key given\n * - {String} httpVersion optional; defaults to '1.1'.\n * - {Boolean} strict optional; defaults to 'false'.\n * @return {Boolean} true if Authorization (and optionally Date) were added.\n * @throws {TypeError} on bad parameter types (input).\n * @throws {InvalidAlgorithmError} if algorithm was bad or incompatible with\n * the given key.\n * @throws {sshpk.KeyParseError} if key was bad.\n * @throws {MissingHeaderError} if a header to be signed was specified but\n * was not present.\n */\n signRequest: function signRequest(request, options) {\n assert.object(request, 'request');\n assert.object(options, 'options');\n assert.optionalString(options.algorithm, 'options.algorithm');\n assert.string(options.keyId, 'options.keyId');\n assert.optionalArrayOfString(options.headers, 'options.headers');\n assert.optionalString(options.httpVersion, 'options.httpVersion');\n\n if (!request.getHeader('Date'))\n request.setHeader('Date', jsprim.rfc1123(new Date()));\n if (!options.headers)\n options.headers = ['date'];\n if (!options.httpVersion)\n options.httpVersion = '1.1';\n\n var alg = [];\n if (options.algorithm) {\n options.algorithm = options.algorithm.toLowerCase();\n alg = validateAlgorithm(options.algorithm);\n }\n\n var i;\n var stringToSign = '';\n for (i = 0; i < options.headers.length; i++) {\n if (typeof (options.headers[i]) !== 'string')\n throw new TypeError('options.headers must be an array of Strings');\n\n var h = options.headers[i].toLowerCase();\n\n if (h === 'request-line') {\n if (!options.strict) {\n /**\n * We allow headers from the older spec drafts if strict parsing isn't\n * specified in options.\n */\n stringToSign +=\n request.method + ' ' + request.path + ' HTTP/' +\n options.httpVersion;\n } else {\n /* Strict parsing doesn't allow older draft headers. */\n throw (new StrictParsingError('request-line is not a valid header ' +\n 'with strict parsing enabled.'));\n }\n } else if (h === '(request-target)') {\n stringToSign +=\n '(request-target): ' + request.method.toLowerCase() + ' ' +\n request.path;\n } else {\n var value = request.getHeader(h);\n if (value === undefined || value === '') {\n throw new MissingHeaderError(h + ' was not in the request');\n }\n stringToSign += h + ': ' + value;\n }\n\n if ((i + 1) < options.headers.length)\n stringToSign += '\\n';\n }\n\n /* This is just for unit tests. */\n if (request.hasOwnProperty('_stringToSign')) {\n request._stringToSign = stringToSign;\n }\n\n var signature;\n if (alg[0] === 'hmac') {\n if (typeof (options.key) !== 'string' && !Buffer.isBuffer(options.key))\n throw (new TypeError('options.key must be a string or Buffer'));\n\n var hmac = crypto.createHmac(alg[1].toUpperCase(), options.key);\n hmac.update(stringToSign);\n signature = hmac.digest('base64');\n\n } else {\n var key = options.key;\n if (typeof (key) === 'string' || Buffer.isBuffer(key))\n key = sshpk.parsePrivateKey(options.key);\n\n assert.ok(sshpk.PrivateKey.isPrivateKey(key, [1, 2]),\n 'options.key must be a sshpk.PrivateKey');\n\n if (!PK_ALGOS[key.type]) {\n throw (new InvalidAlgorithmError(key.type.toUpperCase() + ' type ' +\n 'keys are not supported'));\n }\n\n if (alg[0] !== undefined && key.type !== alg[0]) {\n throw (new InvalidAlgorithmError('options.key must be a ' +\n alg[0].toUpperCase() + ' key, was given a ' +\n key.type.toUpperCase() + ' key instead'));\n }\n\n var signer = key.createSign(alg[1]);\n signer.update(stringToSign);\n var sigObj = signer.sign();\n if (!HASH_ALGOS[sigObj.hashAlgorithm]) {\n throw (new InvalidAlgorithmError(sigObj.hashAlgorithm.toUpperCase() +\n ' is not a supported hash algorithm'));\n }\n options.algorithm = key.type + '-' + sigObj.hashAlgorithm;\n signature = sigObj.toString();\n assert.notStrictEqual(signature, '', 'empty signature produced');\n }\n\n var authzHeaderName = options.authorizationHeaderName || 'Authorization';\n\n request.setHeader(authzHeaderName, sprintf(AUTHZ_FMT,\n options.keyId,\n options.algorithm,\n options.headers.join(' '),\n signature));\n\n return true;\n }\n\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","'use strict';\n/**\n * Simultaneously satisfy require('fb') and Babel based ES2015 `import`\n * by exporting an object using Babel's __esModule which contains the normal\n * exports; and bound versions of the methods on FB.\n */\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyNames = require('babel-runtime/core-js/object/get-own-property-names');\n\nvar _getOwnPropertyNames2 = _interopRequireDefault(_getOwnPropertyNames);\n\nvar _getIterator2 = require('babel-runtime/core-js/get-iterator');\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mod = require('./fb'),\n FB = mod.FB;\nvar _iteratorNormalCompletion = true;\nvar _didIteratorError = false;\nvar _iteratorError = undefined;\n\ntry {\n\n\tfor (var _iterator = (0, _getIterator3.default)((0, _getOwnPropertyNames2.default)((0, _getPrototypeOf2.default)(FB))), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\tvar _key = _step.value;\n\n\t\tif (_key === 'constructor') continue;\n\t\tif (typeof FB[_key] === 'function') {\n\t\t\texports[_key] = FB[_key].bind(FB);\n\t\t} else {\n\t\t\texports[_key] = FB[_key];\n\t\t}\n\t}\n} catch (err) {\n\t_didIteratorError = true;\n\t_iteratorError = err;\n} finally {\n\ttry {\n\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t_iterator.return();\n\t\t}\n\t} finally {\n\t\tif (_didIteratorError) {\n\t\t\tthrow _iteratorError;\n\t\t}\n\t}\n}\n\nfor (var key in mod) {\n\texports[key] = mod[key];\n}\n\nObject.defineProperty(exports, '__esModule', { value: true });","// Copyright 2012 Joyent, Inc. All rights reserved.\n\nvar assert = require('assert-plus');\nvar util = require('util');\nvar utils = require('./utils');\n\n\n\n///--- Globals\n\nvar HASH_ALGOS = utils.HASH_ALGOS;\nvar PK_ALGOS = utils.PK_ALGOS;\nvar HttpSignatureError = utils.HttpSignatureError;\nvar InvalidAlgorithmError = utils.InvalidAlgorithmError;\nvar validateAlgorithm = utils.validateAlgorithm;\n\nvar State = {\n New: 0,\n Params: 1\n};\n\nvar ParamsState = {\n Name: 0,\n Quote: 1,\n Value: 2,\n Comma: 3\n};\n\n\n///--- Specific Errors\n\n\nfunction ExpiredRequestError(message) {\n HttpSignatureError.call(this, message, ExpiredRequestError);\n}\nutil.inherits(ExpiredRequestError, HttpSignatureError);\n\n\nfunction InvalidHeaderError(message) {\n HttpSignatureError.call(this, message, InvalidHeaderError);\n}\nutil.inherits(InvalidHeaderError, HttpSignatureError);\n\n\nfunction InvalidParamsError(message) {\n HttpSignatureError.call(this, message, InvalidParamsError);\n}\nutil.inherits(InvalidParamsError, HttpSignatureError);\n\n\nfunction MissingHeaderError(message) {\n HttpSignatureError.call(this, message, MissingHeaderError);\n}\nutil.inherits(MissingHeaderError, HttpSignatureError);\n\nfunction StrictParsingError(message) {\n HttpSignatureError.call(this, message, StrictParsingError);\n}\nutil.inherits(StrictParsingError, HttpSignatureError);\n\n///--- Exported API\n\nmodule.exports = {\n\n /**\n * Parses the 'Authorization' header out of an http.ServerRequest object.\n *\n * Note that this API will fully validate the Authorization header, and throw\n * on any error. It will not however check the signature, or the keyId format\n * as those are specific to your environment. You can use the options object\n * to pass in extra constraints.\n *\n * As a response object you can expect this:\n *\n * {\n * \"scheme\": \"Signature\",\n * \"params\": {\n * \"keyId\": \"foo\",\n * \"algorithm\": \"rsa-sha256\",\n * \"headers\": [\n * \"date\" or \"x-date\",\n * \"digest\"\n * ],\n * \"signature\": \"base64\"\n * },\n * \"signingString\": \"ready to be passed to crypto.verify()\"\n * }\n *\n * @param {Object} request an http.ServerRequest.\n * @param {Object} options an optional options object with:\n * - clockSkew: allowed clock skew in seconds (default 300).\n * - headers: required header names (def: date or x-date)\n * - algorithms: algorithms to support (default: all).\n * - strict: should enforce latest spec parsing\n * (default: false).\n * @return {Object} parsed out object (see above).\n * @throws {TypeError} on invalid input.\n * @throws {InvalidHeaderError} on an invalid Authorization header error.\n * @throws {InvalidParamsError} if the params in the scheme are invalid.\n * @throws {MissingHeaderError} if the params indicate a header not present,\n * either in the request headers from the params,\n * or not in the params from a required header\n * in options.\n * @throws {StrictParsingError} if old attributes are used in strict parsing\n * mode.\n * @throws {ExpiredRequestError} if the value of date or x-date exceeds skew.\n */\n parseRequest: function parseRequest(request, options) {\n assert.object(request, 'request');\n assert.object(request.headers, 'request.headers');\n if (options === undefined) {\n options = {};\n }\n if (options.headers === undefined) {\n options.headers = [request.headers['x-date'] ? 'x-date' : 'date'];\n }\n assert.object(options, 'options');\n assert.arrayOfString(options.headers, 'options.headers');\n assert.optionalFinite(options.clockSkew, 'options.clockSkew');\n\n var authzHeaderName = options.authorizationHeaderName || 'authorization';\n\n if (!request.headers[authzHeaderName]) {\n throw new MissingHeaderError('no ' + authzHeaderName + ' header ' +\n 'present in the request');\n }\n\n options.clockSkew = options.clockSkew || 300;\n\n\n var i = 0;\n var state = State.New;\n var substate = ParamsState.Name;\n var tmpName = '';\n var tmpValue = '';\n\n var parsed = {\n scheme: '',\n params: {},\n signingString: ''\n };\n\n var authz = request.headers[authzHeaderName];\n for (i = 0; i < authz.length; i++) {\n var c = authz.charAt(i);\n\n switch (Number(state)) {\n\n case State.New:\n if (c !== ' ') parsed.scheme += c;\n else state = State.Params;\n break;\n\n case State.Params:\n switch (Number(substate)) {\n\n case ParamsState.Name:\n var code = c.charCodeAt(0);\n // restricted name of A-Z / a-z\n if ((code >= 0x41 && code <= 0x5a) || // A-Z\n (code >= 0x61 && code <= 0x7a)) { // a-z\n tmpName += c;\n } else if (c === '=') {\n if (tmpName.length === 0)\n throw new InvalidHeaderError('bad param format');\n substate = ParamsState.Quote;\n } else {\n throw new InvalidHeaderError('bad param format');\n }\n break;\n\n case ParamsState.Quote:\n if (c === '\"') {\n tmpValue = '';\n substate = ParamsState.Value;\n } else {\n throw new InvalidHeaderError('bad param format');\n }\n break;\n\n case ParamsState.Value:\n if (c === '\"') {\n parsed.params[tmpName] = tmpValue;\n substate = ParamsState.Comma;\n } else {\n tmpValue += c;\n }\n break;\n\n case ParamsState.Comma:\n if (c === ',') {\n tmpName = '';\n substate = ParamsState.Name;\n } else {\n throw new InvalidHeaderError('bad param format');\n }\n break;\n\n default:\n throw new Error('Invalid substate');\n }\n break;\n\n default:\n throw new Error('Invalid substate');\n }\n\n }\n\n if (!parsed.params.headers || parsed.params.headers === '') {\n if (request.headers['x-date']) {\n parsed.params.headers = ['x-date'];\n } else {\n parsed.params.headers = ['date'];\n }\n } else {\n parsed.params.headers = parsed.params.headers.split(' ');\n }\n\n // Minimally validate the parsed object\n if (!parsed.scheme || parsed.scheme !== 'Signature')\n throw new InvalidHeaderError('scheme was not \"Signature\"');\n\n if (!parsed.params.keyId)\n throw new InvalidHeaderError('keyId was not specified');\n\n if (!parsed.params.algorithm)\n throw new InvalidHeaderError('algorithm was not specified');\n\n if (!parsed.params.signature)\n throw new InvalidHeaderError('signature was not specified');\n\n // Check the algorithm against the official list\n parsed.params.algorithm = parsed.params.algorithm.toLowerCase();\n try {\n validateAlgorithm(parsed.params.algorithm);\n } catch (e) {\n if (e instanceof InvalidAlgorithmError)\n throw (new InvalidParamsError(parsed.params.algorithm + ' is not ' +\n 'supported'));\n else\n throw (e);\n }\n\n // Build the signingString\n for (i = 0; i < parsed.params.headers.length; i++) {\n var h = parsed.params.headers[i].toLowerCase();\n parsed.params.headers[i] = h;\n\n if (h === 'request-line') {\n if (!options.strict) {\n /*\n * We allow headers from the older spec drafts if strict parsing isn't\n * specified in options.\n */\n parsed.signingString +=\n request.method + ' ' + request.url + ' HTTP/' + request.httpVersion;\n } else {\n /* Strict parsing doesn't allow older draft headers. */\n throw (new StrictParsingError('request-line is not a valid header ' +\n 'with strict parsing enabled.'));\n }\n } else if (h === '(request-target)') {\n parsed.signingString +=\n '(request-target): ' + request.method.toLowerCase() + ' ' +\n request.url;\n } else {\n var value = request.headers[h];\n if (value === undefined)\n throw new MissingHeaderError(h + ' was not in the request');\n parsed.signingString += h + ': ' + value;\n }\n\n if ((i + 1) < parsed.params.headers.length)\n parsed.signingString += '\\n';\n }\n\n // Check against the constraints\n var date;\n if (request.headers.date || request.headers['x-date']) {\n if (request.headers['x-date']) {\n date = new Date(request.headers['x-date']);\n } else {\n date = new Date(request.headers.date);\n }\n var now = new Date();\n var skew = Math.abs(now.getTime() - date.getTime());\n\n if (skew > options.clockSkew * 1000) {\n throw new ExpiredRequestError('clock skew of ' +\n (skew / 1000) +\n 's was greater than ' +\n options.clockSkew + 's');\n }\n }\n\n options.headers.forEach(function (hdr) {\n // Remember that we already checked any headers in the params\n // were in the request, so if this passes we're good.\n if (parsed.params.headers.indexOf(hdr.toLowerCase()) < 0)\n throw new MissingHeaderError(hdr + ' was not a signed header');\n });\n\n if (options.algorithms) {\n if (options.algorithms.indexOf(parsed.params.algorithm) === -1)\n throw new InvalidParamsError(parsed.params.algorithm +\n ' is not a supported algorithm');\n }\n\n parsed.algorithm = parsed.params.algorithm.toUpperCase();\n parsed.keyId = parsed.params.keyId;\n return parsed;\n }\n\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.version = exports.FacebookApiException = exports.Facebook = exports.FB = undefined;\n\nvar _getOwnPropertyDescriptor = require('babel-runtime/core-js/object/get-own-property-descriptor');\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nvar _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _symbol = require('babel-runtime/core-js/symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _stringify = require('babel-runtime/core-js/json/stringify');\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _create = require('babel-runtime/core-js/object/create');\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _desc, _value, _class;\n\nvar _anyPromise = require('any-promise');\n\nvar _anyPromise2 = _interopRequireDefault(_anyPromise);\n\nvar _coreDecorators = require('core-decorators');\n\nvar _debug = require('debug');\n\nvar _debug2 = _interopRequireDefault(_debug);\n\nvar _request = require('request');\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _url = require('url');\n\nvar _url2 = _interopRequireDefault(_url);\n\nvar _querystring = require('querystring');\n\nvar _querystring2 = _interopRequireDefault(_querystring);\n\nvar _crypto = require('crypto');\n\nvar _crypto2 = _interopRequireDefault(_crypto);\n\nvar _FacebookApiException = require('./FacebookApiException');\n\nvar _FacebookApiException2 = _interopRequireDefault(_FacebookApiException);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n\tvar desc = {};\n\tObject['ke' + 'ys'](descriptor).forEach(function (key) {\n\t\tdesc[key] = descriptor[key];\n\t});\n\tdesc.enumerable = !!desc.enumerable;\n\tdesc.configurable = !!desc.configurable;\n\n\tif ('value' in desc || desc.initializer) {\n\t\tdesc.writable = true;\n\t}\n\n\tdesc = decorators.slice().reverse().reduce(function (desc, decorator) {\n\t\treturn decorator(target, property, desc) || desc;\n\t}, desc);\n\n\tif (context && desc.initializer !== void 0) {\n\t\tdesc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n\t\tdesc.initializer = undefined;\n\t}\n\n\tif (desc.initializer === void 0) {\n\t\tObject['define' + 'Property'](target, property, desc);\n\t\tdesc = null;\n\t}\n\n\treturn desc;\n}\n\nvar _require = require('../package.json'),\n version = _require.version,\n debugReq = (0, _debug2.default)('fb:req'),\n debugSig = (0, _debug2.default)('fb:sig'),\n METHODS = ['get', 'post', 'delete', 'put'],\n toString = Object.prototype.toString,\n has = Object.prototype.hasOwnProperty,\n log = function log(d) {\n\t// todo\n\tconsole.log(d); // eslint-disable-line no-console\n},\n defaultOptions = (0, _assign2.default)((0, _create2.default)(null), {\n\tPromise: _anyPromise2.default,\n\taccessToken: null,\n\tappId: null,\n\tappSecret: null,\n\tappSecretProof: null,\n\tbeta: false,\n\tversion: 'v2.3',\n\ttimeout: null,\n\tscope: null,\n\tredirectUri: null,\n\tproxy: null,\n\tuserAgent: `thuzi_nodejssdk/${version}`\n}),\n isValidOption = function isValidOption(key) {\n\treturn has.call(defaultOptions, key);\n},\n stringifyParams = function stringifyParams(params) {\n\tvar data = {};\n\n\tfor (var key in params) {\n\t\tvar value = params[key];\n\t\tif (value && typeof value !== 'string') {\n\t\t\tvalue = (0, _stringify2.default)(value);\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\n\treturn _querystring2.default.stringify(data);\n},\n postParamData = function postParamData(params) {\n\tvar data = {},\n\t isFormData = false;\n\n\tfor (var key in params) {\n\t\tvar value = params[key];\n\t\tif (value && typeof value !== 'string') {\n\t\t\tvar _context;\n\n\t\t\tvar val = typeof value === 'object' && (_context = value, has).call(_context, 'value') && (_context = value, has).call(_context, 'options') ? value.value : value;\n\t\t\tif (Buffer.isBuffer(val)) {\n\t\t\t\tisFormData = true;\n\t\t\t} else if (typeof val.read === 'function' && typeof val.pipe === 'function' && val.readable) {\n\t\t\t\tisFormData = true;\n\t\t\t} else {\n\t\t\t\tvalue = (0, _stringify2.default)(value);\n\t\t\t}\n\t\t}\n\t\tif (value !== undefined) {\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\n\treturn { [isFormData ? 'formData' : 'form']: data };\n},\n getAppSecretProof = function getAppSecretProof(accessToken, appSecret) {\n\tvar hmac = _crypto2.default.createHmac('sha256', appSecret);\n\thmac.update(accessToken);\n\treturn hmac.digest('hex');\n},\n base64UrlDecode = function base64UrlDecode(str) {\n\tvar base64String = str.replace(/\\-/g, '+').replace(/_/g, '/');\n\tvar buffer = new Buffer(base64String, 'base64');\n\treturn buffer.toString('utf8');\n},\n nodeifyCallback = function nodeifyCallback(originalCallback) {\n\t// normalizes the callback parameters so that the\n\t// first parameter is always error and second is response\n\treturn function (res) {\n\t\tif (!res || res.error) {\n\t\t\toriginalCallback(new _FacebookApiException2.default(res));\n\t\t} else {\n\t\t\toriginalCallback(null, res);\n\t\t}\n\t};\n};\n\nvar _opts = (0, _symbol2.default)('opts');\nvar graph = (0, _symbol2.default)('graph');\nvar oauthRequest = (0, _symbol2.default)('oauthRequest');\n\nvar Facebook = (_class = function () {\n\tfunction Facebook(opts, _internalInherit) {\n\t\t(0, _classCallCheck3.default)(this, Facebook);\n\n\t\tif (_internalInherit instanceof Facebook) {\n\t\t\tthis[_opts] = (0, _create2.default)(_internalInherit[_opts]);\n\t\t} else {\n\t\t\tthis[_opts] = (0, _create2.default)(defaultOptions);\n\t\t}\n\n\t\tif (typeof opts === 'object') {\n\t\t\tthis.options(opts);\n\t\t}\n\t}\n\n\t/**\n *\n * @access public\n * @param path {String} the url path\n * @param method {String} the http method (default: `\"GET\"`)\n * @param params {Object} the parameters for the query\n * @param cb {Function} the callback function to handle the response\n * @return {Promise|undefined}\n */\n\n\n\t(0, _createClass3.default)(Facebook, [{\n\t\tkey: 'api',\n\t\tvalue: function api() {\n\t\t\tfor (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\targs[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\t//\n\t\t\t// FB.api('/platform', function(response) {\n\t\t\t// console.log(response.company_overview);\n\t\t\t// });\n\t\t\t//\n\t\t\t// FB.api('/platform/posts', { limit: 3 }, function(response) {\n\t\t\t// });\n\t\t\t//\n\t\t\t// FB.api('/me/feed', 'post', { message: body }, function(response) {\n\t\t\t// if(!response || response.error) {\n\t\t\t// console.log('Error occured');\n\t\t\t// } else {\n\t\t\t// console.log('Post ID:' + response.id);\n\t\t\t// }\n\t\t\t// });\n\t\t\t//\n\t\t\t// var postId = '1234567890';\n\t\t\t// FB.api(postId, 'delete', function(response) {\n\t\t\t// if(!response || response.error) {\n\t\t\t// console.log('Error occurred');\n\t\t\t// } else {\n\t\t\t// console.log('Post was deleted');\n\t\t\t// }\n\t\t\t// });\n\t\t\t//\n\t\t\t//\n\n\t\t\tvar ret = void 0;\n\n\t\t\tif (args.length > 0 && typeof args[args.length - 1] !== 'function') {\n\t\t\t\tvar _Promise = this.options('Promise');\n\t\t\t\tret = new _Promise(function (resolve, reject) {\n\t\t\t\t\targs.push(function (res) {\n\t\t\t\t\t\tif (!res || res.error) {\n\t\t\t\t\t\t\treject(new _FacebookApiException2.default(res));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis[graph].apply(this, args);\n\n\t\t\treturn ret;\n\t\t}\n\n\t\t/**\n *\n * @access public\n * @param path {String} the url path\n * @param method {String} the http method (default: `\"GET\"`)\n * @param params {Object} the parameters for the query\n * @param cb {Function} the callback function to handle the error and response\n */\n\t\t// this method does not exist in fb js sdk\n\n\t}, {\n\t\tkey: 'napi',\n\t\tvalue: function napi() {\n\t\t\tfor (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t\t\t\targs[_key2] = arguments[_key2];\n\t\t\t}\n\n\t\t\t//\n\t\t\t// normalizes to node style callback so can use the sdk with async control flow node libraries\n\t\t\t// first parameters: error (always type of FacebookApiException)\n\t\t\t// second callback parameter: response\n\t\t\t//\n\t\t\t// FB.napi('/platform', function(err, response) {\n\t\t\t// console.log(response.company_overview);\n\t\t\t// });\n\t\t\t//\n\t\t\t// FB.napi('/platform/posts', { limit: 3 }, function(err, response) {\n\t\t\t// });\n\t\t\t//\n\t\t\t// FB.napi('/me/feed', 'post', { message: body }, function(error, response) {\n\t\t\t// if(error) {\n\t\t\t// console.log('Error occured');\n\t\t\t// } else {\n\t\t\t// console.log('Post ID:' + response.id);\n\t\t\t// }\n\t\t\t// });\n\t\t\t//\n\t\t\t// var postId = '1234567890';\n\t\t\t// FB.napi(postId, 'delete', function(error, response) {\n\t\t\t// if(error) {\n\t\t\t// console.log('Error occurred');\n\t\t\t// } else {\n\t\t\t// console.log('Post was deleted');\n\t\t\t// }\n\t\t\t// });\n\t\t\t//\n\t\t\t//\n\n\t\t\tif (args.length > 0) {\n\t\t\t\tvar originalCallback = args.pop();\n\t\t\t\targs.push(typeof originalCallback === 'function' ? nodeifyCallback(originalCallback) : originalCallback);\n\t\t\t}\n\n\t\t\tthis.api.apply(this, args);\n\t\t}\n\n\t\t/**\n *\n * Make a api call to Graph server.\n *\n * Except the path, all arguments to this function are optiona. So any of\n * these are valid:\n *\n * FB.api('/me') // throw away the response\n * FB.api('/me', function(r) { console.log(r) })\n * FB.api('/me', { fields: 'email' }); // throw away response\n * FB.api('/me', { fields: 'email' }, function(r) { console.log(r) });\n * FB.api('/123456789', 'delete', function(r) { console.log(r) } );\n * FB.api(\n * '/me/feed',\n * 'post',\n * { body: 'hi there' },\n * function(r) { console.log(r) }\n * );\n *\n */\n\n\t}, {\n\t\tkey: graph,\n\t\tvalue: function value(path, next) {\n\t\t\tvar method, params, cb;\n\n\t\t\tif (typeof path !== 'string') {\n\t\t\t\tthrow new Error(`Path is of type ${typeof path}, not string`);\n\t\t\t}\n\n\t\t\tfor (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n\t\t\t\targs[_key3 - 2] = arguments[_key3];\n\t\t\t}\n\n\t\t\twhile (next) {\n\t\t\t\tvar type = typeof next;\n\t\t\t\tif (type === 'string' && !method) {\n\t\t\t\t\tmethod = next.toLowerCase();\n\t\t\t\t} else if (type === 'function' && !cb) {\n\t\t\t\t\tcb = next;\n\t\t\t\t} else if (type === 'object' && !params) {\n\t\t\t\t\tparams = next;\n\t\t\t\t} else {\n\t\t\t\t\tlog('Invalid argument passed to FB.api(): ' + next);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tnext = args.shift();\n\t\t\t}\n\n\t\t\tmethod = method || 'get';\n\t\t\tparams = params || {};\n\n\t\t\t// remove prefix slash if one is given, as it's already in the base url\n\t\t\tif (path[0] === '/') {\n\t\t\t\tpath = path.substr(1);\n\t\t\t}\n\n\t\t\tif (METHODS.indexOf(method) < 0) {\n\t\t\t\tlog('Invalid method passed to FB.api(): ' + method);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis[oauthRequest](path, method, params, cb);\n\t\t}\n\n\t\t/**\n * Add the oauth parameter, and fire of a request.\n *\n * @access private\n * @param path {String} the request path\n * @param method {String} the http method\n * @param params {Object} the parameters for the query\n * @param cb {Function} the callback function to handle the response\n */\n\n\t}, {\n\t\tkey: oauthRequest,\n\t\tvalue: function value(path, method, params, cb) {\n\t\t\tvar uri, parsedUri, parsedQuery, formOptions, requestOptions, pool;\n\n\t\t\tcb = cb || function () {};\n\t\t\tif (!params.access_token) {\n\t\t\t\tif (this.options('accessToken')) {\n\t\t\t\t\tparams.access_token = this.options('accessToken');\n\t\t\t\t\tif (this.options('appSecret')) {\n\t\t\t\t\t\tparams.appsecret_proof = this.options('appSecretProof');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (!params.appsecret_proof && this.options('appSecret')) {\n\t\t\t\tparams.appsecret_proof = getAppSecretProof(params.access_token, this.options('appSecret'));\n\t\t\t}\n\n\t\t\tif (!/^v\\d+\\.\\d+\\//.test(path)) {\n\t\t\t\tpath = this.options('version') + '/' + path;\n\t\t\t}\n\t\t\turi = `https://graph.${this.options('beta') ? 'beta.' : ''}facebook.com/${path}`;\n\n\t\t\tparsedUri = _url2.default.parse(uri);\n\t\t\tdelete parsedUri.search;\n\t\t\tparsedQuery = _querystring2.default.parse(parsedUri.query);\n\n\t\t\tif (method === 'post') {\n\t\t\t\tif (params.access_token) {\n\t\t\t\t\tparsedQuery.access_token = params.access_token;\n\t\t\t\t\tdelete params.access_token;\n\n\t\t\t\t\tif (params.appsecret_proof) {\n\t\t\t\t\t\tparsedQuery.appsecret_proof = params.appsecret_proof;\n\t\t\t\t\t\tdelete params.appsecret_proof;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tformOptions = postParamData(params);\n\t\t\t} else {\n\t\t\t\tfor (var key in params) {\n\t\t\t\t\tparsedQuery[key] = params[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tparsedUri.search = stringifyParams(parsedQuery);\n\t\t\turi = _url2.default.format(parsedUri);\n\n\t\t\tpool = { maxSockets: this.options('maxSockets') || Number(process.env.MAX_SOCKETS) || 5 };\n\t\t\trequestOptions = (0, _extends3.default)({\n\t\t\t\tmethod,\n\t\t\t\turi\n\t\t\t}, formOptions, {\n\t\t\t\tpool\n\t\t\t});\n\t\t\tif (this.options('proxy')) {\n\t\t\t\trequestOptions['proxy'] = this.options('proxy');\n\t\t\t}\n\t\t\tif (this.options('timeout')) {\n\t\t\t\trequestOptions['timeout'] = this.options('timeout');\n\t\t\t}\n\t\t\tif (this.options('userAgent')) {\n\t\t\t\trequestOptions['headers'] = {\n\t\t\t\t\t'User-Agent': this.options('userAgent')\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdebugReq(method.toUpperCase() + ' ' + uri);\n\t\t\t(0, _request2.default)(requestOptions, function (error, response, body) {\n\t\t\t\tif (error !== null) {\n\t\t\t\t\tif (error === Object(error) && has.call(error, 'error')) {\n\t\t\t\t\t\treturn cb(error);\n\t\t\t\t\t}\n\t\t\t\t\treturn cb({ error });\n\t\t\t\t}\n\n\t\t\t\tvar json = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tjson = JSON.parse(body);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// sometimes FB is has API errors that return HTML and a message\n\t\t\t\t\t// of \"Sorry, something went wrong\". These are infrequent and unpredictable but\n\t\t\t\t\t// let's not let them blow up our application.\n\t\t\t\t\tjson = {\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tcode: 'JSONPARSE',\n\t\t\t\t\t\t\tError: ex\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcb(json);\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @access public\n * @param signedRequest {String} the signed request value\n * @param appSecret {String} the application secret\n * @return {Object} the parsed signed request or undefined if failed\n *\n * throws error if appSecret is not defined\n *\n * FB.parseSignedRequest('signedRequest', 'appSecret')\n * FB.parseSignedRequest('signedRequest') // will use appSecret from options('appSecret')\n *\n */\n\n\t}, {\n\t\tkey: 'parseSignedRequest',\n\t\tvalue: function parseSignedRequest(signedRequest) {\n\t\t\tvar _context2;\n\n\t\t\tfor (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t\t\t\targs[_key4 - 1] = arguments[_key4];\n\t\t\t}\n\n\t\t\t// this method does not exist in fb js sdk\n\t\t\tvar appSecret = args.shift() || this.options('appSecret'),\n\t\t\t split,\n\t\t\t encodedSignature,\n\t\t\t encodedEnvelope,\n\t\t\t envelope,\n\t\t\t hmac,\n\t\t\t base64Digest,\n\t\t\t base64UrlDigest;\n\n\t\t\tif (!signedRequest) {\n\t\t\t\tdebugSig('invalid signedRequest');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!appSecret) {\n\t\t\t\tthrow new Error('appSecret required');\n\t\t\t}\n\n\t\t\tsplit = signedRequest.split('.');\n\n\t\t\tif (split.length !== 2) {\n\t\t\t\tdebugSig('invalid signedRequest');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar _split = split;\n\n\t\t\tvar _split2 = (0, _slicedToArray3.default)(_split, 2);\n\n\t\t\tencodedSignature = _split2[0];\n\t\t\tencodedEnvelope = _split2[1];\n\n\n\t\t\tif (!encodedSignature || !encodedEnvelope) {\n\t\t\t\tdebugSig('invalid signedRequest');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tenvelope = JSON.parse(base64UrlDecode(encodedEnvelope));\n\t\t\t} catch (ex) {\n\t\t\t\tdebugSig('encodedEnvelope is not a valid base64 encoded JSON');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!(envelope && (_context2 = envelope, has).call(_context2, 'algorithm') && envelope.algorithm.toUpperCase() === 'HMAC-SHA256')) {\n\t\t\t\tdebugSig(envelope.algorithm + ' is not a supported algorithm, must be one of [HMAC-SHA256]');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thmac = _crypto2.default.createHmac('sha256', appSecret);\n\t\t\thmac.update(encodedEnvelope);\n\t\t\tbase64Digest = hmac.digest('base64');\n\n\t\t\t// remove Base64 padding\n\t\t\tbase64UrlDigest = base64Digest.replace(/={1,3}$/, '');\n\n\t\t\t// Replace illegal characters\n\t\t\tbase64UrlDigest = base64UrlDigest.replace(/\\+/g, '-').replace(/\\//g, '_');\n\n\t\t\tif (base64UrlDigest !== encodedSignature) {\n\t\t\t\tdebugSig('invalid signature');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn envelope;\n\t\t}\n\n\t\t/**\n *\n * @access public\n * @param opt {Object} the parameters for appId and scope\n */\n\n\t}, {\n\t\tkey: 'getLoginUrl',\n\t\tvalue: function getLoginUrl() {\n\t\t\tvar opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\t\t\t// this method does not exist in fb js sdk\n\t\t\tvar clientId = opt.appId || opt.client_id || this.options('appId'),\n\t\t\t redirectUri = opt.redirectUri || opt.redirect_uri || this.options('redirectUri') || 'https://www.facebook.com/connect/login_success.html',\n\t\t\t scope = opt.scope || this.options('scope'),\n\t\t\t display = opt.display,\n\t\t\t state = opt.state,\n\t\t\t scopeQuery = '',\n\t\t\t displayQuery = '',\n\t\t\t stateQuery = '';\n\n\t\t\tif (!clientId) {\n\t\t\t\tthrow new Error('client_id required');\n\t\t\t}\n\n\t\t\tif (scope) {\n\t\t\t\tscopeQuery = '&scope=' + encodeURIComponent(scope);\n\t\t\t}\n\n\t\t\tif (display) {\n\t\t\t\tdisplayQuery = '&display=' + display;\n\t\t\t}\n\n\t\t\tif (state) {\n\t\t\t\tstateQuery = '&state=' + state;\n\t\t\t}\n\n\t\t\treturn `https://www.facebook.com/${this.options('version')}/dialog/oauth` + '?response_type=' + (opt.responseType || opt.response_type || 'code') + scopeQuery + displayQuery + stateQuery + '&redirect_uri=' + encodeURIComponent(redirectUri) + '&client_id=' + clientId;\n\t\t}\n\t}, {\n\t\tkey: 'options',\n\t\tvalue: function options(keyOrOptions) {\n\t\t\t// this method does not exist in the fb js sdk\n\t\t\tvar o = this[_opts];\n\t\t\tif (!keyOrOptions) {\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\tif (toString.call(keyOrOptions) === '[object String]') {\n\t\t\t\treturn isValidOption(keyOrOptions) && keyOrOptions in o ? o[keyOrOptions] : null;\n\t\t\t}\n\t\t\tfor (var key in o) {\n\t\t\t\tif (isValidOption(key) && key in o && has.call(keyOrOptions, key)) {\n\t\t\t\t\to[key] = keyOrOptions[key];\n\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\tcase 'appSecret':\n\t\t\t\t\t\tcase 'accessToken':\n\t\t\t\t\t\t\to.appSecretProof = o.appSecret && o.accessToken ? getAppSecretProof(o.accessToken, o.appSecret) : null;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Return a new instance of Facebook with a different set of options\n * that inherit unset options from the current instance.\n * @access public\n * @param {Object} [opts] Options to set\n */\n\n\t}, {\n\t\tkey: 'extend',\n\t\tvalue: function extend(opts) {\n\t\t\treturn new Facebook(opts, this);\n\t\t}\n\t}, {\n\t\tkey: 'getAccessToken',\n\t\tvalue: function getAccessToken() {\n\t\t\treturn this.options('accessToken');\n\t\t}\n\t}, {\n\t\tkey: 'setAccessToken',\n\t\tvalue: function setAccessToken(accessToken) {\n\t\t\t// this method does not exist in fb js sdk\n\t\t\tthis.options({ accessToken });\n\t\t}\n\t}, {\n\t\tkey: 'withAccessToken',\n\t\tvalue: function withAccessToken(accessToken) {\n\t\t\treturn this.extend({ accessToken });\n\t\t}\n\t}]);\n\treturn Facebook;\n}(), (_applyDecoratedDescriptor(_class.prototype, 'api', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'api'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'napi', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'napi'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'parseSignedRequest', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'parseSignedRequest'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'getLoginUrl', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'getLoginUrl'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'options', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'options'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'extend', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'extend'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'getAccessToken', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'getAccessToken'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'setAccessToken', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'setAccessToken'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'withAccessToken', [_coreDecorators.autobind], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'withAccessToken'), _class.prototype)), _class);\nvar FB = exports.FB = new Facebook();\nexports.default = FB;\nexports.Facebook = Facebook;\nexports.FacebookApiException = _FacebookApiException2.default;\nexports.version = version;","var Ajv = require('ajv')\nvar HARError = require('./error')\nvar schemas = require('har-schema')\n\nvar ajv\n\nfunction createAjvInstance () {\n var ajv = new Ajv({\n allErrors: true\n })\n ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'))\n ajv.addSchema(schemas)\n\n return ajv\n}\n\nfunction validate (name, data) {\n data = data || {}\n\n // validator config\n ajv = ajv || createAjvInstance()\n\n var validate = ajv.getSchema(name + '.json')\n\n return new Promise(function (resolve, reject) {\n var valid = validate(data)\n\n !valid ? reject(new HARError(validate.errors)) : resolve(data)\n })\n}\n\nexports.afterRequest = function (data) {\n return validate('afterRequest', data)\n}\n\nexports.beforeRequest = function (data) {\n return validate('beforeRequest', data)\n}\n\nexports.browser = function (data) {\n return validate('browser', data)\n}\n\nexports.cache = function (data) {\n return validate('cache', data)\n}\n\nexports.content = function (data) {\n return validate('content', data)\n}\n\nexports.cookie = function (data) {\n return validate('cookie', data)\n}\n\nexports.creator = function (data) {\n return validate('creator', data)\n}\n\nexports.entry = function (data) {\n return validate('entry', data)\n}\n\nexports.har = function (data) {\n return validate('har', data)\n}\n\nexports.header = function (data) {\n return validate('header', data)\n}\n\nexports.log = function (data) {\n return validate('log', data)\n}\n\nexports.page = function (data) {\n return validate('page', data)\n}\n\nexports.pageTimings = function (data) {\n return validate('pageTimings', data)\n}\n\nexports.postData = function (data) {\n return validate('postData', data)\n}\n\nexports.query = function (data) {\n return validate('query', data)\n}\n\nexports.request = function (data) {\n return validate('request', data)\n}\n\nexports.response = function (data) {\n return validate('response', data)\n}\n\nexports.timings = function (data) {\n return validate('timings', data)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","/*\n * extsprintf.js: extended POSIX-style sprintf\n */\n\nvar mod_assert = require('assert');\nvar mod_util = require('util');\n\n/*\n * Public interface\n */\nexports.sprintf = jsSprintf;\nexports.printf = jsPrintf;\nexports.fprintf = jsFprintf;\n\n/*\n * Stripped down version of s[n]printf(3c). We make a best effort to throw an\n * exception when given a format string we don't understand, rather than\n * ignoring it, so that we won't break existing programs if/when we go implement\n * the rest of this.\n *\n * This implementation currently supports specifying\n *\t- field alignment ('-' flag),\n * \t- zero-pad ('0' flag)\n *\t- always show numeric sign ('+' flag),\n *\t- field width\n *\t- conversions for strings, decimal integers, and floats (numbers).\n *\t- argument size specifiers. These are all accepted but ignored, since\n *\t Javascript has no notion of the physical size of an argument.\n *\n * Everything else is currently unsupported, most notably precision, unsigned\n * numbers, non-decimal numbers, and characters.\n */\nfunction jsSprintf(fmt)\n{\n\tvar regex = [\n\t '([^%]*)',\t\t\t\t/* normal text */\n\t '%',\t\t\t\t/* start of format */\n\t '([\\'\\\\-+ #0]*?)',\t\t\t/* flags (optional) */\n\t '([1-9]\\\\d*)?',\t\t\t/* width (optional) */\n\t '(\\\\.([1-9]\\\\d*))?',\t\t/* precision (optional) */\n\t '[lhjztL]*?',\t\t\t/* length mods (ignored) */\n\t '([diouxXfFeEgGaAcCsSp%jr])'\t/* conversion */\n\t].join('');\n\n\tvar re = new RegExp(regex);\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\tvar flags, width, precision, conversion;\n\tvar left, pad, sign, arg, match;\n\tvar ret = '';\n\tvar argn = 1;\n\n\tmod_assert.equal('string', typeof (fmt));\n\n\twhile ((match = re.exec(fmt)) !== null) {\n\t\tret += match[1];\n\t\tfmt = fmt.substring(match[0].length);\n\n\t\tflags = match[2] || '';\n\t\twidth = match[3] || 0;\n\t\tprecision = match[4] || '';\n\t\tconversion = match[6];\n\t\tleft = false;\n\t\tsign = false;\n\t\tpad = ' ';\n\n\t\tif (conversion == '%') {\n\t\t\tret += '%';\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (args.length === 0)\n\t\t\tthrow (new Error('too few args to sprintf'));\n\n\t\targ = args.shift();\n\t\targn++;\n\n\t\tif (flags.match(/[\\' #]/))\n\t\t\tthrow (new Error(\n\t\t\t 'unsupported flags: ' + flags));\n\n\t\tif (precision.length > 0)\n\t\t\tthrow (new Error(\n\t\t\t 'non-zero precision not supported'));\n\n\t\tif (flags.match(/-/))\n\t\t\tleft = true;\n\n\t\tif (flags.match(/0/))\n\t\t\tpad = '0';\n\n\t\tif (flags.match(/\\+/))\n\t\t\tsign = true;\n\n\t\tswitch (conversion) {\n\t\tcase 's':\n\t\t\tif (arg === undefined || arg === null)\n\t\t\t\tthrow (new Error('argument ' + argn +\n\t\t\t\t ': attempted to print undefined or null ' +\n\t\t\t\t 'as a string'));\n\t\t\tret += doPad(pad, width, left, arg.toString());\n\t\t\tbreak;\n\n\t\tcase 'd':\n\t\t\targ = Math.floor(arg);\n\t\t\t/*jsl:fallthru*/\n\t\tcase 'f':\n\t\t\tsign = sign && arg > 0 ? '+' : '';\n\t\t\tret += sign + doPad(pad, width, left,\n\t\t\t arg.toString());\n\t\t\tbreak;\n\n\t\tcase 'x':\n\t\t\tret += doPad(pad, width, left, arg.toString(16));\n\t\t\tbreak;\n\n\t\tcase 'j': /* non-standard */\n\t\t\tif (width === 0)\n\t\t\t\twidth = 10;\n\t\t\tret += mod_util.inspect(arg, false, width);\n\t\t\tbreak;\n\n\t\tcase 'r': /* non-standard */\n\t\t\tret += dumpException(arg);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tthrow (new Error('unsupported conversion: ' +\n\t\t\t conversion));\n\t\t}\n\t}\n\n\tret += fmt;\n\treturn (ret);\n}\n\nfunction jsPrintf() {\n\tvar args = Array.prototype.slice.call(arguments);\n\targs.unshift(process.stdout);\n\tjsFprintf.apply(null, args);\n}\n\nfunction jsFprintf(stream) {\n\tvar args = Array.prototype.slice.call(arguments, 1);\n\treturn (stream.write(jsSprintf.apply(this, args)));\n}\n\nfunction doPad(chr, width, left, str)\n{\n\tvar ret = str;\n\n\twhile (ret.length < width) {\n\t\tif (left)\n\t\t\tret += chr;\n\t\telse\n\t\t\tret = chr + ret;\n\t}\n\n\treturn (ret);\n}\n\n/*\n * This function dumps long stack traces for exceptions having a cause() method.\n * See node-verror for an example.\n */\nfunction dumpException(ex)\n{\n\tvar ret;\n\n\tif (!(ex instanceof Error))\n\t\tthrow (new Error(jsSprintf('invalid type for %%r: %j', ex)));\n\n\t/* Note that V8 prepends \"ex.stack\" with ex.toString(). */\n\tret = 'EXCEPTION: ' + ex.constructor.name + ': ' + ex.stack;\n\n\tif (ex.cause && typeof (ex.cause) === 'function') {\n\t\tvar cex = ex.cause();\n\t\tif (cex) {\n\t\t\tret += '\\nCaused by: ' + dumpException(cex);\n\t\t}\n\t}\n\n\treturn (ret);\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _create = require('babel-runtime/core-js/object/create');\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _stringify = require('babel-runtime/core-js/json/stringify');\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nexports.default = FacebookApiException;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction FacebookApiException(res) {\n\tthis.name = 'FacebookApiException';\n\tthis.message = (0, _stringify2.default)(res || {});\n\tthis.response = res;\n\tError.captureStackTrace(this, this.constructor.name);\n}\n\nFacebookApiException.prototype = (0, _create2.default)(Error.prototype, {\n\tconstructor: {\n\t\tvalue: FacebookApiException,\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tconfigurable: true\n\t}\n});","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// Copyright 2012 Joyent, Inc. All rights reserved.\n\nvar assert = require('assert-plus');\nvar sshpk = require('sshpk');\nvar util = require('util');\n\nvar HASH_ALGOS = {\n 'sha1': true,\n 'sha256': true,\n 'sha512': true\n};\n\nvar PK_ALGOS = {\n 'rsa': true,\n 'dsa': true,\n 'ecdsa': true\n};\n\nfunction HttpSignatureError(message, caller) {\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, caller || HttpSignatureError);\n\n this.message = message;\n this.name = caller.name;\n}\nutil.inherits(HttpSignatureError, Error);\n\nfunction InvalidAlgorithmError(message) {\n HttpSignatureError.call(this, message, InvalidAlgorithmError);\n}\nutil.inherits(InvalidAlgorithmError, HttpSignatureError);\n\nfunction validateAlgorithm(algorithm) {\n var alg = algorithm.toLowerCase().split('-');\n\n if (alg.length !== 2) {\n throw (new InvalidAlgorithmError(alg[0].toUpperCase() + ' is not a ' +\n 'valid algorithm'));\n }\n\n if (alg[0] !== 'hmac' && !PK_ALGOS[alg[0]]) {\n throw (new InvalidAlgorithmError(alg[0].toUpperCase() + ' type keys ' +\n 'are not supported'));\n }\n\n if (!HASH_ALGOS[alg[1]]) {\n throw (new InvalidAlgorithmError(alg[1].toUpperCase() + ' is not a ' +\n 'supported hash algorithm'));\n }\n\n return (alg);\n}\n\n///--- API\n\nmodule.exports = {\n\n HASH_ALGOS: HASH_ALGOS,\n PK_ALGOS: PK_ALGOS,\n\n HttpSignatureError: HttpSignatureError,\n InvalidAlgorithmError: InvalidAlgorithmError,\n\n validateAlgorithm: validateAlgorithm,\n\n /**\n * Converts an OpenSSH public key (rsa only) to a PKCS#8 PEM file.\n *\n * The intent of this module is to interoperate with OpenSSL only,\n * specifically the node crypto module's `verify` method.\n *\n * @param {String} key an OpenSSH public key.\n * @return {String} PEM encoded form of the RSA public key.\n * @throws {TypeError} on bad input.\n * @throws {Error} on invalid ssh key formatted data.\n */\n sshKeyToPEM: function sshKeyToPEM(key) {\n assert.string(key, 'ssh_key');\n\n var k = sshpk.parseKey(key, 'ssh');\n return (k.toString('pem'));\n },\n\n\n /**\n * Generates an OpenSSH fingerprint from an ssh public key.\n *\n * @param {String} key an OpenSSH public key.\n * @return {String} key fingerprint.\n * @throws {TypeError} on bad input.\n * @throws {Error} if what you passed doesn't look like an ssh public key.\n */\n fingerprint: function fingerprint(key) {\n assert.string(key, 'ssh_key');\n\n var k = sshpk.parseKey(key, 'ssh');\n return (k.fingerprint('md5').toString('hex'));\n },\n\n /**\n * Converts a PKGCS#8 PEM file to an OpenSSH public key (rsa)\n *\n * The reverse of the above function.\n */\n pemToRsaSSHKey: function pemToRsaSSHKey(pem, comment) {\n assert.equal('string', typeof (pem), 'typeof pem');\n\n var k = sshpk.parseKey(pem, 'pem');\n k.comment = comment;\n return (k.toString('ssh'));\n }\n};\n"],"sourceRoot":""}