{"version":3,"sources":["webpack:///./node_modules/socket.io-parser/node_modules/debug/src/debug.js","webpack:///./node_modules/engine.io-parser/lib/keys.js","webpack:///./node_modules/has-cors/index.js","webpack:///./node_modules/blob/index.js","webpack:///./node_modules/engine.io-client/lib/xmlhttprequest.js","webpack:///./node_modules/dayjs/plugin/isSameOrAfter.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-xhr.js","webpack:///./node_modules/engine.io-client/lib/transports/polling.js","webpack:///./node_modules/socket.io-client/lib/url.js","webpack:///./node_modules/engine.io-parser/lib/browser.js","webpack:///./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./node_modules/socket.io-client/lib/socket.js","webpack:///./node_modules/socket.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/debug.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/component-inherit/index.js","webpack:///./node_modules/custom-event-polyfill/polyfill.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/after/index.js","webpack:///./node_modules/socket.io-parser/node_modules/ms/index.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/dayjs/plugin/isBetween.js","webpack:///./node_modules/socket.io-parser/binary.js","webpack:///./node_modules/socket.io-client/lib/index.js","webpack:///./node_modules/socket.io-parser/is-buffer.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/socket.io-parser/node_modules/debug/src/browser.js","webpack:///./node_modules/parseuri/index.js","webpack:///./node_modules/engine.io-client/lib/transports/index.js","webpack:///./node_modules/engine.io-client/lib/socket.js","webpack:///./node_modules/socket.io-client/node_modules/ms/index.js","webpack:///./node_modules/socket.io-client/lib/manager.js","webpack:///./node_modules/engine.io-client/lib/transports/websocket.js","webpack:///./node_modules/to-array/index.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./node_modules/engine.io-parser/lib/utf8.js","webpack:///./node_modules/parseqs/index.js","webpack:///./node_modules/engine.io-client/lib/globalThis.browser.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/socket.io-parser/index.js","webpack:///./node_modules/arraybuffer.slice/index.js","webpack:///./node_modules/engine.io-client/node_modules/ms/index.js","webpack:///./node_modules/component-bind/index.js","webpack:///./node_modules/engine.io-client/lib/index.js","webpack:///./node_modules/socket.io-client/node_modules/debug/src/debug.js","webpack:///./node_modules/has-binary2/node_modules/isarray/index.js","webpack:///./node_modules/yeast/index.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/socket.io-parser/node_modules/isarray/index.js","webpack:///./node_modules/socket.io-client/lib/on.js","webpack:///./node_modules/has-binary2/index.js","webpack:///./node_modules/engine.io-client/lib/transport.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/backo2/index.js"],"names":["createDebug","namespace","prevTime","debug","enabled","self","curr","Date","ms","diff","prev","args","Array","arguments","length","i","exports","coerce","unshift","index","replace","match","format","formatter","formatters","val","call","splice","formatArgs","logFn","log","console","bind","apply","useColors","color","hash","charCodeAt","colors","Math","abs","selectColor","destroy","init","instances","push","indexOf","this","module","Error","stack","message","disable","enable","namespaces","save","names","skips","split","len","RegExp","substr","instance","name","test","humanize","Object","keys","obj","arr","has","prototype","hasOwnProperty","XMLHttpRequest","err","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","Blob","size","e","blobSupportsArrayBufferView","Uint8Array","blobBuilderSupported","append","getBlob","mapArrayBufferViews","ary","map","chunk","buffer","ArrayBuffer","buf","byteLength","copy","set","byteOffset","BlobBuilderConstructor","options","bb","forEach","part","type","BlobConstructor","hasCORS","globalThis","opts","xdomain","xscheme","enablesXDR","XDomainRequest","concat","join","t","isSameOrAfter","isSame","isAfter","Polling","Emitter","inherit","empty","XHR","requestTimeout","extraHeaders","location","isSSL","protocol","port","xd","hostname","xs","secure","Request","method","uri","async","data","undefined","agent","isBinary","supportsBinary","withCredentials","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","create","request","doWrite","fn","req","on","onError","sendXhr","doPoll","onData","pollXhr","xhr","open","setDisableHeaderCheck","setRequestHeader","timeout","hasXDR","onload","onLoad","onerror","responseText","onreadystatechange","readyState","contentType","getResponseHeader","responseType","status","setTimeout","send","document","requestsCount","requests","onSuccess","emit","cleanup","fromError","abort","response","attachEvent","unloadHandler","addEventListener","Transport","parseqs","parser","yeast","hasXHR2","forceBase64","doOpen","poll","pause","onPause","polling","writable","total","once","decodePayload","socket","binaryType","packet","onOpen","onClose","onPacket","doClose","close","write","packets","callbackfn","encodePayload","query","schema","timestampRequests","timestampParam","sid","b64","encode","Number","path","parseuri","loc","host","charAt","id","href","base64encoder","hasBinary","sliceBuffer","after","utf8","isAndroid","navigator","userAgent","isPhantomJS","dontSendBlobs","ping","pong","upgrade","noop","packetslist","each","done","result","next","eachWithIndex","el","cb","error","msg","encodePacket","utf8encode","callback","encodeBase64Packet","contentArray","resultBuffer","encodeArrayBuffer","fr","FileReader","readAsArrayBuffer","encodeBlobAsArrayBuffer","blob","encodeBlob","base64","encodeBase64Object","encoded","String","strict","b64data","readAsDataURL","fromCharCode","typed","basic","btoa","decodePacket","utf8decode","decodeBase64Packet","decode","tryDecode","substring","rest","encodePayloadAsBlob","encodePayloadAsArrayBuffer","doneCallback","setLengthHeader","results","decodePayloadAsBinary","n","l","chr","encodedPackets","totalLength","reduce","acc","p","toString","resultArray","bufferIndex","isString","ab","view","lenStr","parseInt","binaryIdentifier","lengthAry","bufferTail","buffers","tailArray","msgLength","chars","arraybuffer","bytes","encoded1","encoded2","encoded3","encoded4","bufferLength","toArray","hasBin","Socket","events","connect","connect_error","connect_timeout","connecting","disconnect","reconnect","reconnect_attempt","reconnect_failed","reconnect_error","reconnecting","io","nsp","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","autoConnect","subEvents","subs","onopen","ev","binary","BINARY_EVENT","EVENT","compress","pop","CONNECT","onclose","reason","onpacket","sameNamespace","rootNamespaceError","ERROR","onconnect","onevent","ACK","BINARY_ACK","onack","DISCONNECT","ondisconnect","ack","sent","emitBuffered","load","r","storage","process","DEBUG","Function","c","lastC","removeItem","window","toLowerCase","documentElement","style","WebkitAppearance","firebug","exception","table","$1","chrome","local","localStorage","localstorage","j","v","JSON","stringify","a","b","constructor","ce","CustomEvent","cancelable","preventDefault","defaultPrevented","event","params","evt","origPrevent","bubbles","createEvent","initCustomEvent","detail","defineProperty","get","Event","read","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","pow","value","rt","isNaN","floor","LN2","count","err_cb","bail","proxy","h","y","plural","ceil","str","exec","parseFloat","parse","long","round","fmtShort","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","from","TypeError","array","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","slice","fromString","isBuffer","checked","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","x","list","pos","swap16","swap32","swap64","equals","inspect","max","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","stringtrim","base64clean","src","dst","isBetween","f","o","u","isBefore","isBuf","withNativeBlob","withNativeFile","File","_deconstructPacket","placeholder","_placeholder","num","newData","_reconstructPacket","deconstructPacket","packetData","pack","attachments","reconstructPacket","removeBlobs","pendingBlobs","bloblessData","_removeBlobs","curKey","containingObject","fileReader","url","Manager","lookup","cache","managers","source","nsps","forceNew","multiplex","withNativeBuffer","withNativeArrayBuffer","JSONPPolling","callbacks","rNewline","rEscapedNewline","___eio","script","parentNode","removeChild","form","iframe","createElement","insertAt","getElementsByTagName","insertBefore","head","body","appendChild","area","iframeId","className","position","top","left","setAttribute","complete","initIframe","html","action","submit","re","parts","authority","ipv6uri","pathNames","regx","queryKey","$0","$2","JSONP","websocket","jsonp","forceJSONP","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","onlyBinaryUpgrades","perMessageDeflate","threshold","forceNode","isReactNative","product","localAddress","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","priorWebsocketSuccess","createTransport","clone","EIO","transport","protocols","shift","setTransport","removeAllListeners","onDrain","probe","failed","onTransportOpen","upgradeLosesBinary","upgrading","flush","freezeTransport","onTransportClose","onupgrade","to","removeListener","onHandshake","setPing","filterUpgrades","onHeartbeat","clearTimeout","sendPacket","waitForUpgrade","cleanupAndClose","desc","filteredUpgrades","eio","Backoff","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","jitter","lastPing","packetBuffer","_parser","encoder","Encoder","decoder","Decoder","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","attempts","skipReconnect","openSub","errorSub","timer","onping","onpong","ondata","add","ondecoded","onConnecting","processPacketQueue","subsLength","reset","delay","duration","onreconnect","attempt","BrowserWebSocket","NodeWebSocket","WebSocket","MozWebSocket","WebSocketImpl","WS","usingBrowserWebSocket","check","headers","ws","supports","addEventListeners","onmessage","support","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","items","iterator","Headers","header","getOwnPropertyNames","consumed","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","readBlobAsArrayBuffer","promise","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","isConsumed","then","text","readAsText","readArrayBufferAsText","formData","oldValue","thisArg","values","entries","methods","input","upcased","credentials","mode","signal","toUpperCase","referrer","reParamSearch","getTime","decodeURIComponent","Response","bodyInit","ok","statusText","redirectStatuses","redirect","DOMException","fetch","aborted","abortXhr","rawHeaders","getAllResponseHeaders","line","responseURL","ontimeout","onabort","fixUrl","removeEventListener","polyfill","byteCount","byteIndex","stringFromCharCode","ucs2decode","extra","output","counter","checkScalarValue","createByte","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","byteString","tmp","ucs2encode","encodeURIComponent","qs","qry","pairs","pair","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","types","ERROR_PACKET","encodeAsString","payload","tryStringify","reconstructor","BinaryReconstructor","reconPack","writeEncoding","deconstruction","encodeAsBinary","tryParse","decodeString","takeBinaryData","finishedReconstruction","binData","abv","ii","alphabet","seed","now","decoded","IntersectionObserverEntry","intersectionRatio","startDoc","doc","frame","getFrameElement","ownerDocument","registry","crossOriginUpdater","crossOriginRect","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","bottom","right","width","height","observer","_checkForIntersections","_resetCrossOriginUpdater","observe","_observationTargets","some","item","element","nodeType","_registerInstance","entry","_monitorIntersections","unobserve","filter","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","sort","_parseRootMargin","opt_rootMargin","margins","margin","unit","win","defaultView","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","root","hasDependentTargets","itemDoc","unsubscribe","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","time","performance","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","overflow","isDoc","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","frameElement","ensureDOMRect","targetArea","intersectionArea","toFixed","opt_options","rootMargin","node","opt_useCapture","detatchEvent","parentBoundingRect","parentIntersectionRect","child","assignedSlot","description","mixin","_callbacks","off","listeners","hasListeners","factor","rand","random","deviation"],"mappings":"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","file":"script/chunks/chunk.vendors~campaigns~default~info~login~mytradera~resolution~selling.437dbec290.js","sourcesContent":["\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};\n","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\nvar globalThis = require('./globalThis');\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('xmlhttprequest-ssl');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState && packet.type === 'open') {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || (typeof location !== 'undefined' && location);\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n\n obj.path = obj.path || '/';\n\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n return obj;\n}\n","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (typeof ArrayBuffer !== 'undefined') {\n base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n * [ ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * :data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string>[...]\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(chars){\n \"use strict\";\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i+1]);\n encoded3 = chars.indexOf(base64[i+2]);\n encoded4 = chars.indexOf(base64[i+3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n if (this.connected) return this;\n\n this.subEvents();\n if (!this.io.reconnecting) this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n\n var args = toArray(arguments);\n var packet = {\n type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n data: args\n };\n\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n this.flags = {};\n\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({type: parser.CONNECT, query: query});\n } else {\n this.packet({type: parser.CONNECT});\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n var sameNamespace = packet.nsp === this.nsp;\n var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n if (!sameNamespace && !rootNamespaceError) return;\n\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n\n case parser.EVENT:\n this.onevent(packet);\n break;\n\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case parser.ACK:\n this.onack(packet);\n break;\n\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n\n self.packet({\n type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({ type: parser.DISCONNECT });\n }\n\n // remove socket from pool\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags.compress = compress;\n return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n this.flags.binary = binary;\n return this;\n};\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n","/**\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","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]');\nvar withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]');\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBuf(data)) {\n var placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if ((withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() { // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n }\n else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if(! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) { // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n};\n","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] ||\n false === opts.multiplex || sameNamespace;\n\n var io;\n\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof ArrayBuffer === 'function';\n\nvar isView = function (obj) {\n return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer);\n};\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return (withNativeBuffer && Buffer.isBuffer(obj)) ||\n (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)));\n}\n","/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = (globalThis.___eio || []);\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '