"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "dist/socket.io.msgpack.min.js.map" between
socket.io-client-4.5.1.tar.gz and socket.io-client-4.5.2.tar.gz

About: Socket.IO client is a Javascript client library for the browser (or a Node.js client) that enables real-time communication with an Socket.IO server.

socket.io.msgpack.min.js.map  (socket.io-client-4.5.1):socket.io.msgpack.min.js.map  (socket.io-client-4.5.2)
{"version":3,"file":"socket.io.msgpack.min.js","sources":["../node_modules/engin e.io-client/node_modules/engine.io-parser/build/esm/commons.js","../node_modules /@socket.io/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/ engine.io-client/node_modules/engine.io-parser/build/esm/encodePacket.browser.js ","../node_modules/engine.io-client/node_modules/engine.io-parser/build/esm/deco dePacket.browser.js","../node_modules/engine.io-client/node_modules/engine.io-pa rser/build/esm/index.js","../node_modules/@socket.io/component-emitter/index.mjs ","../node_modules/engine.io-client/build/esm/globalThis.browser.js","../node_mo dules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/buil d/esm/contrib/yeast.js","../node_modules/engine.io-client/build/esm/transport.js ","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modul es/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-cl ient/build/esm/transports/xmlhttprequest.browser.js","../node_modules/engine.io- client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/ esm/transports/websocket-constructor.browser.js","../node_modules/engine.io-clie nt/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/es m/transports/index.js","../node_modules/engine.io-client/build/esm/contrib/parse uri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/ notepack.io/browser/encode.js","../node_modules/notepack.io/browser/decode.js"," ../node_modules/notepack.io/lib/index.js","../node_modules/component-emitter/ind ex.js","../node_modules/socket.io-msgpack-parser/index.js","../build/esm/on.js", "../build/esm/socket.js","../build/esm/contrib/backo2.js","../build/esm/manager. js","../build/esm/index.js","../build/esm/url.js"],"sourcesContent":["const PACK ET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPAC KET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\ "upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERS E = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET _TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"er ror\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, E RROR_PACKET };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/ base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.c om>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the inde x.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybu ffer), i, len = bytes.length, base64 = '';\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 if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1 ) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substrin g(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = fun ction (base64) {\n var bufferLength = base64.length * 0.75, len = base64.leng th, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.len gth - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuff er = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n fo r (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[ base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)]; \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 return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","import { PACK ET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"func tion\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toStr ing.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defin ed in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \" function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer insta nceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, ca llback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (sup portsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n els e if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(d ata))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TY PES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function ( ) {\n const content = fileReader.result.split(\",\")[1];\n callbac k(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexp ort default encodePacket;\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"@socket.io/base64-arraybuffer\";\nc onst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodeP acket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"str ing\") {\n return {\n type: \"message\",\n data: ma pBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedP acket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type ];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return enco dedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type], \n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decode d = decode(data);\n return mapBinary(decoded, binaryType);\n }\n el se {\n return { base64: true, data }; // fallback for old browsers\n } \n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([d ata]) : data;\n case \"arraybuffer\":\n default:\n retu rn data; // assuming the data is already an ArrayBuffer\n }\n};\nexport defau lt decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport dec odePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30) ; // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst enc odePayload = (packets, callback) => {\n // some packets may be added to the a rray while encoding, so the initial length must be saved\n const length = pac kets.length;\n const encodedPackets = new Array(length);\n let count = 0;\ n packets.forEach((packet, i) => {\n // force base64 encoding for bina ry packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n }); \n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n cons t encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPac ket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { enco dePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @p aram {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(o bj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[ key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._call backs['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n retu rn this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Fu nction} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.appl y(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this; \n};\n\n/**\n * Remove the given callback for `event` or all\n * registered call backs.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitt er}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeLis tener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventLi stener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n / / all\n if (0 == arguments.length) {\n this._callbacks = {};\n return thi s;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\ n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == argument s.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n cal lbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arr ays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\ n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prot otype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n v ar args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].a pply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserve d events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype. emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._cal lbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` hand lers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n \nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners( event).length;\n};\n","export default (() => {\n if (typeof self !== \"undefi ned\") {\n return self;\n }\n else if (typeof window !== \"undefine d\") {\n return window;\n }\n else {\n return Function(\"ret urn this\")();\n }\n})();\n","import globalThis from \"./globalThis.js\";\nex port function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\ncon st NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(o bj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_ SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT .bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bin d(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/ wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blo b([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) { \n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\ n if (c < 0x80) {\n length += 1;\n }\n else if ( c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 | | c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","/ / imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabe t = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('') , length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string re presenting the specified number.\n *\n * @param {Number} num The number to conve rt.\n * @returns {String} The string representation of the number.\n * @api publ ic\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / len gth);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the intege r value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.cha rAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id genera tor.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport functio n yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n/ / Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabe t[i]] = i;\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emit ter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } f rom \"./util.js\";\nclass TransportError extends Error {\n constructor(reason , description, context) {\n super(reason);\n this.description = de scription;\n this.context = context;\n this.type = \"TransportErro r\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transp ort abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writab le = false;\n installTimerFunctions(this, opts);\n this.opts = opt s;\n this.query = opts.query;\n this.readyState = \"\";\n t his.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved (\"error\", new TransportError(reason, description, context));\n return t his;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === thi s.readyState) {\n this.readyState = \"opening\";\n this.do Open();\n }\n return this;\n }\n /**\n * Closes the tran sport.\n *\n * @api public\n */\n close() {\n if (\"openin g\" === this.readyState || \"open\" === this.readyState) {\n this.doC lose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.re adyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunl oad event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\ ";\n this.writable = true;\n super.emitReserved(\"open\");\n }\ n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket (data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\ n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n o nClose(details) {\n this.readyState = \"closed\";\n super.emitRese rved(\"close\", details);\n }\n}\n","// imported from https://github.com/galk n/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function enc ode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnP roperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n } \n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\ n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs .length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[dec odeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry; \n}\n","// imported from https://github.com/component/has-cors\nlet value = fals e;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCr edentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport c onst hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { ha sCORS } from \"../contrib/has-cors.js\";\nimport globalThis from \"../globalThis .js\";\nexport default function (opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" ! == typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XML HttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join( \"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n"," import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contr ib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { enco dePayload, decodePayload } from \"engine.io-parser\";\nimport XMLHttpRequest fro m \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitt er\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport globa lThis from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (functio n () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transpo rt {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} o pts\n * @api public\n */\n constructor(opts) {\n super(opts);\ n this.polling = false;\n if (typeof location !== \"undefined\") { \n const isSSL = \"https:\" === location.protocol;\n let p ort = location.port;\n // some user agents have empty `location.port` \n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undef ined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n cons t forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name () {\n return \"polling\";\n }\n /**\n * Opens the socket (trig gers polling). We write a PING message to determine\n * when the transport i s open.\n *\n * @api private\n */\n doOpen() {\n this.poll ();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} ca llback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n con st pause = () => {\n this.readyState = \"paused\";\n onPau se();\n };\n if (this.polling || !this.writable) {\n le t total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () { \n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"po ll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet = > {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet , we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" }) ;\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).f orEach(callback);\n // if an event did not trigger closing\n if (\ "closed\" !== this.readyState) {\n // if we got data we're not pollin g\n this.polling = false;\n this.emitReserved(\"pollComple te\");\n if (\"open\" === this.readyState) {\n this.po ll();\n }\n else {\n }\n }\n }\n / **\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ ty pe: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're tryin g to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packet s payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n thi s.writable = false;\n encodePayload(packets, data => {\n this. doWrite(data, () => {\n this.writable = true;\n th is.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secu re ? \"https\" : \"http\";\n let port = \"\";\n // cache busting i s forced\n if (false !== this.opts.timestampRequests) {\n quer y[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBin ary && !query.sid) {\n query.b64 = 1;\n }\n // avoid po rt if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.o pts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : thi s.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs : this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrit e(data, fn) {\n const req = this.request({\n method: \"POST\", \n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr pos t error\", xhrStatus, context);\n });\n }\n /**\n * Starts a po ll cycle.\n *\n * @api private\n */\n doPoll() {\n const r eq = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr pol l error\", xhrStatus, context);\n });\n this.pollXhr = req;\n } \n}\nexport class Request extends Emitter {\n /**\n * Request constructor \n *\n * @param {Object} options\n * @api public\n */\n const ructor(uri, opts) {\n super();\n installTimerFunctions(this, opts) ;\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.d ata = undefined !== opts.data ? opts.data : null;\n this.create();\n } \n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"ag ent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"reject Unauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequ est(opts));\n try {\n xhr.open(this.method, this.uri, this.asy nc);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr .setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\ n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCreden tials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentia ls;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onready statechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\ n this.onLoad();\n }\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 this.setTimeoutFn(() => {\n this.onError(typ eof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called direct ly from the constructor\n // and thus the 'error' event can only be o nly bound *after* this exception\n // occurs. Therefore, also, we ca nnot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.request sCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onE rror(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this. cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api pri vate\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof th is.xhr || null === this.xhr) {\n return;\n }\n this.xhr .onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request. requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\" );\n this.cleanup();\n }\n }\n /**\n * Aborts the re quest.\n *\n * @api public\n */\n abort() {\n this.cleanup ();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Abort s pending requests when unloading the window. This is needed to prevent\n * memo ry leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitte d.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (ty peof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent (\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHa ndler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request. requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Requ est.requests[i].abort();\n }\n }\n}\n","import globalThis from \"../gl obalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSoc ket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/ye ast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nex tTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\n import { encodePacket } from \"engine.io-parser\";\n// detect ReactNative enviro nment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof n avigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"re actnative\";\nexport class WS extends Transport {\n /**\n * WebSocket tra nsport constructor.\n *\n * @api {Object} connection options\n * @ap i public\n */\n constructor(opts) {\n super(opts);\n this.s upportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\"; \n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const pro tocols = this.opts.protocols;\n // React Native only supports the 'header s' option, and will print a warning if anything else is passed\n const op ts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \ "perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciph ers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\" , \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.e xtraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !i sReactNative\n ? protocols\n ? new Web Socket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n th is.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.ad dEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws. onopen = () => {\n if (this.opts.autoUnref) {\n this.w s._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"we bsocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encode Packet efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = pac kets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always c reate a new object (GH-437)\n const opts = {};\n i f (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n } \n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \ "string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informin g us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari \n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.set TimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connec tion.\n *\n * @api private\n */\n uri() {\n let query = th is.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) ! == 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80) )) {\n port = \":\" + this.opts.port;\n }\n // append t imestamp to URI\n if (this.opts.timestampRequests) {\n query[t his.opts.timestampParam] = yeast();\n }\n // communicate binary su pport capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts .hostname) +\n port +\n this.opts.path +\n (enc odedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Featur e detection for WebSocket.\n *\n * @return {Boolean} whether this transp ort is available.\n * @api public\n */\n check() {\n return (! !WebSocket &&\n !(\"__initialize\" in WebSocket && this.name === WS.p rototype.name));\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS ,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseu ri\n/**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com> ( MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|h ttps|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a- f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?# ]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'sou rce', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', ' relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function p arse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring( b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re. exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m [i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace( /;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(u ri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return u ri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = p ath.replace(regx, \"/\").split(\"/\");\n if (path.substr(0, 1) == '/' || path .length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.l ength - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n que ry.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","impo rt { transports } from \"./transports/index.js\";\nimport { installTimerFunction s, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs. js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\ ";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opt s - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query; \n }\n else if (opts.host) {\n opts.hostname = parse(op ts.host).host;\n }\n installTimerFunctions(this, opts);\n t his.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.pro tocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secu re ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hos tname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? lo cation.port\n : this.secure\n ? \"443\ "\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this .writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object. assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampPa ram: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized : true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on hand shake\n this.id = null;\n this.upgrades = null;\n this.ping Interval = null;\n this.pingTimeout = null;\n // set on heartbeat\ n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted b ut not Chrome. This event listener\n // ensures every browser beh aves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n addEventListener(\"beforeun load\", () => {\n if (this.transport) {\n // silently close the transport\n this.transport.remo veAllListeners();\n this.transport.close();\n }\n }, false);\n }\n if (this.hostn ame !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport n ame\n * @return {Transport}\n * @api private\n */\n createTranspo rt(name) {\n const query = Object.assign({}, this.opts.query);\n / / append engine.io protocol identifier\n query.EIO = protocol;\n / / transport name\n query.transport = name;\n // session id if we a lready have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostna me,\n secure: this.secure,\n port: this.port\n });\ n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n op en() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"web socket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0); \n return;\n }\n else {\n transport = this.t ransports[0];\n }\n this.readyState = \"opening\";\n // Ret ry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\ n return;\n }\n transport.open();\n this.setTran sport(transport);\n }\n /**\n * Sets the current transport. Disables t he existing one (if any).\n *\n * @api private\n */\n setTranspor t(transport) {\n if (this.transport) {\n this.transport.remove AllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.on Packet.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n } \n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = t his.createTransport(name);\n let failed = false;\n Socket.priorWeb socketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" = == msg.type && \"probe\" === msg.data) {\n this.upgrading = t rue;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this. readyState)\n return;\n cleanu p();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emit Reserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flus h();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @t s-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n }); \n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Hand le any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ign ore\n error.transport = transport.name;\n freezeTransport( );\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n functio n onclose() {\n onerror(\"socket closed\");\n }\n // Wh en the socket is upgraded while we're probing\n function onupgrade(to) {\ n if (transport && to.name !== transport.name) {\n fre ezeTransport();\n }\n }\n // Remove all listeners on th e transport and on self\n const cleanup = () => {\n transport. removeListener(\"open\", onTransportOpen);\n transport.removeListener (\"error\", onerror);\n transport.removeListener(\"close\", onTranspo rtClose);\n this.off(\"close\", onclose);\n this.off(\"upg rading\", onupgrade);\n };\n transport.once(\"open\", onTransportO pen);\n transport.once(\"error\", onerror);\n transport.once(\"clo se\", onTransportClose);\n this.once(\"close\", onclose);\n this.o nce(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsock etSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\" open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transpor t.pause) {\n let i = 0;\n const l = this.upgrades.length;\ n for (; i < l; i++) {\n this.probe(this.upgrades[i]); \n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"c losing\" === this.readyState) {\n this.emitReserved(\"packet\", packe t);\n // Socket is live - any packet counts\n this.emitRes erved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this. resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"p ong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-i gnore\n err.code = packet.data;\n this.onE rror(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n th is.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"h andshake\", data);\n this.id = data.sid;\n this.transport.query.si d = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.ping Timeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.rea dyState)\n return;\n this.resetPingTimeout();\n }\n /**\ n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(t his.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + t his.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTime outTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.sp lice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very impor tant\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this .prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n t his.emitReserved(\"drain\");\n }\n else {\n this.flush( );\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePack ets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuf fer on `drain`\n this.prevBufferLen = packets.length;\n th is.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encode d size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritab lePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.lengt h > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuf fer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.w riteBuffer[i].data;\n if (data) {\n payloadSize += byt eLength(data);\n }\n if (i > 0 && payloadSize > this.maxPa yload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n retu rn this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @p aram {String} message.\n * @param {Function} callback function.\n * @par am {Object} options.\n * @return {Socket} for chaining.\n * @api public\ n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", ms g, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\ n * @param {String} data.\n * @param {Object} options.\n * @param {F unction} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n f n = data;\n data = undefined;\n }\n if (\"function\" == = typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.ready State) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.wri teBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\" , cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a t ransport\n this.once(\"upgrade\", cleanupAndClose);\n this .once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" = == this.readyState || \"open\" === this.readyState) {\n this.readySta te = \"closing\";\n if (this.writeBuffer.length) {\n t his.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n el se {\n close();\n }\n } );\n }\n else if (this.upgrading) {\n waitF orUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon tr ansport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err );\n this.onClose(\"transport error\", err);\n }\n /**\n * Call ed upon transport close.\n *\n * @api private\n */\n onClose(reas on, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\ n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTi mer);\n // stop event from firing again for transport\n th is.transport.removeAllListeners(\"close\");\n // ensure transport won 't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n remo veEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit clo se event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffer s on `close` event\n this.writeBuffer = [];\n this.prevBuf ferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades \n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.len gth;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upg rades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","'use str ict';\n\nfunction utf8Write(view, offset, str) {\n var c = 0;\n for (var i = 0 , l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) { \n view.setUint8(offset++, c);\n }\n else if (c < 0x800) {\n vie w.setUint8(offset++, 0xc0 | (c >> 6));\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n else if (c < 0xd800 || c >= 0xe000) {\n view.setUint8 (offset++, 0xe0 | (c >> 12));\n view.setUint8(offset++, 0x80 | (c >> 6) & 0 x3f);\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n else {\n i++;\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff)) ;\n view.setUint8(offset++, 0xf0 | (c >> 18));\n view.setUint8(offset+ +, 0x80 | (c >> 12) & 0x3f);\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x 3f);\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n }\n}\n\nfuncti on utf8Length(str) {\n var c = 0, length = 0;\n for (var i = 0, l = str.length ; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length + = 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if ( c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\ n length += 4;\n }\n }\n return length;\n}\n\nfunction _encode(bytes, defers, value) {\n var type = typeof value, i = 0, l = 0, hi = 0, lo = 0, lengt h = 0, size = 0;\n\n if (type === 'string') {\n length = utf8Length(value);\ n\n // fixstr\n if (length < 0x20) {\n bytes.push(length | 0xa0);\n size = 1;\n }\n // str 8\n else if (length < 0x100) {\n bytes. push(0xd9, length);\n size = 2;\n }\n // str 16\n else if (length < 0x10000) {\n bytes.push(0xda, length >> 8, length);\n size = 3;\n }\n // str 32\n else if (length < 0x100000000) {\n bytes.push(0xdb, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else { \n throw new Error('String too long');\n }\n defers.push({ _str: valu e, _length: length, _offset: bytes.length });\n return size + length;\n }\n if (type === 'number') {\n // TODO: encode to float 32?\n\n // float 64\n if (Math.floor(value) !== value || !isFinite(value)) {\n bytes.push(0xc b);\n defers.push({ _float: value, _length: 8, _offset: bytes.length });\n return 9;\n }\n\n if (value >= 0) {\n // positive fixnum\n if (value < 0x80) {\n bytes.push(value);\n return 1;\n }\n // uint 8\n if (value < 0x100) {\n bytes.push(0xcc, value);\n return 2;\n }\n // uint 16\n if (value < 0x10000) {\n bytes.push(0xcd, value >> 8, value);\n return 3;\n }\n // uint 32\n if (value < 0x100000000) {\n bytes.push(0xce, value >> 24, valu e >> 16, value >> 8, value);\n return 5;\n }\n // uint 64\n hi = (value / Math.pow(2, 32)) >> 0;\n lo = value >>> 0;\n bytes.pus h(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n } else {\n // negative fixnum\n if (value >= -0x20) { \n bytes.push(value);\n return 1;\n }\n // int 8\n if (value >= -0x80) {\n bytes.push(0xd0, value);\n return 2;\n }\n // int 16\n if (value >= -0x8000) {\n bytes.push(0xd1, va lue >> 8, value);\n return 3;\n }\n // int 32\n if (value >= -0x80000000) {\n bytes.push(0xd2, value >> 24, value >> 16, value >> 8 , value);\n return 5;\n }\n // int 64\n hi = Math.floor(va lue / Math.pow(2, 32));\n lo = value >>> 0;\n bytes.push(0xd3, hi >> 2 4, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n }\n }\n if (type === 'object') {\n // nil\n if (value === null) {\n bytes.push(0xc0);\n return 1;\n }\n\n if (Array.isArray(value)) {\ n length = value.length;\n\n // fixarray\n if (length < 0x10) {\n bytes.push(length | 0x90);\n size = 1;\n }\n // array 1 6\n else if (length < 0x10000) {\n bytes.push(0xdc, length >> 8, len gth);\n size = 3;\n }\n // array 32\n else if (length < 0x 100000000) {\n bytes.push(0xdd, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Array too large');\n }\n for (i = 0; i < length; i++) {\n size += _encode (bytes, defers, value[i]);\n }\n return size;\n }\n\n // fixext 8 / Date\n if (value instanceof Date) {\n var time = value.getTime();\n hi = Math.floor(time / Math.pow(2, 32));\n lo = time >>> 0;\n byt es.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, l o);\n return 10;\n }\n\n if (value instanceof ArrayBuffer) {\n l ength = value.byteLength;\n\n // bin 8\n if (length < 0x100) {\n bytes.push(0xc4, length);\n size = 2;\n } else\n // bin 16\n if (length < 0x10000) {\n bytes.push(0xc5, length >> 8, length);\n size = 3;\n } else\n // bin 32\n if (length < 0x100000000) {\n bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Buffer too large');\n }\n defers.push({ _bin: value, _length: length, _offset: bytes.length });\n return size + length;\n }\n\n if (typeof value.toJSON === 'fun ction') {\n return _encode(bytes, defers, value.toJSON());\n }\n\n va r keys = [], key = '';\n\n var allKeys = Object.keys(value);\n for (i = 0, l = allKeys.length; i < l; i++) {\n key = allKeys[i];\n if (typeof va lue[key] !== 'function') {\n keys.push(key);\n }\n }\n length = keys.length;\n\n // fixmap\n if (length < 0x10) {\n bytes.push(leng th | 0x80);\n size = 1;\n }\n // map 16\n else if (length < 0x1000 0) {\n bytes.push(0xde, length >> 8, length);\n size = 3;\n }\n // map 32\n else if (length < 0x100000000) {\n bytes.push(0xdf, length > > 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Object too large');\n }\n\n for (i = 0; i < length; i++) {\n key = keys[i];\n size += _encode(bytes, defers, key);\n size += _encode(bytes, defers, value[key]);\n }\n return size;\n }\n // false /true\n if (type === 'boolean') {\n bytes.push(value ? 0xc3 : 0xc2);\n re turn 1;\n }\n // fixext 1 / undefined\n if (type === 'undefined') {\n byte s.push(0xd4, 0, 0);\n return 3;\n }\n throw new Error('Could not encode');\ n}\n\nfunction encode(value) {\n var bytes = [];\n var defers = [];\n var siz e = _encode(bytes, defers, value);\n var buf = new ArrayBuffer(size);\n var vi ew = new DataView(buf);\n\n var deferIndex = 0;\n var deferWritten = 0;\n var nextOffset = -1;\n if (defers.length > 0) {\n nextOffset = defers[0]._offse t;\n }\n\n var defer, deferLength = 0, offset = 0;\n for (var i = 0, l = byte s.length; i < l; i++) {\n view.setUint8(deferWritten + i, bytes[i]);\n if (i + 1 !== nextOffset) { continue; }\n defer = defers[deferIndex];\n defer Length = defer._length;\n offset = deferWritten + nextOffset;\n if (defer. _bin) {\n var bin = new Uint8Array(defer._bin);\n for (var j = 0; j < deferLength; j++) {\n view.setUint8(offset + j, bin[j]);\n }\n } else if (defer._str) {\n utf8Write(view, offset, defer._str);\n } else i f (defer._float !== undefined) {\n view.setFloat64(offset, defer._float);\n }\n deferIndex++;\n deferWritten += deferLength;\n if (defers[defer Index]) {\n nextOffset = defers[deferIndex]._offset;\n }\n }\n return buf;\n}\n\nmodule.exports = encode;\n","'use strict';\n\nfunction Decoder(buffer ) {\n this._offset = 0;\n if (buffer instanceof ArrayBuffer) {\n this._buff er = buffer;\n this._view = new DataView(this._buffer);\n } else if (ArrayBu ffer.isView(buffer)) {\n this._buffer = buffer.buffer;\n this._view = new DataView(this._buffer, buffer.byteOffset, buffer.byteLength);\n } else {\n t hrow new Error('Invalid argument');\n }\n}\n\nfunction utf8Read(view, offset, l ength) {\n var string = '', chr = 0;\n for (var i = offset, end = offset + len gth; i < end; i++) {\n var byte = view.getUint8(i);\n if ((byte & 0x80) == = 0x00) {\n string += String.fromCharCode(byte);\n continue;\n }\n if ((byte & 0xe0) === 0xc0) {\n string += String.fromCharCode(\n ((byte & 0x1f) << 6) |\n (view.getUint8(++i) & 0x3f)\n );\n con tinue;\n }\n if ((byte & 0xf0) === 0xe0) {\n string += String.fromCha rCode(\n ((byte & 0x0f) << 12) |\n ((view.getUint8(++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0)\n );\n continue;\n }\n if ((byte & 0xf8) === 0xf0) {\n chr = ((byte & 0x07) << 18) |\n ((view.getUint8(++i) & 0x3f) << 12) |\n ((view.getUint8(++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0);\n if (chr >= 0x010000 ) { // surrogate pair\n chr -= 0x010000;\n string += String.fromCh arCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);\n } else {\n string += String.fromCharCode(chr);\n }\n continue;\n }\n throw new Error('Invalid byte ' + byte.toString(16));\n }\n return string;\n}\n\nDec oder.prototype._array = function (length) {\n var value = new Array(length);\n for (var i = 0; i < length; i++) {\n value[i] = this._parse();\n }\n retur n value;\n};\n\nDecoder.prototype._map = function (length) {\n var key = '', va lue = {};\n for (var i = 0; i < length; i++) {\n key = this._parse();\n v alue[key] = this._parse();\n }\n return value;\n};\n\nDecoder.prototype._str = function (length) {\n var value = utf8Read(this._view, this._offset, length);\ n this._offset += length;\n return value;\n};\n\nDecoder.prototype._bin = func tion (length) {\n var value = this._buffer.slice(this._offset, this._offset + l ength);\n this._offset += length;\n return value;\n};\n\nDecoder.prototype._pa rse = function () {\n var prefix = this._view.getUint8(this._offset++);\n var value, length = 0, type = 0, hi = 0, lo = 0;\n\n if (prefix < 0xc0) {\n // p ositive fixint\n if (prefix < 0x80) {\n return prefix;\n }\n // fi xmap\n if (prefix < 0x90) {\n return this._map(prefix & 0x0f);\n }\n // fixarray\n if (prefix < 0xa0) {\n return this._array(prefix & 0x0f );\n }\n // fixstr\n return this._str(prefix & 0x1f);\n }\n\n // nega tive fixint\n if (prefix > 0xdf) {\n return (0xff - prefix + 1) * -1;\n }\n \n switch (prefix) {\n // nil\n case 0xc0:\n return null;\n // fa lse\n case 0xc2:\n return false;\n // true\n case 0xc3:\n ret urn true;\n\n // bin\n case 0xc4:\n length = this._view.getUint8(this ._offset);\n this._offset += 1;\n return this._bin(length);\n case 0xc5:\n length = this._view.getUint16(this._offset);\n this._offset += 2;\n return this._bin(length);\n case 0xc6:\n length = this._view. getUint32(this._offset);\n this._offset += 4;\n return this._bin(lengt h);\n\n // ext\n case 0xc7:\n length = this._view.getUint8(this._offs et);\n type = this._view.getInt8(this._offset + 1);\n this._offset += 2;\n return [type, this._bin(length)];\n case 0xc8:\n length = this ._view.getUint16(this._offset);\n type = this._view.getInt8(this._offset + 2);\n this._offset += 3;\n return [type, this._bin(length)];\n case 0xc9:\n length = this._view.getUint32(this._offset);\n type = this._v iew.getInt8(this._offset + 4);\n this._offset += 5;\n return [type, th is._bin(length)];\n\n // float\n case 0xca:\n value = this._view.getF loat32(this._offset);\n this._offset += 4;\n return value;\n case 0 xcb:\n value = this._view.getFloat64(this._offset);\n this._offset += 8;\n return value;\n\n // uint\n case 0xcc:\n value = this._view .getUint8(this._offset);\n this._offset += 1;\n return value;\n cas e 0xcd:\n value = this._view.getUint16(this._offset);\n this._offset + = 2;\n return value;\n case 0xce:\n value = this._view.getUint32(th is._offset);\n this._offset += 4;\n return value;\n case 0xcf:\n hi = this._view.getUint32(this._offset) * Math.pow(2, 32);\n lo = this._ view.getUint32(this._offset + 4);\n this._offset += 8;\n return hi + l o;\n\n // int\n case 0xd0:\n value = this._view.getInt8(this._offset) ;\n this._offset += 1;\n return value;\n case 0xd1:\n value = this._view.getInt16(this._offset);\n this._offset += 2;\n return value ;\n case 0xd2:\n value = this._view.getInt32(this._offset);\n this. _offset += 4;\n return value;\n case 0xd3:\n hi = this._view.getInt 32(this._offset) * Math.pow(2, 32);\n lo = this._view.getUint32(this._offse t + 4);\n this._offset += 8;\n return hi + lo;\n\n // fixext\n c ase 0xd4:\n type = this._view.getInt8(this._offset);\n this._offset += 1;\n if (type === 0x00) {\n this._offset += 1;\n return void 0;\n }\n return [type, this._bin(1)];\n case 0xd5:\n type = t his._view.getInt8(this._offset);\n this._offset += 1;\n return [type, this._bin(2)];\n case 0xd6:\n type = this._view.getInt8(this._offset);\n this._offset += 1;\n return [type, this._bin(4)];\n case 0xd7:\n type = this._view.getInt8(this._offset);\n this._offset += 1;\n if (type === 0x00) {\n hi = this._view.getInt32(this._offset) * Math.pow(2, 32);\n lo = this._view.getUint32(this._offset + 4);\n this._offse t += 8;\n return new Date(hi + lo);\n }\n return [type, this._b in(8)];\n case 0xd8:\n type = this._view.getInt8(this._offset);\n t his._offset += 1;\n return [type, this._bin(16)];\n\n // str\n case 0 xd9:\n length = this._view.getUint8(this._offset);\n this._offset += 1 ;\n return this._str(length);\n case 0xda:\n length = this._view.ge tUint16(this._offset);\n this._offset += 2;\n return this._str(length) ;\n case 0xdb:\n length = this._view.getUint32(this._offset);\n thi s._offset += 4;\n return this._str(length);\n\n // array\n case 0xdc: \n length = this._view.getUint16(this._offset);\n this._offset += 2;\n return this._array(length);\n case 0xdd:\n length = this._view.get Uint32(this._offset);\n this._offset += 4;\n return this._array(length );\n\n // map\n case 0xde:\n length = this._view.getUint16(this._offs et);\n this._offset += 2;\n return this._map(length);\n case 0xdf:\ n length = this._view.getUint32(this._offset);\n this._offset += 4;\n return this._map(length);\n }\n\n throw new Error('Could not parse');\n}; \n\nfunction decode(buffer) {\n var decoder = new Decoder(buffer);\n var value = decoder._parse();\n if (decoder._offset !== buffer.byteLength) {\n throw new Error((buffer.byteLength - decoder._offset) + ' trailing bytes');\n }\n re turn value;\n}\n\nmodule.exports = decode;\n","exports.encode = require('./encod e');\nexports.decode = require('./decode');\n","\r\n/**\r\n * Expose `Emitter`.\ r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter ;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n /**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @r eturn {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for ( var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n } \r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r \n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitt er}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype. addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks | | {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r \n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listen er that will be invoked a single\r\n * time then automatically removed.\r\n *\r\ n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\ n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r \n/**\r\n * Remove the given callback for `event` or all\r\n * registered callba cks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.pro totype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.pro totype.removeEventListener = function(event, fn){\r\n this._callbacks = this._c allbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._c allbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var ca llbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\ n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._ callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific h andler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splic e(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific array s for event types that no\r\n // one is subscribed for to avoid memory leak.\r\ n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given arg s.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emi tter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbac ks = this._callbacks || {};\r\n\r\n var args = new Array(arguments.length - 1)\ r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if ( callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbac ks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @a pi public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this ._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\ n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r \nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listener s(event).length;\r\n};\r\n","var msgpack = require(\"notepack.io\");\nvar Emitte r = require(\"component-emitter\");\n\nexports.protocol = 5;\n\n/**\n * Packet t ypes (see https://github.com/socketio/socket.io-protocol)\n */\n\nvar PacketType = (exports.PacketType = {\n CONNECT: 0,\n DISCONNECT: 1,\n EVENT: 2,\n ACK: 3,\n CONNECT_ERROR: 4,\n});\n\nvar isInteger =\n Number.isInteger ||\n funct ion (value) {\n return (\n typeof value === \"number\" &&\n isFinit e(value) &&\n Math.floor(value) === value\n );\n };\n\nvar isString = f unction (value) {\n return typeof value === \"string\";\n};\n\nvar isObject = f unction (value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n};\n\nfunction Encoder() {}\n\nEncoder.prototype.encode = function ( packet) {\n return [msgpack.encode(packet)];\n};\n\nfunction Decoder() {}\n\nEm itter(Decoder.prototype);\n\nDecoder.prototype.add = function (obj) {\n var dec oded = msgpack.decode(obj);\n this.checkPacket(decoded);\n this.emit(\"decoded \", decoded);\n};\n\nfunction isDataValid(decoded) {\n switch (decoded.type) {\ n case PacketType.CONNECT:\n return decoded.data === undefined || isObje ct(decoded.data);\n case PacketType.DISCONNECT:\n return decoded.data == = undefined;\n case PacketType.CONNECT_ERROR:\n return isString(decoded. data) || isObject(decoded.data);\n default:\n return Array.isArray(decod ed.data);\n }\n}\n\nDecoder.prototype.checkPacket = function (decoded) {\n var isTypeValid =\n isInteger(decoded.type) &&\n decoded.type >= PacketType.C ONNECT &&\n decoded.type <= PacketType.CONNECT_ERROR;\n if (!isTypeValid) {\ n throw new Error(\"invalid packet type\");\n }\n\n if (!isString(decoded.n sp)) {\n throw new Error(\"invalid namespace\");\n }\n\n if (!isDataValid(d ecoded)) {\n throw new Error(\"invalid payload\");\n }\n\n var isAckValid = decoded.id === undefined || isInteger(decoded.id);\n if (!isAckValid) {\n t hrow new Error(\"invalid packet id\");\n }\n};\n\nDecoder.prototype.destroy = f unction () {};\n\nexports.Encoder = Encoder;\nexports.Decoder = Decoder;\n","exp ort function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDest roy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"so cket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@ socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n conne ct: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_n ewlistener\n newListener: 1,\n removeListener: 1,\n});\nexport class Socke t extends Emitter {\n /**\n * `Socket` constructor.\n *\n * @publ ic\n */\n constructor(io, nsp, opts) {\n super();\n this.co nnected = false;\n this.receiveBuffer = [];\n this.sendBuffer = [] ;\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\ n this.open();\n }\n /**\n * Whether the socket is currentl y disconnected\n */\n get disconnected() {\n return !this.connecte d;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket .bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconn ects\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @public\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents(); \n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensur e open\n if (\"open\" === this.io._readyState)\n this.onopen() ;\n return this;\n }\n /**\n * Alias for connect()\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `mess age` event.\n *\n * @return self\n * @public\n */\n send(...a rgs) {\n args.unshift(\"message\");\n this.emit.apply(this, args); \n return this;\n }\n /**\n * Override `emit`.\n * If the e vent is in `events`, it's emitted normally.\n *\n * @return self\n * @public\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnPr operty(ev)) {\n throw new Error('\"' + ev + '\" is a reserved event n ame');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet .options = {};\n packet.options.compress = this.flags.compress !== false; \n // event ack callback\n if (\"function\" === typeof args[args.l ength - 1]) {\n const id = this.ids++;\n const ack = args. pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\ n const discardPacket = this.flags.volatile && (!isTransportWritable || ! this.connected);\n if (discardPacket) {\n }\n else if (this .connected) {\n this.notifyOutgoingListeners(packet);\n th is.packet(packet);\n }\n else {\n this.sendBuffer.push( packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n cons t timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks [id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer. splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id ] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutF n(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._pac ket(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: Packe tType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param er r\n * @private\n */\n onerror(err) {\n if (!this.connected) {\ n this.emitReserved(\"connect_error\", err);\n }\n }\n / **\n * Called upon engine `close`.\n *\n * @param reason\n * @pa ram description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserv ed(\"disconnect\", reason, description);\n }\n /**\n * Called with soc ket packet.\n *\n * @param packet\n * @private\n */\n onpacke t(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.on connect(id);\n }\n else {\n thi s.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case Packet Type.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\ n }\n }\n /**\n * Called upon a server event.\n *\n * @ param packet\n * @private\n */\n onevent(packet) {\n const arg s = packet.data || [];\n if (null != packet.id) {\n args.push( this.ack(packet.id));\n }\n if (this.connected) {\n thi s.emitEvent(args);\n }\n else {\n this.receiveBuffer.pu sh(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (t his._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n su per.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n co nst self = this;\n let sent = false;\n return function (...args) { \n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlege ment.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === type of ack) {\n ack.apply(this, packet.data);\n delete this.ac ks[packet.id];\n }\n else {\n }\n }\n /**\n * Cal led upon server connect.\n *\n * @private\n */\n onconnect(id) {\ n this.id = id;\n this.connected = true;\n this.emitBuffere d();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffe red events (received and emitted).\n *\n * @private\n */\n emitBu ffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\ n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => { \n this.notifyOutgoingListeners(packet);\n this.packet(pac ket);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() { \n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnection s don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconn ections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually.\n *\n * @return self \n * @public\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // r emove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\ n }\n return this;\n }\n /**\n * Alias for disconnect()\ n *\n * @return self\n * @public\n */\n close() {\n re turn this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\ n * @param compress - if `true`, compresses the sending data\n * @return self\n * @public\n */\n compress(compress) {\n this.flags.com press = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @returns self\n * @public\n */\n get volatile() {\n this.flags.volatile = true; \n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * g iven number of milliseconds have elapsed without an acknowledgement from the ser ver:\n *\n * ```\n * socket.timeout(5000).emit(\"my-event\", (err) = > {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n * ```\n *\n * @returns self\n * @public\n */\n timeout(timeout) {\n this.flags.timeo ut = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @param listener\n * @publi c\n */\n onAny(listener) {\n this._anyListeners = this._anyListene rs || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted . The event name is passed as the first argument to the\n * callback. The li stener is added to the beginning of the listeners array.\n *\n * @param listener\n * @public\n */\n prependAny(listener) {\n this._any Listeners = this._anyListeners || [];\n this._anyListeners.unshift(listen er);\n return this;\n }\n /**\n * Removes the listener that wil l be fired when any event is emitted.\n *\n * @param listener\n * @p ublic\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const list eners = this._anyListeners;\n for (let i = 0; i < listeners.length; i ++) {\n if (listener === listeners[i]) {\n lis teners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulat ed,\n * e.g. to remove listeners.\n *\n * @public\n */\n list enersAny() {\n return this._anyListeners || [];\n }\n /**\n * A dds a listener that will be fired when any event is emitted. The event name is p assed as the first argument to the\n * callback.\n *\n * @param list ener\n *\n * <pre><code>\n *\n * socket.onAnyOutgoing((event, .. .args) => {\n * console.log(event);\n * });\n *\n * </pre></co de>\n *\n * @public\n */\n onAnyOutgoing(listener) {\n thi s._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOu tgoingListeners.push(listener);\n return this;\n }\n /**\n * Ad ds a listener that will be fired when any event is emitted. The event name is pa ssed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @param listener\n *\n * <pre><code>\n *\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(event);\n * });\n *\n * </pre></code>\n *\n * @public\n */\n prependAnyOutgoing(listener) {\n this._anyOu tgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingLi steners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @par am listener\n *\n * <pre><code>\n *\n * const handler = (event, ...args) => {\n * console.log(event);\n * }\n *\n * socket.onA nyOutgoing(handler);\n *\n * // then later\n * socket.offAnyOutgoing (handler);\n *\n * </pre></code>\n *\n * @public\n */\n o ffAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length ; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array o f listeners that are listening for any event that is specified. This array can b e manipulated,\n * e.g. to remove listeners.\n *\n * @public\n * /\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [] ;\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners (packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners .length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(t his, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize ba ckoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @pa ram {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opt s = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 1000 0;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && op ts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.protot ype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this. attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor( rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math. min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api p ublic\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\ n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.se tMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duratio n\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n thi s.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.proto type.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\n import { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\" ;\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Mana ger extends Emitter {\n constructor(uri, opts) {\n var _a;\n su per();\n this.nsps = {};\n this.subs = [];\n if (uri && \"o bject\" === typeof uri) {\n opts = uri;\n uri = undefined; \n }\n opts = opts || {};\n opts.path = opts.path || \"/soc ket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts); \n this.reconnection(opts.reconnection !== false);\n this.reconnec tionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionD elay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.re connectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.random izationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = ne w Backoff({\n min: this.reconnectionDelay(),\n max: this.r econnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoCo nnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return thi s._reconnection;\n this._reconnection = !!v;\n return this;\n } \n reconnectionAttempts(v) {\n if (v === undefined)\n retur n this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._recon nectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizat ionFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined) \n return this._reconnectionDelayMax;\n this._reconnectionDela yMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.s etMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments .length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @pr ivate\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect i f it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this. _readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n c onst self = this;\n this._readyState = \"opening\";\n this.skipRec onnect = false;\n // emit `open`\n const openSubDestroy = on(socke t, \"open\", function () {\n self.onopen();\n fn && fn();\ n });\n // emit `error`\n const errorSub = on(socket, \"err or\", (err) => {\n self.cleanup();\n self._readyState = \" closed\";\n this.emitReserved(\"error\", err);\n if (fn) { \n fn(err);\n }\n else {\n / / Only do this if there is no fn to handle the error\n self.maybe ReconnectOnOpen();\n }\n });\n if (false !== this._time out) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'o pen' event\n }\n // set timer\n const timer = t his.setTimeoutFn(() => {\n openSubDestroy();\n soc ket.close();\n // @ts-ignore\n socket.emit(\"error \", new Error(\"timeout\"));\n }, timeout);\n if (this.opt s.autoUnref) {\n timer.unref();\n }\n this. subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs. push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\ n this.emitReserved(\"open\");\n // add new subs\n const so cket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bin d(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", th is.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this. decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Calle d upon a ping.\n *\n * @private\n */\n onping() {\n this.e mitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n this.decoder.add(data);\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @priv ate\n */\n ondecoded(packet) {\n this.emitReserved(\"packet\", pac ket);\n }\n /**\n * Called upon socket error.\n *\n * @private \n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n } \n /**\n * Creates a new socket for the given `nsp`.\n *\n * @ret urn {Socket}\n * @public\n */\n socket(nsp, opts) {\n let sock et = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(th is, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @pa ram socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n ret urn;\n }\n }\n this._close();\n }\n /**\n * W rites a packet.\n *\n * @param packet\n * @private\n */\n _pa cket(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine. write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Cle an up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this. engine.close();\n }\n /**\n * Alias for close()\n *\n * @priva te\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose( reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", rea son, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconne ction.\n *\n * @private\n */\n reconnect() {\n if (this._r econnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_faile d\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if ( self.skipReconnect)\n return;\n this.emitReser ved(\"reconnect_attempt\", self.backoff.attempts);\n // check aga in for the case socket closed in above events\n if (self.skipReco nnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitRese rved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n } \n }\n /**\n * Called upon successful reconnect.\n *\n * @priv ate\n */\n onreconnect() {\n const attempt = this.backoff.attempts ;\n this._reconnecting = false;\n this.backoff.reset();\n t his.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./ url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \". /socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup( uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, op ts.path || \"/socket.io\");\n const source = parsed.source;\n const id = p arsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manag er(source, opts);\n }\n else {\n if (!cache[id]) {\n cac he[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connec t(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\ n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Ex pose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { pars e } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object mea nt to mimic window.location.\n * Defaults to window.location.\n * @public \n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.h ost;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(htt ps?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\ n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `loca lhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws) $/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n els e if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.inde xOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host; \n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.po rt ? \"\" : \":\" + obj.port);\n return obj;\n}\n"],"names":["PACKET_TYPES"," Object","create","PACKET_TYPES_REVERSE","keys","forEach","key","ERROR_PACKET","t ype","data","withNativeBlob","Blob","prototype","toString","call","withNativeArr ayBuffer","ArrayBuffer","encodePacket","supportsBinary","callback","obj","encode BlobAsBase64","isView","buffer","fileReader","FileReader","onload","content","re sult","split","readAsDataURL","chars","lookup","Uint8Array","i","length","charCo deAt","decodePacket","encodedPacket","binaryType","mapBinary","charAt","decodeBa se64Packet","substring","decoded","base64","encoded1","encoded2","encoded3","enc oded4","bufferLength","len","p","arraybuffer","bytes","decode","SEPARATOR","Stri ng","fromCharCode","Emitter","mixin","on","addEventListener","event","fn","_call backs","this","push","once","off","apply","arguments","removeListener","removeAl lListeners","removeEventListener","cb","callbacks","splice","emit","args","Array ","slice","emitReserved","listeners","hasListeners","self","window","Function"," pick","attr","reduce","acc","k","hasOwnProperty","NATIVE_SET_TIMEOUT","setTimeou t","NATIVE_CLEAR_TIMEOUT","clearTimeout","installTimerFunctions","opts","useNati veTimers","setTimeoutFn","bind","globalThis","clearTimeoutFn","prev","TransportE rror","reason","description","context","Error","Transport","writable","query","r eadyState","socket","doOpen","doClose","onClose","packets","write","packet","onP acket","details","alphabet","map","seed","encode","num","encoded","Math","floor" ,"yeast","now","Date","str","encodeURIComponent","qs","qry","pairs","l","pair"," decodeURIComponent","value","XMLHttpRequest","err","hasCORS","xdomain","e","conc at","join","empty","hasXHR2","responseType","Polling","polling","location","isSS L","protocol","port","xd","hostname","xs","secure","forceBase64","poll","onPause ","pause","_this2","total","doPoll","encodedPayload","encodedPackets","decodedPa cket","decodePayload","_this3","onOpen","close","_this4","count","encodePayload" ,"_this5","doWrite","schema","timestampRequests","timestampParam","sid","b64","N umber","encodedQuery","indexOf","path","Request","uri","req","request","method", "xhrStatus","_this6","onError","onData","_this7","pollXhr","async","undefined"," xscheme","xhr","open","extraHeaders","setDisableHeaderCheck","setRequestHeader", "withCredentials","requestTimeout","timeout","onreadystatechange","status","_thi s9","onLoad","send","document","index","requestsCount","requests","cleanup","fro mError","abort","responseText","attachEvent","unloadHandler","nextTick","Promise ","resolve","then","WebSocket","MozWebSocket","isReactNative","navigator","produ ct","toLowerCase","WS","check","protocols","headers","ws","addEventListeners","o nopen","autoUnref","_socket","unref","onclose","closeEvent","onmessage","ev","on error","lastPacket","name","transports","websocket","re","parts","parse","src"," b","replace","m","exec","source","host","authority","ipv6uri","pathNames","regx" ,"names","substr","queryKey","$0","$1","$2","Socket","_this","writeBuffer","prev BufferLen","_extends","agent","upgrade","rememberUpgrade","rejectUnauthorized"," perMessageDeflate","threshold","transportOptions","closeOnBeforeunload","id","up grades","pingInterval","pingTimeout","pingTimeoutTimer","transport","offlineEven tListener","EIO","priorWebsocketSuccess","createTransport","shift","setTransport ","onDrain","failed","onTransportOpen","msg","upgrading","flush","freezeTranspor t","error","onTransportClose","onupgrade","to","probe","onHandshake","JSON","res etPingTimeout","sendPacket","code","filterUpgrades","maxPayload","getWritablePac kets","payloadSize","c","utf8Length","ceil","byteLength","size","options","compr ess","cleanupAndClose","waitForUpgrade","filteredUpgrades","j","utf8Write","view ","offset","setUint8","_encode","defers","hi","lo","_str","_length","_offset","i sFinite","pow","_float","isArray","time","getTime","_bin","toJSON","allKeys","en code_1","buf","DataView","deferIndex","deferWritten","nextOffset","defer","defer Length","bin","setFloat64","Decoder","_buffer","_view","byteOffset","_array","_p arse","_map","string","chr","end","byte","getUint8","utf8Read","prefix","getUint 16","getUint32","getInt8","getFloat32","getFloat64","getInt16","getInt32","decod e_1","decoder","require$$0","require$$1","module","msgpack","PacketType","Packet Type_1","CONNECT","DISCONNECT","EVENT","ACK","CONNECT_ERROR","isInteger","isStri ng","isObject","Encoder","add","checkPacket","nsp","isDataValid","destroy","RESE RVED_EVENTS","freeze","connect","connect_error","disconnect","disconnecting","ne wListener","io","connected","receiveBuffer","sendBuffer","ids","acks","flags","a uth","_autoConnect","subs","onpacket","subEvents","_readyState","unshift","ack", "pop","_registerAckCallback","isTransportWritable","engine","discardPacket","not ifyOutgoingListeners","timer","_packet","onconnect","BINARY_EVENT","onevent","BI NARY_ACK","onack","ondisconnect","message","emitEvent","_anyListeners","sent","e mitBuffered","subDestroy","listener","_anyOutgoingListeners","Backoff","ms","min ","max","factor","jitter","attempts","duration","rand","random","deviation","res et","setMin","setMax","setJitter","Manager","_a","nsps","reconnection","reconnec tionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizati onFactor","backoff","_parser","parser","encoder","autoConnect","v","_reconnectio n","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconne ctionDelayMax","_timeout","_reconnecting","reconnect","Engine","skipReconnect"," openSubDestroy","errorSub","maybeReconnectOnOpen","onping","ondata","ondecoded", "active","_close","delay","onreconnect","attempt","cache","_typeof","parsed","lo c","test","href","url","sameNamespace","forceNew","multiplex"],"mappings":";;;;; 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 O,GAAG,QAASK,KAAK6O,QAAQzM,KAAKpC,OAC9BL,GAAG,SAAUK,KAAKwD,SAASpB,KAAKpC,OAChCL, GAAG,QAASK,KAAKqI,QAAQjG,KAAKpC,OAC9BL,GAAG,SAAS,SAAA8C,UAAUoE,EAAKzD,QAAQ,kBAAm BX,2BAQ/D,SAAMoJ,cACEyC,EAAYtO,KAAK0O,gBAAgB7C,GACjCiD,GAAS,EACb1B,EAAOqB,uBAAwB ,MACzBM,EAAkB,WAChBD,IAEJR,EAAU9E,KAAK,CAAC,CAAElN,KAAM,OAAQC,KAAM,WACtC+R,EAAUp O,KAAK,UAAU,SAAA8O,OACjBF,KAEA,SAAWE,EAAI1S,MAAQ,UAAY0S,EAAIzS,KAAM,IAC7CyK,EAAK iI,WAAY,EACjBjI,EAAKhG,aAAa,YAAasN,IAC1BA,EACD,OACJlB,EAAOqB,sBAAwB,cAAgBH,EAAUz C,KACzD7E,EAAKsH,UAAUjI,OAAM,WACbyI,GAEA,WAAa9H,EAAKhE,aAEtB6G,IACA7C,EAAK4H,aAA aN,GAClBA,EAAU9E,KAAK,CAAC,CAAElN,KAAM,aACxB0K,EAAKhG,aAAa,UAAWsN,GAC7BA,EAAY,KA CZtH,EAAKiI,WAAY,EACjBjI,EAAKkI,gBAGR,KACKnK,EAAM,IAAInC,MAAM,eAEtBmC,EAAIuJ,UAA YA,EAAUzC,KAC1B7E,EAAKhG,aAAa,eAAgB+D,kBAIrCoK,IACDL,IAGJA,GAAS,EACTjF,IACAyE,EA AUvH,QACVuH,EAAY,UAGV3C,EAAU,SAAA5G,OACNqK,EAAQ,IAAIxM,MAAM,gBAAkBmC,GAE1CqK,EAA Md,UAAYA,EAAUzC,KAC5BsD,IACAnI,EAAKhG,aAAa,eAAgBoO,aAE7BC,IACL1D,EAAQ,6BAGHJ,IAC LI,EAAQ,0BAGH2D,EAAUC,GACXjB,GAAaiB,EAAG1D,OAASyC,EAAUzC,MACnCsD,QAIFtF,EAAU,WAC ZyE,EAAUhO,eAAe,OAAQyO,GACjCT,EAAUhO,eAAe,QAASqL,GAClC2C,EAAUhO,eAAe,QAAS+O,GACl CrI,EAAK7G,IAAI,QAASoL,GAClBvE,EAAK7G,IAAI,YAAamP,IAE1BhB,EAAUpO,KAAK,OAAQ6O,GAC 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 GACAyI,GAAI/X,GACJ0X,QAAS1X"} {"version":3,"file":"socket.io.msgpack.min.js","sources":["../node_modules/engin e.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/co ntrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/encodeP acket.browser.js","../node_modules/engine.io-parser/build/esm/decodePacket.brows er.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@s ocket.io/component-emitter/index.mjs","../node_modules/engine.io-client/build/es m/globalThis.browser.js","../node_modules/engine.io-client/build/esm/util.js",". ./node_modules/engine.io-client/build/esm/contrib/yeast.js","../node_modules/eng ine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/es m/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/contrib/has-co rs.js","../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.bro wser.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../ node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser .js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../no de_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engi ne.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/bu ild/esm/socket.js","../node_modules/engine.io-client/build/esm/index.js","../nod e_modules/notepack.io/browser/encode.js","../node_modules/notepack.io/browser/de code.js","../node_modules/notepack.io/lib/index.js","../node_modules/component-e mitter/index.js","../node_modules/socket.io-msgpack-parser/index.js","../build/e sm/on.js","../build/esm/socket.js","../build/esm/contrib/backo2.js","../build/es m/manager.js","../build/esm/index.js","../build/esm/url.js"],"sourcesContent":[" const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[ \"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \ "2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACK ET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TY PES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_ REVERSE, ERROR_PACKET };\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghij klmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexpor t const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer) , i, len = bytes.length, base64 = '';\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 i f (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + ' =';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length , i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.lengt h - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2 ] === '=') {\n bufferLength--;\n }\n }\n const arraybuff er = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n fo r (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[ base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)]; \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 return arraybuffer;\n};\n","import { PACKET _TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"functi on\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toStrin g.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = t ypeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"fu nction\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanc eof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, call back) => {\n if (withNativeBlob && data instanceof Blob) {\n if (suppo rtsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(dat a))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), ca llback);\n }\n }\n // plain string\n return callback(PACKET_TYPE S[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => { \n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback( \"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexpor t default encodePacket;\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \ "./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nc onst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodeP acket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"str ing\") {\n return {\n type: \"message\",\n data: ma pBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedP acket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type ];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return enco dedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type], \n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decode d = decode(data);\n return mapBinary(decoded, binaryType);\n }\n el se {\n return { base64: true, data }; // fallback for old browsers\n } \n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([d ata]) : data;\n case \"arraybuffer\":\n default:\n retu rn data; // assuming the data is already an ArrayBuffer\n }\n};\nexport defau lt decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport dec odePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30) ; // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst enc odePayload = (packets, callback) => {\n // some packets may be added to the a rray while encoding, so the initial length must be saved\n const length = pac kets.length;\n const encodedPackets = new Array(length);\n let count = 0;\ n packets.forEach((packet, i) => {\n // force base64 encoding for bina ry packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n }); \n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n cons t encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPac ket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { enco dePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @p aram {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(o bj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[ key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._call backs['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n retu rn this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Fu nction} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.appl y(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this; \n};\n\n/**\n * Remove the given callback for `event` or all\n * registered call backs.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitt er}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeLis tener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventLi stener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n / / all\n if (0 == arguments.length) {\n this._callbacks = {};\n return thi s;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\ n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == argument s.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n cal lbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arr ays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\ n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prot otype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n v ar args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].a pply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserve d events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype. emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._cal lbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` hand lers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n \nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners( event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof se lf !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globa lThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n ret urn attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a ref erence to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nex port function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj. clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33; \n// we could also have used `new Blob([obj]).size`, but it isn't supported in I E9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math .ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(s tr) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i+ +) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n lengt h += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\ n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","// imported from https://github.com/unshifti o/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZab cdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @p aram {Number} num The number to convert.\n * @returns {String} The string repres entation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded ;\n num = Math.floor(num / length);\n } while (num > 0);\n return e ncoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\ n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(s tr) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n dec oded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/* *\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id. \n * @api public\n */\nexport function yeast() {\n const now = encode(+new Da te());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\" ;\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError ex tends Error {\n constructor(reason, description, context) {\n super(re ason);\n this.description = description;\n this.context = context; \n this.type = \"TransportError\";\n }\n}\nexport class Transport exte nds Emitter {\n /**\n * Transport abstract constructor.\n *\n * @ param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions( this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param des cription\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, c ontext) {\n super.emitReserved(\"error\", new TransportError(reason, desc ription, context));\n return this;\n }\n /**\n * Opens the tran sport.\n *\n * @api public\n */\n open() {\n if (\"closed\ " === this.readyState || \"\" === this.readyState) {\n this.readyStat e = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */ \n close() {\n if (\"opening\" === this.readyState || \"open\" === thi s.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets ) {\n if (\"open\" === this.readyState) {\n this.write(packets );\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /* *\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\ n * @param {String} data\n * @api protected\n */\n onData(data) { \n const packet = decodePacket(data, this.socket.binaryType);\n th is.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitRe served(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystri ng\n * Returns string representation of the object\n *\n * @param {Object}\n * @ api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\ n str += '&';\n str += encodeURIComponent(i) + '=' + e ncodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private \n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split ('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURICompon ent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com /component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpReques t !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncat ch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim f or xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\ni mport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport functi on XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest & & (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\ n }\n catch (e) { }\n if (!xdomain) {\n try {\n retur n new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTT P\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { e ncode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttpre quest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = ( function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Ob ject} opts\n * @api public\n */\n constructor(opts) {\n super( opts);\n this.polling = false;\n if (typeof location !== \"undefin ed\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `locatio n.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80 \";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== is SSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n g et name() {\n return \"polling\";\n }\n /**\n * Opens the socke t (triggers polling). We write a PING message to determine\n * when the tran sport is open.\n *\n * @api private\n */\n doOpen() {\n th is.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Funct ion} callback upon buffers are flushed and transport is paused\n * @api priv ate\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n - -total || pause();\n });\n }\n if (!this.wr itable) {\n total++;\n this.once(\"drain\", functi on () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /** \n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserv ed(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = p acket => {\n // if its the first message we consider the transport op en\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.typ e) {\n this.onClose({ description: \"transport closed by the serv er\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binary Type).forEach(callback);\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.emitReserved(\"pol lComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n } \n /**\n * For polling, send a close packet.\n *\n * @api private \n */\n doClose() {\n const close = () => {\n this.writ e([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we'r e trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Fu nction} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /** \n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.op ts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache bu sting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supp ortsBinary && !query.sid) {\n query.b64 = 1;\n }\n // a void port if default for schema\n if (this.opts.port &&\n ((\" https\" === schema && Number(this.opts.port) !== 443) ||\n (\"htt p\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\ " : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api pr ivate\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this .xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send. \n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \" POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\" xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Star ts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\" xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req; \n }\n}\nexport class Request extends Emitter {\n /**\n * Request cons tructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this , opts);\n this.opts = opts;\n this.method = opts.method || \"GET\ ";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create(); \n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opt s, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \ "rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLH ttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, t his.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true); \n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch ( e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF- 8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"wit hCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCr edentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr. onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.sta tus) {\n this.onLoad();\n }\n e lse {\n // make sure the `error` event handler that's user-se t\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onEr ror(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can on ly be only bound *after* this exception\n // occurs. Therefore, also , we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request. requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @ api private\n */\n cleanup(fromError) {\n if (\"undefined\" === ty peof this.xhr || null === this.xhr) {\n return;\n }\n t his.xhr.onreadystatechange = empty;\n if (fromError) {\n try { \n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete R equest.requests[this.index];\n }\n this.xhr = null;\n }\n /* *\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"su ccess\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this. cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\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 */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n atta chEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListen er === \"function\") {\n const terminationEvent = \"onpagehide\" in globa lThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, u nloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in R equest.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise. resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => P romise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebS ocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\ne xport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \ "../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nim port { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./ websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\ n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \ "undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.p roduct.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} c onnection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\ n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = t his.uri();\n const protocols = this.opts.protocols;\n // React Nat ive only supports the 'headers' option, and will print a warning if anything els e is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphras e\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \" protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity \");\n if (this.opts.extraHeaders) {\n opts.headers = this.opt s.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : n ew WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaul tBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds eve nt listeners to the socket\n *\n * @api private\n */\n addEventLi steners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnr ef) {\n this.ws._socket.unref();\n }\n this .onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data); \n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of pa ckets.\n * @api private\n */\n write(packets) {\n this.writabl e = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === pack ets.length - 1;\n encodePacket(packet, this.supportsBinary, data => { \n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n i f (packet.options) {\n opts.compress = packet.options.com press;\n }\n if (this.opts.perMessageDefla te) {\n const len = \n // @ts-igno re\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.t hreshold) {\n opts.compress = false;\n }\n }\n }\n // Sometim es the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingB rowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.s end(data, opts);\n }\n }\n catc h (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to c lear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n ur i() {\n let query = this.query || {};\n const schema = this.opts.s ecure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if de fault for schema\n if (this.opts.port &&\n ((\"wss\" === schem a && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && N umber(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampReq uests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinar y) {\n query.b64 = 1;\n }\n const encodedQuery = encode (query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts .hostname + \"]\" : this.opts.hostname) +\n port +\n this. opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \" ./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https:// github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^ :@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?: [a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\ \/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nco nst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'passw ord', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor' \n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring (0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\ n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1 ).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').re place(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri. pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri[' query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.subs tr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.lengt h - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n co nst data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n r eturn data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } fr om \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\n import { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } f rom \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor (uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof u ri) {\n opts = uri;\n uri = null;\n }\n if ( uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\ n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n o pts.hostname = parse(opts.host).host;\n }\n installTimerFunctions( this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"ht tps:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefine d\" ? location.hostname : \"localhost\");\n this.port =\n opts .port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.trans ports = opts.transports || [\"polling\", \"websocket\"];\n this.readyStat e = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.op ts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \ "string\") {\n this.opts.query = decode(this.opts.query);\n }\ n // set on handshake\n this.id = null;\n this.upgrades = n ull;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeo f addEventListener === \"function\") {\n if (this.opts.closeOnBeforeu nload) {\n // Firefox closes the connection when the \"beforeunlo ad\" event is emitted but not Chrome. This event listener\n // en sures every browser behaves the same (no \"disconnect\" event at the Socket.IO l evel when the page is\n // closed/reloaded)\n addE ventListener(\"beforeunload\", () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport .close();\n }\n }, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEve ntListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this .offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @par am {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this. opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query. sid = this.id;\n const opts = Object.assign({}, this.opts.transportOption s[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n / **\n * Initializes transport to use and starts probe.\n *\n * @api p rivate\n */\n open() {\n let transport;\n if (this.opts.rem emberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.t ransports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\ ";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn( () => {\n this.emitReserved(\"error\", \"No transports available\ ");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"ope ning\";\n // Retry with the next transport if the transport is disabled ( jsonp: false)\n try {\n transport = this.createTransport(trans port);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open() ;\n this.setTransport(transport);\n }\n /**\n * Sets the curren t transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onErr or.bind(this))\n .on(\"close\", reason => this.onClose(\"transport cl ose\", reason));\n }\n /**\n * Probes a transport.\n *\n * @pa ram {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = ( ) => {\n if (failed)\n return;\n transport. send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packe t\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\" , transport);\n if (!transport)\n retu rn;\n Socket.priorWebsocketSuccess = \"websocket\" === transp ort.name;\n this.transport.pause(() => {\n if (failed)\n return;\n i f (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport );\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.n ame;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const on error = err => {\n const error = new Error(\"probe error: \" + err);\ n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error );\n };\n function onTransportClose() {\n onerror(\"tra nsport closed\");\n }\n // When the socket is closed while we're p robing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n fu nction onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Rem ove all listeners on the transport and on self\n const cleanup = () => {\ n transport.removeListener(\"open\", onTransportOpen);\n t ransport.removeListener(\"error\", onerror);\n transport.removeListen er(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once (\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", on close);\n this.once(\"upgrading\", onupgrade);\n transport.open(); \n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.p robe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handle s a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readySt ate ||\n \"closing\" === this.readyState) {\n this.emitRes erved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) { \n case \"open\":\n this.onHandshake(JSON.pars e(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket( \"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n c ase \"message\":\n this.emitReserved(\"data\", packet.data);\ n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n / **\n * Called upon handshake completion.\n *\n * @param {Object} dat a - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrade s(data.upgrades);\n this.pingInterval = data.pingInterval;\n this. pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if ( \"closed\" === this.readyState)\n return;\n this.resetPingTime out();\n }\n /**\n * Sets and resets ping timeout timer based on serve r pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = t his.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n } , this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Call ed on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBuff erLen = 0 is very important\n // for example, when upgrading, upgrade pac ket is sent over,\n // and a nonzero prevBufferLen could cause problems o n `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.l ength) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers .\n *\n * @api private\n */\n flush() {\n if (\"closed\" ! == this.readyState &&\n this.transport.writable &&\n !this .upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writ eBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets. length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value s ent by the server (only for HTTP\n * long-polling)\n *\n * @private\ n */\n getWritablePackets() {\n const shouldCheckPayloadSize = thi s.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first pa cket type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && p ayloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0 , i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a mess age.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chainin g.\n * @api public\n */\n write(msg, options, fn) {\n this.sen dPacket(\"message\", msg, options, fn);\n return this;\n }\n send(m sg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} opt ions.\n * @param {Function} callback function.\n * @api private\n */ \n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \" closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", pac ket);\n this.writeBuffer.push(packet);\n if (fn)\n this .once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const c lose = () => {\n this.onClose(\"forced close\");\n this.tr ansport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\ ", cleanupAndClose);\n close();\n };\n const waitForUpg rade = () => {\n // wait for upgrade to finish since we can't send pa ckets while pausing a transport\n this.once(\"upgrade\", cleanupAndCl ose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.lengt h) {\n this.once(\"drain\", () => {\n if (this .upgrading) {\n waitForUpgrade();\n }\ n else {\n close();\n }\n });\n }\n else if (this.upgrading) { \n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /** \n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emit Reserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.read yState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeo utFn(this.pingTimeoutTimer);\n // stop event from firing again for tr ansport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.remo veAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"offline\", this.offlineEventListener, f alse);\n }\n // set ready state\n this.readySta te = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason , description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters up grades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrade s(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this .transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrade s[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { Socket } from \"./socket.js\";\nexport { Socket };\nexpo rt const protocol = Socket.protocol;\nexport { Transport } from \"./transport.js \";\nexport { transports } from \"./transports/index.js\";\nexport { installTime rFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\ ";\n","'use strict';\n\nfunction utf8Write(view, offset, str) {\n var c = 0;\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n view.setUint8(offset++, c);\n }\n else if (c < 0x80 0) {\n view.setUint8(offset++, 0xc0 | (c >> 6));\n view.setUint8(offse t++, 0x80 | (c & 0x3f));\n }\n else if (c < 0xd800 || c >= 0xe000) {\n view.setUint8(offset++, 0xe0 | (c >> 12));\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n else {\n i++;\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCode At(i) & 0x3ff));\n view.setUint8(offset++, 0xf0 | (c >> 18));\n view.s etUint8(offset++, 0x80 | (c >> 12) & 0x3f);\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\n view.setUint8(offset++, 0x80 | (c & 0x3f));\n }\n }\n}\n\nfunction utf8Length(str) {\n var c = 0, length = 0;\n for (var i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\ n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n } \n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n\nfunction _encode(bytes, defers, value) {\n var type = typeof value, i = 0, l = 0, hi = 0 , lo = 0, length = 0, size = 0;\n\n if (type === 'string') {\n length = utf8 Length(value);\n\n // fixstr\n if (length < 0x20) {\n bytes.push(leng th | 0xa0);\n size = 1;\n }\n // str 8\n else if (length < 0x100) {\n bytes.push(0xd9, length);\n size = 2;\n }\n // str 16\n e lse if (length < 0x10000) {\n bytes.push(0xda, length >> 8, length);\n size = 3;\n }\n // str 32\n else if (length < 0x100000000) {\n by tes.push(0xdb, length >> 24, length >> 16, length >> 8, length);\n size = 5 ;\n } else {\n throw new Error('String too long');\n }\n defers.pu sh({ _str: value, _length: length, _offset: bytes.length });\n return size + length;\n }\n if (type === 'number') {\n // TODO: encode to float 32?\n\n // float 64\n if (Math.floor(value) !== value || !isFinite(value)) {\n bytes.push(0xcb);\n defers.push({ _float: value, _length: 8, _offset: byte s.length });\n return 9;\n }\n\n if (value >= 0) {\n // positive fixnum\n if (value < 0x80) {\n bytes.push(value);\n return 1 ;\n }\n // uint 8\n if (value < 0x100) {\n bytes.push(0xcc , value);\n return 2;\n }\n // uint 16\n if (value < 0x100 00) {\n bytes.push(0xcd, value >> 8, value);\n return 3;\n }\ n // uint 32\n if (value < 0x100000000) {\n bytes.push(0xce, va lue >> 24, value >> 16, value >> 8, value);\n return 5;\n }\n / / uint 64\n hi = (value / Math.pow(2, 32)) >> 0;\n lo = value >>> 0;\n bytes.push(0xcf, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo > > 8, lo);\n return 9;\n } else {\n // negative fixnum\n if (va lue >= -0x20) {\n bytes.push(value);\n return 1;\n }\n / / int 8\n if (value >= -0x80) {\n bytes.push(0xd0, value);\n return 2;\n }\n // int 16\n if (value >= -0x8000) {\n byte s.push(0xd1, value >> 8, value);\n return 3;\n }\n // int 32\n if (value >= -0x80000000) {\n bytes.push(0xd2, value >> 24, value >> 16, value >> 8, value);\n return 5;\n }\n // int 64\n hi = Math.floor(value / Math.pow(2, 32));\n lo = value >>> 0;\n bytes.pus h(0xd3, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 9;\n }\n }\n if (type === 'object') {\n // nil\n if (value = == null) {\n bytes.push(0xc0);\n return 1;\n }\n\n if (Array.isA rray(value)) {\n length = value.length;\n\n // fixarray\n if (len gth < 0x10) {\n bytes.push(length | 0x90);\n size = 1;\n }\n // array 16\n else if (length < 0x10000) {\n bytes.push(0xdc, l ength >> 8, length);\n size = 3;\n }\n // array 32\n else if (length < 0x100000000) {\n bytes.push(0xdd, length >> 24, length >> 16 , length >> 8, length);\n size = 5;\n } else {\n throw new Er ror('Array too large');\n }\n for (i = 0; i < length; i++) {\n size += _encode(bytes, defers, value[i]);\n }\n return size;\n }\n\ n // fixext 8 / Date\n if (value instanceof Date) {\n var time = valu e.getTime();\n hi = Math.floor(time / Math.pow(2, 32));\n lo = time >> > 0;\n bytes.push(0xd7, 0, hi >> 24, hi >> 16, hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo);\n return 10;\n }\n\n if (value instanceof ArrayBuf fer) {\n length = value.byteLength;\n\n // bin 8\n if (length < 0 x100) {\n bytes.push(0xc4, length);\n size = 2;\n } else\n // bin 16\n if (length < 0x10000) {\n bytes.push(0xc5, length >> 8, length);\n size = 3;\n } else\n // bin 32\n if (length < 0x100000000) {\n bytes.push(0xc6, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Buffer too large');\n }\n defers.push({ _bin: value, _length: length, _offse t: bytes.length });\n return size + length;\n }\n\n if (typeof value. toJSON === 'function') {\n return _encode(bytes, defers, value.toJSON());\n }\n\n var keys = [], key = '';\n\n var allKeys = Object.keys(value);\n for (i = 0, l = allKeys.length; i < l; i++) {\n key = allKeys[i];\n if (typeof value[key] !== 'function') {\n keys.push(key);\n }\n }\n length = keys.length;\n\n // fixmap\n if (length < 0x10) {\n bytes.push(length | 0x80);\n size = 1;\n }\n // map 16\n else if ( length < 0x10000) {\n bytes.push(0xde, length >> 8, length);\n size = 3;\n }\n // map 32\n else if (length < 0x100000000) {\n bytes.push (0xdf, length >> 24, length >> 16, length >> 8, length);\n size = 5;\n } else {\n throw new Error('Object too large');\n }\n\n for (i = 0; i < length; i++) {\n key = keys[i];\n size += _encode(bytes, defers, key );\n size += _encode(bytes, defers, value[key]);\n }\n return size;\n }\n // false/true\n if (type === 'boolean') {\n bytes.push(value ? 0xc3 : 0xc2);\n return 1;\n }\n // fixext 1 / undefined\n if (type === 'undefine d') {\n bytes.push(0xd4, 0, 0);\n return 3;\n }\n throw new Error('Could not encode');\n}\n\nfunction encode(value) {\n var bytes = [];\n var defers = [];\n var size = _encode(bytes, defers, value);\n var buf = new ArrayBuffer(s ize);\n var view = new DataView(buf);\n\n var deferIndex = 0;\n var deferWrit ten = 0;\n var nextOffset = -1;\n if (defers.length > 0) {\n nextOffset = d efers[0]._offset;\n }\n\n var defer, deferLength = 0, offset = 0;\n for (var i = 0, l = bytes.length; i < l; i++) {\n view.setUint8(deferWritten + i, byte s[i]);\n if (i + 1 !== nextOffset) { continue; }\n defer = defers[deferInd ex];\n deferLength = defer._length;\n offset = deferWritten + nextOffset;\ n if (defer._bin) {\n var bin = new Uint8Array(defer._bin);\n for ( var j = 0; j < deferLength; j++) {\n view.setUint8(offset + j, bin[j]);\n }\n } else if (defer._str) {\n utf8Write(view, offset, defer._str) ;\n } else if (defer._float !== undefined) {\n view.setFloat64(offset, d efer._float);\n }\n deferIndex++;\n deferWritten += deferLength;\n i f (defers[deferIndex]) {\n nextOffset = defers[deferIndex]._offset;\n }\ n }\n return buf;\n}\n\nmodule.exports = encode;\n","'use strict';\n\nfunction Decoder(buffer) {\n this._offset = 0;\n if (buffer instanceof ArrayBuffer) {\ n this._buffer = buffer;\n this._view = new DataView(this._buffer);\n } e lse if (ArrayBuffer.isView(buffer)) {\n this._buffer = buffer.buffer;\n th is._view = new DataView(this._buffer, buffer.byteOffset, buffer.byteLength);\n } else {\n throw new Error('Invalid argument');\n }\n}\n\nfunction utf8Read( view, offset, length) {\n var string = '', chr = 0;\n for (var i = offset, end = offset + length; i < end; i++) {\n var byte = view.getUint8(i);\n if (( byte & 0x80) === 0x00) {\n string += String.fromCharCode(byte);\n cont inue;\n }\n if ((byte & 0xe0) === 0xc0) {\n string += String.fromChar Code(\n ((byte & 0x1f) << 6) |\n (view.getUint8(++i) & 0x3f)\n );\n continue;\n }\n if ((byte & 0xf0) === 0xe0) {\n string += String.fromCharCode(\n ((byte & 0x0f) << 12) |\n ((view.getUint8( ++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0)\n );\n continue;\n }\n if ((byte & 0xf8) === 0xf0) {\n chr = ((byte & 0x07 ) << 18) |\n ((view.getUint8(++i) & 0x3f) << 12) |\n ((view.getUin t8(++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0);\n if ( chr >= 0x010000) { // surrogate pair\n chr -= 0x010000;\n string + = String.fromCharCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);\n } e lse {\n string += String.fromCharCode(chr);\n }\n continue;\n }\n throw new Error('Invalid byte ' + byte.toString(16));\n }\n return st ring;\n}\n\nDecoder.prototype._array = function (length) {\n var value = new Ar ray(length);\n for (var i = 0; i < length; i++) {\n value[i] = this._parse() ;\n }\n return value;\n};\n\nDecoder.prototype._map = function (length) {\n v ar key = '', value = {};\n for (var i = 0; i < length; i++) {\n key = this._ parse();\n value[key] = this._parse();\n }\n return value;\n};\n\nDecoder.p rototype._str = function (length) {\n var value = utf8Read(this._view, this._of fset, length);\n this._offset += length;\n return value;\n};\n\nDecoder.protot ype._bin = function (length) {\n var value = this._buffer.slice(this._offset, t his._offset + length);\n this._offset += length;\n return value;\n};\n\nDecode r.prototype._parse = function () {\n var prefix = this._view.getUint8(this._off set++);\n var value, length = 0, type = 0, hi = 0, lo = 0;\n\n if (prefix < 0x c0) {\n // positive fixint\n if (prefix < 0x80) {\n return prefix;\n }\n // fixmap\n if (prefix < 0x90) {\n return this._map(prefix & 0 x0f);\n }\n // fixarray\n if (prefix < 0xa0) {\n return this._arra y(prefix & 0x0f);\n }\n // fixstr\n return this._str(prefix & 0x1f);\n }\n\n // negative fixint\n if (prefix > 0xdf) {\n return (0xff - prefix + 1) * -1;\n }\n\n switch (prefix) {\n // nil\n case 0xc0:\n return n ull;\n // false\n case 0xc2:\n return false;\n // true\n case 0 xc3:\n return true;\n\n // bin\n case 0xc4:\n length = this._vie w.getUint8(this._offset);\n this._offset += 1;\n return this._bin(leng th);\n case 0xc5:\n length = this._view.getUint16(this._offset);\n this._offset += 2;\n return this._bin(length);\n case 0xc6:\n lengt h = this._view.getUint32(this._offset);\n this._offset += 4;\n return this._bin(length);\n\n // ext\n case 0xc7:\n length = this._view.getU int8(this._offset);\n type = this._view.getInt8(this._offset + 1);\n t his._offset += 2;\n return [type, this._bin(length)];\n case 0xc8:\n length = this._view.getUint16(this._offset);\n type = this._view.getInt8( this._offset + 2);\n this._offset += 3;\n return [type, this._bin(leng th)];\n case 0xc9:\n length = this._view.getUint32(this._offset);\n type = this._view.getInt8(this._offset + 4);\n this._offset += 5;\n r eturn [type, this._bin(length)];\n\n // float\n case 0xca:\n value = this._view.getFloat32(this._offset);\n this._offset += 4;\n return val ue;\n case 0xcb:\n value = this._view.getFloat64(this._offset);\n t his._offset += 8;\n return value;\n\n // uint\n case 0xcc:\n val ue = this._view.getUint8(this._offset);\n this._offset += 1;\n return value;\n case 0xcd:\n value = this._view.getUint16(this._offset);\n this._offset += 2;\n return value;\n case 0xce:\n value = this._vi ew.getUint32(this._offset);\n this._offset += 4;\n return value;\n case 0xcf:\n hi = this._view.getUint32(this._offset) * Math.pow(2, 32);\n lo = this._view.getUint32(this._offset + 4);\n this._offset += 8;\n return hi + lo;\n\n // int\n case 0xd0:\n value = this._view.getInt 8(this._offset);\n this._offset += 1;\n return value;\n case 0xd1:\ n value = this._view.getInt16(this._offset);\n this._offset += 2;\n return value;\n case 0xd2:\n value = this._view.getInt32(this._offset );\n this._offset += 4;\n return value;\n case 0xd3:\n hi = th is._view.getInt32(this._offset) * Math.pow(2, 32);\n lo = this._view.getUin t32(this._offset + 4);\n this._offset += 8;\n return hi + lo;\n\n / / fixext\n case 0xd4:\n type = this._view.getInt8(this._offset);\n this._offset += 1;\n if (type === 0x00) {\n this._offset += 1;\n return void 0;\n }\n return [type, this._bin(1)];\n case 0xd5:\ n type = this._view.getInt8(this._offset);\n this._offset += 1;\n return [type, this._bin(2)];\n case 0xd6:\n type = this._view.getInt8(t his._offset);\n this._offset += 1;\n return [type, this._bin(4)];\n case 0xd7:\n type = this._view.getInt8(this._offset);\n this._offset += 1;\n if (type === 0x00) {\n hi = this._view.getInt32(this._offset ) * Math.pow(2, 32);\n lo = this._view.getUint32(this._offset + 4);\n this._offset += 8;\n return new Date(hi + lo);\n }\n return [type, this._bin(8)];\n case 0xd8:\n type = this._view.getInt8(this._of fset);\n this._offset += 1;\n return [type, this._bin(16)];\n\n // str\n case 0xd9:\n length = this._view.getUint8(this._offset);\n th is._offset += 1;\n return this._str(length);\n case 0xda:\n length = this._view.getUint16(this._offset);\n this._offset += 2;\n return th is._str(length);\n case 0xdb:\n length = this._view.getUint32(this._offs et);\n this._offset += 4;\n return this._str(length);\n\n // array\ n case 0xdc:\n length = this._view.getUint16(this._offset);\n this. _offset += 2;\n return this._array(length);\n case 0xdd:\n length = this._view.getUint32(this._offset);\n this._offset += 4;\n return thi s._array(length);\n\n // map\n case 0xde:\n length = this._view.getUi nt16(this._offset);\n this._offset += 2;\n return this._map(length);\n case 0xdf:\n length = this._view.getUint32(this._offset);\n this._ offset += 4;\n return this._map(length);\n }\n\n throw new Error('Could n ot parse');\n};\n\nfunction decode(buffer) {\n var decoder = new Decoder(buffer );\n var value = decoder._parse();\n if (decoder._offset !== buffer.byteLength ) {\n throw new Error((buffer.byteLength - decoder._offset) + ' trailing byte s');\n }\n return value;\n}\n\nmodule.exports = decode;\n","exports.encode = r equire('./encode');\nexports.decode = require('./decode');\n","\r\n/**\r\n * Exp ose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.ex ports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @ api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj) ;\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Objec t} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(ob j) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototy pe[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `even t` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmi tter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = th is._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically re moved.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @retur n {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(ev ent, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return th is;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * re gistered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn \r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off = \r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners = \r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._call backs = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) { \r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific ev ent\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) retu rn this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // re move specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i+ +) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$ ' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` wit h the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n\r\n var args = new Array(argumen ts.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for ( var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (v ar i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(th is, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return a rray of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return { Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(ev ent){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks[ '$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` han dlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api publ ic\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return ! ! this.listeners(event).length;\r\n};\r\n","var msgpack = require(\"notepack.io\ ");\nvar Emitter = require(\"component-emitter\");\n\nexports.protocol = 5;\n\n/ **\n * Packet types (see https://github.com/socketio/socket.io-protocol)\n */\n\ nvar PacketType = (exports.PacketType = {\n CONNECT: 0,\n DISCONNECT: 1,\n EV ENT: 2,\n ACK: 3,\n CONNECT_ERROR: 4,\n});\n\nvar isInteger =\n Number.isInte ger ||\n function (value) {\n return (\n typeof value === \"number\" && \n isFinite(value) &&\n Math.floor(value) === value\n );\n };\n\nv ar isString = function (value) {\n return typeof value === \"string\";\n};\n\nv ar isObject = function (value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n};\n\nfunction Encoder() {}\n\nEncoder.prototype.enco de = function (packet) {\n return [msgpack.encode(packet)];\n};\n\nfunction Dec oder() {}\n\nEmitter(Decoder.prototype);\n\nDecoder.prototype.add = function (ob j) {\n var decoded = msgpack.decode(obj);\n this.checkPacket(decoded);\n this .emit(\"decoded\", decoded);\n};\n\nfunction isDataValid(decoded) {\n switch (d ecoded.type) {\n case PacketType.CONNECT:\n return decoded.data === unde fined || isObject(decoded.data);\n case PacketType.DISCONNECT:\n return decoded.data === undefined;\n case PacketType.CONNECT_ERROR:\n return is String(decoded.data) || isObject(decoded.data);\n default:\n return Arra y.isArray(decoded.data);\n }\n}\n\nDecoder.prototype.checkPacket = function (de coded) {\n var isTypeValid =\n isInteger(decoded.type) &&\n decoded.type >= PacketType.CONNECT &&\n decoded.type <= PacketType.CONNECT_ERROR;\n if (! isTypeValid) {\n throw new Error(\"invalid packet type\");\n }\n\n if (!isS tring(decoded.nsp)) {\n throw new Error(\"invalid namespace\");\n }\n\n if (!isDataValid(decoded)) {\n throw new Error(\"invalid payload\");\n }\n\n v ar isAckValid = decoded.id === undefined || isInteger(decoded.id);\n if (!isAck Valid) {\n throw new Error(\"invalid packet id\");\n }\n};\n\nDecoder.protot ype.destroy = function () {};\n\nexports.Encoder = Encoder;\nexports.Decoder = D ecoder;\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return f unction subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketT ype } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emit ter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * Thes e events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.free ze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnect ing: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html #events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\nexp ort class Socket extends Emitter {\n /**\n * `Socket` constructor.\n *\n * @public\n */\n constructor(io, nsp, opts) {\n super();\n this.connected = false;\n this.receiveBuffer = [];\n this. sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.f lags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io ._autoConnect)\n this.open();\n }\n /**\n * Whether the soc ket is currently disconnected\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet ev ents\n *\n * @private\n */\n subEvents() {\n if (this.subs )\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\" , this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(th is)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager con nects or reconnects\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @public\n */\n connect() {\n if (this.connected)\n return this;\n th is.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.o pen(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for connect ()\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * @return self\n * @public\n */ \n send(...args) {\n args.unshift(\"message\");\n this.emit.app ly(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @retu rn self\n * @public\n */\n emit(ev, ...args) {\n if (RESERVED_ EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this .flags.compress !== false;\n // event ack callback\n if (\"functio n\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack) ;\n packet.id = id;\n }\n const isTransportWritable = t his.io.engine &&\n this.io.engine.transport &&\n this.io.e ngine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListener s(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallbac k(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout = == undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer .length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeo ut);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args] );\n };\n }\n /**\n * Sends a packet.\n *\n * @param pa cket\n * @private\n */\n packet(packet) {\n packet.nsp = this. nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engin e `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.au th });\n }\n }\n /**\n * Called upon engine or manager `error`. \n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err) ;\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose (reason, description) {\n this.connected = false;\n delete this.id ;\n this.emitReserved(\"disconnect\", reason, description);\n }\n / **\n * Called with socket packet.\n *\n * @param packet\n * @pri vate\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packe t.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating- from-2-x-to-3-0/)\"));\n }\n break;\n c ase PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK :\n case PacketType.BINARY_ACK:\n this.onack(packet);\ n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONN ECT_ERROR:\n this.destroy();\n const err = new Err or(packet.data.message);\n // @ts-ignore\n err.dat a = packet.data.data;\n this.emitReserved(\"connect_error\", err) ;\n break;\n }\n }\n /**\n * Called upon a serve r event.\n *\n * @param packet\n * @private\n */\n onevent(pa cket) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.con nected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEv ent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const l istener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Pr oduces an ack callback to emit with an event.\n *\n * @private\n */\ n ack(id) {\n const self = this;\n let sent = false;\n r eturn function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self. packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Calle d upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true; \n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @pr ivate\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBu ffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io s erver disconnect\");\n }\n /**\n * Called upon forced client/server si de disconnections,\n * this method ensures the manager stops tracking us and \n * that reconnections don't get triggered for this.\n *\n * @priva te\n */\n destroy() {\n if (this.subs) {\n // clean sub scriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[ \"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually.\n *\n * @return self\n * @public\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT }) ;\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\ "io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for disconnect()\n *\n * @return self\n * @public\n */\ n close() {\n return this.disconnect();\n }\n /**\n * Sets t he compress flag.\n *\n * @param compress - if `true`, compresses the se nding data\n * @return self\n * @public\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /* *\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n * \n * @returns self\n * @public\n */\n get volatile() {\n t his.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with a n error when the\n * given number of milliseconds have elapsed without an ac knowledgement from the server:\n *\n * ```\n * socket.timeout(5000). emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n * `` `\n *\n * @returns self\n * @public\n */\n timeout(timeout) { \n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event na me is passed as the first argument to the\n * callback.\n *\n * @par am listener\n * @public\n */\n onAny(listener) {\n this._anyLi steners = this._anyListeners || [];\n this._anyListeners.push(listener);\ n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to th e\n * callback. The listener is added to the beginning of the listeners arra y.\n *\n * @param listener\n * @public\n */\n prependAny(list ener) {\n this._anyListeners = this._anyListeners || [];\n this._a nyListeners.unshift(listener);\n return this;\n }\n /**\n * Rem oves the listener that will be fired when any event is emitted.\n *\n * @param listener\n * @public\n */\n offAny(listener) {\n if (!t his._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this; \n }\n }\n }\n else {\n this. _anyListeners = [];\n }\n return this;\n }\n /**\n * Ret urns an array of listeners that are listening for any event that is specified. T his array can be manipulated,\n * e.g. to remove listeners.\n *\n * @public\n */\n listenersAny() {\n return this._anyListeners || []; \n }\n /**\n * Adds a listener that will be fired when any event is em itted. The event name is passed as the first argument to the\n * callback.\n *\n * @param listener\n *\n * <pre><code>\n *\n * socke t.onAnyOutgoing((event, ...args) => {\n * console.log(event);\n * });\ n *\n * </pre></code>\n *\n * @public\n */\n onAnyOutgoin g(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners | | [];\n this._anyOutgoingListeners.push(listener);\n return this;\ n }\n /**\n * Adds a listener that will be fired when any event is emi tted. The event name is passed as the first argument to the\n * callback. Th e listener is added to the beginning of the listeners array.\n *\n * @pa ram listener\n *\n * <pre><code>\n *\n * socket.prependAnyOutgoi ng((event, ...args) => {\n * console.log(event);\n * });\n *\n * </pre></code>\n *\n * @public\n */\n prependAnyOutgoing(listen er) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emi tted.\n *\n * @param listener\n *\n * <pre><code>\n *\n * const handler = (event, ...args) => {\n * console.log(event);\n * }\ n *\n * socket.onAnyOutgoing(handler);\n *\n * // then later\n * socket.offAnyOutgoing(handler);\n *\n * </pre></code>\n *\n * @public\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgo ingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i ]) {\n listeners.splice(i, 1);\n return th is;\n }\n }\n }\n else {\n th is._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\ n * Returns an array of listeners that are listening for any event that is s pecified. This array can be manipulated,\n * e.g. to remove listeners.\n *\n * @public\n */\n listenersAnyOutgoing() {\n return this._ anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for eac h packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOut goingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n} \n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeo ut in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport functio n Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n t his.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitt er = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api p ublic\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * M ath.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\ n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation ;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number o f attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\ n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, } from \"eng ine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser fr om \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } fr om \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emi tter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [ ];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts. path = opts.path || \"/socket.io\";\n this.opts = opts;\n installT imerFunctions(this, opts);\n this.reconnection(opts.reconnection !== fals e);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.re connectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizati onFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\ n this.backoff = new Backoff({\n min: this.reconnectionDelay() ,\n max: this.reconnectionDelayMax(),\n jitter: this.rando mizationFactor(),\n });\n this.timeout(null == opts.timeout ? 2000 0 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = u ri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this. _autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.lengt h)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === und efined)\n return this._reconnectionAttempts;\n this._reconnect ionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionD elay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === nul l || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n ra ndomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\ n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n t his._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecti ng yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!t his._reconnecting &&\n this._reconnection &&\n this.backof f.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /* *\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open (fn) {\n if (~this._readyState.indexOf(\"open\"))\n return thi s;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"openin g\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen(); \n fn && fn();\n });\n // emit `error`\n const e rrorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", er r);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestr oy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout); \n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n cle arTimeout(timer);\n });\n }\n this.subs.push(openSubDes troy);\n this.subs.push(errorSub);\n return this;\n }\n /**\ n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n thi s._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)) , on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onc lose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\ n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\");\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded( packet) {\n this.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public \n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\ n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n cons t encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < enc odedPackets.length; i++) {\n this.engine.write(encodedPackets[i], pac ket.options);\n }\n }\n /**\n * Clean up transport subscription s and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0; \n this.decoder.destroy();\n }\n /**\n * Close the current sock et.\n *\n * @private\n */\n _close() {\n this.skipReconnec t = true;\n this._reconnecting = false;\n this.onclose(\"forced cl ose\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect( ) {\n return this._close();\n }\n /**\n * Called upon engine cl ose.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \ "closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\ n }\n }\n /**\n * Attempt a reconnection.\n *\n * @priv ate\n */\n reconnect() {\n if (this._reconnecting || this.skipReco nnect)\n return this;\n const self = this;\n if (this.b ackoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset ();\n this.emitReserved(\"reconnect_failed\");\n this._rec onnecting = false;\n }\n else {\n const delay = this.ba ckoff.duration();\n this._reconnecting = true;\n const tim er = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", s elf.backoff.attempts);\n // check again for the case socket close d in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self .reconnect();\n this.emitReserved(\"reconnect_error\", er r);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\ n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Cal led upon successful reconnect.\n *\n * @private\n */\n onreconnec t() {\n const attempt = this.backoff.attempts;\n this._reconnectin g = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect \", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Manag ers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\ n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"] ;\n const newConnection = opts.forceNew ||\n opts[\"force new connecti on\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let i o;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opt s.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(p arsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g . `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compa tibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standa lone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { parse } from \"engine.io-client\ ";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request p ath of the connection\n * @param loc - An object meant to mimic window.location. \n * Defaults to window.location.\n * @public\n */\nexport function url(u ri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path s upport\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0 )) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.prot ocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.p rotocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` eq ually\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(ob j.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n cons t host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // def ine href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port );\n return obj;\n}\n"],"names":["PACKET_TYPES","Object","create","PACKET_TYP ES_REVERSE","keys","forEach","key","ERROR_PACKET","type","data","withNativeBlob" ,"Blob","prototype","toString","call","withNativeArrayBuffer","ArrayBuffer","enc odePacket","supportsBinary","callback","obj","encodeBlobAsBase64","isView","buff er","fileReader","FileReader","onload","content","result","split","readAsDataURL ","chars","lookup","Uint8Array","i","length","charCodeAt","decodePacket","encode dPacket","binaryType","mapBinary","charAt","decodeBase64Packet","substring","dec oded","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","len", "p","arraybuffer","bytes","decode","SEPARATOR","String","fromCharCode","Emitter" ,"mixin","on","addEventListener","event","fn","this","_callbacks","push","Emitte r$1","once","off","apply","arguments","removeListener","removeAllListeners","rem oveEventListener","cb","callbacks","splice","emit","args","Array","slice","emitR eserved","listeners","hasListeners","globalThisShim","self","window","Function", "pick","_len","attr","_key","reduce","acc","k","hasOwnProperty","NATIVE_SET_TIME OUT","setTimeout","NATIVE_CLEAR_TIMEOUT","clearTimeout","installTimerFunctions", "opts","useNativeTimers","setTimeoutFn","bind","globalThis","clearTimeoutFn","pr ev","TransportError","reason","description","context","_this","_classCallCheck", "_super","Error","Transport","_Emitter","_inherits","_super2","_createSuper","_t his2","writable","_assertThisInitialized","query","readyState","socket","_create Class","value","_get","_getPrototypeOf","doOpen","doClose","onClose","packets"," write","packet","onPacket","details","alphabet","map","seed","encode","num","enc oded","Math","floor","yeast","now","Date","str","encodeURIComponent","qs","qry", "pairs","l","pair","decodeURIComponent","XMLHttpRequest","err","hasCORS","XHR"," xdomain","e","concat","join","empty","hasXHR2","responseType","Polling","_Transp ort","polling","location","isSSL","protocol","port","xd","hostname","xs","secure ","forceBase64","get","poll","onPause","pause","total","doPoll","_this3","encode dPayload","encodedPackets","decodedPacket","decodePayload","onOpen","_this4","cl ose","_this5","count","encodePayload","doWrite","schema","timestampRequests","ti mestampParam","sid","b64","Number","encodedQuery","indexOf","path","_extends","R equest","uri","_this6","req","request","method","xhrStatus","onError","_this7"," onData","pollXhr","_this8","async","undefined","_this9","xscheme","xhr","open"," extraHeaders","setDisableHeaderCheck","setRequestHeader","withCredentials","requ estTimeout","timeout","onreadystatechange","status","onLoad","send","document"," index","requestsCount","requests","cleanup","fromError","abort","responseText"," attachEvent","unloadHandler","nextTick","Promise","resolve","then","WebSocket"," MozWebSocket","isReactNative","navigator","product","toLowerCase","WS","check"," protocols","headers","ws","addEventListeners","onopen","autoUnref","_socket","un ref","onclose","closeEvent","onmessage","ev","onerror","_loop","lastPacket","tra nsports","websocket","re","parts","parse","src","b","replace","m","exec","source ","host","authority","ipv6uri","pathNames","regx","names","substr","queryKey","$ 0","$1","$2","Socket","writeBuffer","prevBufferLen","agent","upgrade","rememberU pgrade","rejectUnauthorized","perMessageDeflate","threshold","transportOptions", "closeOnBeforeunload","id","upgrades","pingInterval","pingTimeout","pingTimeoutT imer","transport","offlineEventListener","name","EIO","priorWebsocketSuccess","c reateTransport","shift","setTransport","onDrain","failed","onTransportOpen","msg ","upgrading","flush","freezeTransport","error","onTransportClose","onupgrade"," to","probe","onHandshake","JSON","resetPingTimeout","sendPacket","code","filterU pgrades","maxPayload","getWritablePackets","payloadSize","c","utf8Length","ceil" ,"byteLength","size","options","compress","cleanupAndClose","waitForUpgrade","fi lteredUpgrades","j","Socket$1","utf8Write","view","offset","setUint8","_encode", "defers","hi","lo","_str","_length","_offset","isFinite","pow","_float","isArray ","time","getTime","_bin","toJSON","allKeys","encode_1","buf","DataView","deferI ndex","deferWritten","nextOffset","defer","deferLength","bin","setFloat64","Deco der","_buffer","_view","byteOffset","_array","_parse","_map","string","chr","end ","byte","getUint8","utf8Read","prefix","getUint16","getUint32","getInt8","getFl oat32","getFloat64","getInt16","getInt32","decode_1","decoder","lib","require$$0 ","require$$1","module","exports","msgpack","socket_ioMsgpackParser","PacketType ","PacketType_1","CONNECT","DISCONNECT","EVENT","ACK","CONNECT_ERROR","isInteger ","isString","isObject","Encoder","add","checkPacket","nsp","isDataValid","destr oy","Encoder_1","Decoder_1","RESERVED_EVENTS","freeze","connect","connect_error" ,"disconnect","disconnecting","newListener","io","connected","receiveBuffer","se ndBuffer","ids","acks","flags","auth","_autoConnect","subs","onpacket","subEvent s","_readyState","unshift","_len2","_key2","ack","pop","_registerAckCallback","i sTransportWritable","engine","discardPacket","notifyOutgoingListeners","timer"," _len3","_key3","_packet","onconnect","BINARY_EVENT","onevent","BINARY_ACK","onac k","ondisconnect","message","emitEvent","_anyListeners","_step","_iterator","_cr eateForOfIteratorHelper","s","n","done","f","sent","_len4","_key4","emitBuffered ","subDestroy","listener","_anyOutgoingListeners","_step2","_iterator2","Backoff ","ms","min","max","factor","jitter","attempts","duration","rand","random","devi ation","reset","setMin","setMax","setJitter","Manager","_a","nsps","reconnection ","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax"," randomizationFactor","backoff","_parser","parser","encoder","autoConnect","v","_ reconnection","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor ","_reconnectionDelayMax","_timeout","_reconnecting","reconnect","Engine","skipR econnect","openSubDestroy","errorSub","maybeReconnectOnOpen","onping","ondata"," ondecoded","_i","_nsps","active","_close","delay","onreconnect","attempt","cache ","_typeof","parsed","loc","test","href","url","sameNamespace","forceNew","multi plex"],"mappings":";;;;;qkJAAA,IAAMA,EAAeC,OAAOC,OAAO,MACnCF,EAAY,KAAW,IACvBA,EA AY,MAAY,IACxBA,EAAY,KAAW,IACvBA,EAAY,KAAW,IACvBA,EAAY,QAAc,IAC1BA,EAAY,QAAc,IAC1 BA,EAAY,KAAW,IACvB,IAAMG,EAAuBF,OAAOC,OAAO,MAC3CD,OAAOG,KAAKJ,GAAcK,SAAQ,SAAAC,G AC9BH,EAAqBH,EAAaM,IAAQA,KCP9C,IDSA,IAAMC,EAAe,CAAEC,KAAM,QAASC,KAAM,gBEXtCC,EAA iC,mBAATC,MACT,oBAATA,MACqC,6BAAzCV,OAAOW,UAAUC,SAASC,KAAKH,MACjCI,EAA+C,mBAAhBC ,YAO/BC,EAAe,WAAiBC,EAAgBC,GAAa,IALpDC,EAKSZ,IAAAA,KAAMC,IAAAA,KAC1B,OAAIC,GAAkB D,aAAgBE,KAC9BO,EACOC,EAASV,GAGTY,EAAmBZ,EAAMU,GAG/BJ,IACJN,aAAgBO,cAfVI,EAegCX, EAdN,mBAAvBO,YAAYM,OACpBN,YAAYM,OAAOF,GACnBA,GAAOA,EAAIG,kBAAkBP,cAa3BE,EACOC,EA ASV,GAGTY,EAAmB,IAAIV,KAAK,CAACF,IAAQU,GAI7CA,EAASnB,EAAaQ,IAASC,GAAQ,MAE5CY,EAA qB,SAACZ,EAAMU,GAC9B,IAAMK,EAAa,IAAIC,WAKvB,OAJAD,EAAWE,OAAS,WAChB,IAAMC,EAAUH,E AAWI,OAAOC,MAAM,KAAK,GAC7CV,EAAS,IAAMQ,IAEZH,EAAWM,cAAcrB,IDtC9BsB,EAAQ,mEAERC,E AA+B,oBAAfC,WAA6B,GAAK,IAAIA,WAAW,KAC9DC,EAAI,EAAGA,EAAIH,EAAMI,OAAQD,IAC9BF,EAA OD,EAAMK,WAAWF,IAAMA,EAkB3B,IEpBDnB,EAA+C,mBAAhBC,YAC/BqB,EAAe,SAACC,EAAeC,GACjC ,GAA6B,iBAAlBD,EACP,MAAO,CACH9B,KAAM,UACNC,KAAM+B,EAAUF,EAAeC,IAGvC,IAAM/B,EAAO8 B,EAAcG,OAAO,GAClC,MAAa,MAATjC,EACO,CACHA,KAAM,UACNC,KAAMiC,EAAmBJ,EAAcK,UAAU,GA AIJ,IAG1CpC,EAAqBK,GAIjC8B,EAAcH,OAAS,EACxB,CACE3B,KAAML,EAAqBK,GAC3BC,KAAM6B,EA AcK,UAAU,IAEhC,CACEnC,KAAML,EAAqBK,IARxBD,GAWTmC,EAAqB,SAACjC,EAAM8B,GAC9B,GAAIx B,EAAuB,CACvB,IAAM6B,EFVQ,SAACC,GACnB,IAA8DX,EAAUY,EAAUC,EAAUC,EAAUC,EAAlGC,EAA+ B,IAAhBL,EAAOV,OAAegB,EAAMN,EAAOV,OAAWiB,EAAI,EACnC,MAA9BP,EAAOA,EAAOV,OAAS,KACv Be,IACkC,MAA9BL,EAAOA,EAAOV,OAAS,IACvBe,KAGR,IAAMG,EAAc,IAAIrC,YAAYkC,GAAeI,EAAQ ,IAAIrB,WAAWoB,GAC1E,IAAKnB,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EACtBY,EAAWd,EAAOa,EAA OT,WAAWF,IACpCa,EAAWf,EAAOa,EAAOT,WAAWF,EAAI,IACxCc,EAAWhB,EAAOa,EAAOT,WAAWF,EAA I,IACxCe,EAAWjB,EAAOa,EAAOT,WAAWF,EAAI,IACxCoB,EAAMF,KAAQN,GAAY,EAAMC,GAAY,EAC5C O,EAAMF,MAAoB,GAAXL,IAAkB,EAAMC,GAAY,EACnDM,EAAMF,MAAoB,EAAXJ,IAAiB,EAAiB,GAAXC, EAE1C,OAAOI,EERaE,CAAO9C,GACvB,OAAO+B,EAAUI,EAASL,GAG1B,MAAO,CAAEM,QAAQ,EAAMpC,K AAAA,IAGzB+B,EAAY,SAAC/B,EAAM8B,GACrB,MACS,SADDA,GAEO9B,aAAgBO,YAAc,IAAIL,KAAK,C AACF,IAGxCA,GC3Cb+C,EAAYC,OAAOC,aAAa,ICI/B,SAASC,EAAQvC,GACtB,GAAIA,EAAK,OAWX,SA AeA,GACb,IAAK,IAAId,KAAOqD,EAAQ/C,UACtBQ,EAAId,GAAOqD,EAAQ/C,UAAUN,GAE/B,OAAOc,E AfSwC,CAAMxC,GA2BxBuC,EAAQ/C,UAAUiD,GAClBF,EAAQ/C,UAAUkD,iBAAmB,SAASC,EAAOC,GAIn D,OAHAC,KAAKC,WAAaD,KAAKC,YAAc,IACpCD,KAAKC,WAAW,IAAMH,GAASE,KAAKC,WAAW,IAAMH,IA AU,IAC7DI,KAAKH,GACDC,MAaFG,EAACxD,UAAUyD,KAAO,SAASN,EAAOC,GACvC,SAASH,IACPI,KAA KK,IAAIP,EAAOF,GAChBG,EAAGO,MAAMN,KAAMO,WAKjB,OAFAX,EAAGG,GAAKA,EACRC,KAAKJ,GAAG E,EAAOF,GACRI,MAaFG,EAACxD,UAAU0D,IAClBX,EAAQ/C,UAAU6D,eAClBd,EAAQ/C,UAAU8D,mBAC lBf,EAAQ/C,UAAU+D,oBAAsB,SAASZ,EAAOC,GAItD,GAHAC,KAAKC,WAAaD,KAAKC,YAAc,GAGjC,GA AKM,UAAUrC,OAEjB,OADA8B,KAAKC,WAAa,GACXD,KAIT,IAUIW,EAVAC,EAAYZ,KAAKC,WAAW,IAAMH ,GACtC,IAAKc,EAAW,OAAOZ,KAGvB,GAAI,GAAKO,UAAUrC,OAEjB,cADO8B,KAAKC,WAAW,IAAMH,GA CtBE,KAKT,IAAK,IAAI/B,EAAI,EAAGA,EAAI2C,EAAU1C,OAAQD,IAEpC,IADA0C,EAAKC,EAAU3C,M ACJ8B,GAAMY,EAAGZ,KAAOA,EAAI,CAC7Ba,EAAUC,OAAO5C,EAAG,GACpB,MAUJ,OAJyB,IAArB2C,E AAU1C,eACL8B,KAAKC,WAAW,IAAMH,GAGxBE,MAWTN,EAAQ/C,UAAUmE,KAAO,SAAShB,GAChCE,KAAK C,WAAaD,KAAKC,YAAc,GAKrC,IAHA,IAAIc,EAAO,IAAIC,MAAMT,UAAUrC,OAAS,GACpC0C,EAAYZ,K AAKC,WAAW,IAAMH,GAE7B7B,EAAI,EAAGA,EAAIsC,UAAUrC,OAAQD,IACpC8C,EAAK9C,EAAI,GAAKs C,UAAUtC,GAG1B,GAAI2C,EAEG,CAAI3C,EAAI,EAAb,IAAK,IAAWiB,GADhB0B,EAAYA,EAAUK,MAAM ,IACI/C,OAAQD,EAAIiB,IAAOjB,EACjD2C,EAAU3C,GAAGqC,MAAMN,KAAMe,GAI7B,OAAOf,MAIFG, EAACxD,UAAUuE,aAAexB,EAAQ/C,UAAUmE,KAUnDpB,EAAQ/C,UAAUwE,UAAY,SAASrB,GAErC,OADAE ,KAAKC,WAAaD,KAAKC,YAAc,GAC9BD,KAAKC,WAAW,IAAMH,IAAU,IAWzCJ,EAAQ/C,UAAUyE,aAAe,S AAStB,GACxC,QAAUE,KAAKmB,UAAUrB,GAAO5B,QCvK3B,IAAMmD,EACW,oBAATC,KACAA,KAEgB,oBA AXC,OACLA,OAGAC,SAAS,cAATA,GCPR,SAASC,EAAKtE,GAAc,IAAA,IAAAuE,EAAAnB,UAAArC,OAAN yD,EAAM,IAAAX,MAAAU,EAAA,EAAAA,EAAA,EAAA,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAM C,EAAA,GAAArB,UAAAqB,GAC/B,OAAOD,EAAKE,QAAO,SAACC,EAAKC,GAIrB,OAHI5E,EAAI6E,eAAe D,KACnBD,EAAIC,GAAK5E,EAAI4E,IAEVD,IACR,IAGP,IAAMG,EAAqBC,WACrBC,EAAuBC,aACtB,SA ASC,EAAsBlF,EAAKmF,GACnCA,EAAKC,iBACLpF,EAAIqF,aAAeP,EAAmBQ,KAAKC,GAC3CvF,EAAIwF ,eAAiBR,EAAqBM,KAAKC,KAG/CvF,EAAIqF,aAAeN,WAAWO,KAAKC,GACnCvF,EAAIwF,eAAiBP,aAAa K,KAAKC,QChB1BE,ECAfC,gCACF,SAAAA,EAAYC,EAAQC,EAAaC,GAAS,IAAAC,EAAA,OAAAC,EAAAlD ,KAAA6C,IACtCI,EAAAE,EAAAtG,KAAAmD,KAAM8C,IACDC,YAAcA,EACnBE,EAAKD,QAAUA,EACfC,E AAK1G,KAAO,iBAJ0B0G,iBADjBG,QAQhBC,EAAb,SAAAC,GAAAC,EAAAF,EAAAC,GAAA,IAAAE,EAAAC ,EAAAJ,GAOI,SAAAA,EAAYf,GAAM,IAAAoB,EAAA,OAAAR,EAAAlD,KAAAqD,IACdK,EAAAF,EAAA3G, KAAAmD,OACK2D,UAAW,EAChBtB,EAAqBuB,EAAAF,GAAOpB,GAC5BoB,EAAKpB,KAAOA,EACZoB,EAAK G,MAAQvB,EAAKuB,MAClBH,EAAKI,WAAa,GAClBJ,EAAKK,OAASzB,EAAKyB,OAPLL,EAPtB,OAAAM,E AAAX,EAAA,CAAA,CAAAhH,IAAA,UAAA4H,MAyBI,SAAQnB,EAAQC,EAAaC,GAEzB,OADAkB,EAAmBC,E AAAd,EAAA1G,WAAA,eAAAqD,MAAAnD,KAAAmD,KAAA,QAAS,IAAI6C,EAAeC,EAAQC,EAAaC,IAC7DhD ,OA3Bf,CAAA3D,IAAA,OAAA4H,MAkCI,WAKI,MAJI,WAAajE,KAAK8D,YAAc,KAAO9D,KAAK8D,aAC5C 9D,KAAK8D,WAAa,UAClB9D,KAAKoE,UAEFpE,OAvCf,CAAA3D,IAAA,QAAA4H,MA8CI,WAKI,MAJI,YA AcjE,KAAK8D,YAAc,SAAW9D,KAAK8D,aACjD9D,KAAKqE,UACLrE,KAAKsE,WAEFtE,OAnDf,CAAA3D, IAAA,OAAA4H,MA2DI,SAAKM,GACG,SAAWvE,KAAK8D,YAChB9D,KAAKwE,MAAMD,KA7DvB,CAAAlI,IA AA,SAAA4H,MAwEI,WACIjE,KAAK8D,WAAa,OAClB9D,KAAK2D,UAAW,EAChBO,EAAAC,EAAAd,EAAA1G ,WAAA,eAAAqD,MAAAnD,KAAAmD,KAAmB,UA3E3B,CAAA3D,IAAA,SAAA4H,MAmFI,SAAOzH,GACH,IAA MiI,EAASrG,EAAa5B,EAAMwD,KAAK+D,OAAOzF,YAC9C0B,KAAK0E,SAASD,KArFtB,CAAApI,IAAA,W AAA4H,MA4FI,SAASQ,GACLP,EAAmBC,EAAAd,EAAA1G,WAAA,eAAAqD,MAAAnD,KAAAmD,KAAA,SAAUy E,KA7FrC,CAAApI,IAAA,UAAA4H,MAoGI,SAAQU,GACJ3E,KAAK8D,WAAa,SAClBI,EAAmBC,EAAAd,E AAA1G,WAAA,eAAAqD,MAAAnD,KAAAmD,KAAA,QAAS2E,OAtGpCtB,EAAA,CAA+B3D,GDTzBkF,EAAW,m EAAmEhH,MAAM,IAAkBiH,EAAM,GAC9GC,EAAO,EAAG7G,EAAI,EAQX,SAAS8G,EAAOC,GACnB,IAAIC, EAAU,GACd,GACIA,EAAUL,EAASI,EAZ6E,IAY7DC,EACnCD,EAAME,KAAKC,MAAMH,EAb+E,UAc3FA,E AAM,GACf,OAAOC,EAsBJ,SAASG,IACZ,IAAMC,EAAMN,GAAQ,IAAIO,MACxB,OAAID,IAAQzC,GACDkC ,EAAO,EAAGlC,EAAOyC,GACrBA,EAAM,IAAMN,EAAOD,KAK9B,KAAO7G,EA9CiG,GA8CrFA,IACf4G,E AAID,EAAS3G,IAAMA,EEzChB,SAAS8G,EAAO5H,GACnB,IAAIoI,EAAM,GACV,IAAK,IAAItH,KAAKd, EACNA,EAAI6E,eAAe/D,KACfsH,EAAIrH,SACJqH,GAAO,KACXA,GAAOC,mBAAmBvH,GAAK,IAAMuH,m BAAmBrI,EAAIc,KAGpE,OAAOsH,EAQJ,SAASjG,EAAOmG,GAGnB,IAFA,IAAIC,EAAM,GACNC,EAAQF, EAAG7H,MAAM,KACZK,EAAI,EAAG2H,EAAID,EAAMzH,OAAQD,EAAI2H,EAAG3H,IAAK,CAC1C,IAAI4H ,EAAOF,EAAM1H,GAAGL,MAAM,KAC1B8H,EAAII,mBAAmBD,EAAK,KAAOC,mBAAmBD,EAAK,IAE/D,OAA OH,EC/BX,IAAIzB,GAAQ,EACZ,IACIA,EAAkC,oBAAnB8B,gBACX,oBAAqB,IAAIA,eAEjC,MAAOC,IA IA,IAAMC,EAAUhC,ECPhB,SAASiC,EAAI5D,GAChB,IAAM6D,EAAU7D,EAAK6D,QAErB,IACI,GAAI,o BAAuBJ,kBAAoBI,GAAWF,GACtD,OAAO,IAAIF,eAGnB,MAAOK,IACP,IAAKD,EACD,IACI,OAAO,IAAI zD,EAAW,CAAC,UAAU2D,OAAO,UAAUC,KAAK,OAAM,qBAEjE,MAAOF,KCRf,SAASG,MACT,IAAMC,GAIK ,MAHK,IAAIT,EAAe,CAC3BI,SAAS,IAEMM,aAEVC,GAAb,SAAAC,GAAApD,EAAAmD,EAAAC,GAAA,IAA AxD,EAAAM,EAAAiD,GAOI,SAAAA,EAAYpE,GAAM,IAAAW,EAGd,GAHcC,EAAAlD,KAAA0G,IACdzD,EA AAE,EAAAtG,KAAAmD,KAAMsC,IACDsE,SAAU,EACS,oBAAbC,SAA0B,CACjC,IAAMC,EAAQ,WAAaD,SA ASE,SAChCC,EAAOH,SAASG,KAEfA,IACDA,EAAOF,EAAQ,MAAQ,MAE3B7D,EAAKgE,GACoB,oBAAbJ,U ACJvE,EAAK4E,WAAaL,SAASK,UAC3BF,IAAS1E,EAAK0E,KACtB/D,EAAKkE,GAAK7E,EAAK8E,SAAWN ,EAK9B,IAAMO,EAAc/E,GAAQA,EAAK+E,YAnBnB,OAoBdpE,EAAKhG,eAAiBuJ,KAAYa,EApBpBpE,EA PtB,OAAAe,EAAA0C,EAAA,CAAA,CAAArK,IAAA,OAAAiL,IAgCI,WACI,MAAO,YAjCf,CAAAjL,IAAA, SAAA4H,MAyCI,WACIjE,KAAKuH,SA1Cb,CAAAlL,IAAA,QAAA4H,MAkDI,SAAMuD,GAAS,IAAA9D,EAA A1D,KACXA,KAAK8D,WAAa,UAClB,IAAM2D,EAAQ,WACV/D,EAAKI,WAAa,SAClB0D,KAEJ,GAAIxH,KA AK4G,UAAY5G,KAAK2D,SAAU,CAChC,IAAI+D,EAAQ,EACR1H,KAAK4G,UACLc,IACA1H,KAAKI,KAAK, gBAAgB,aACpBsH,GAASD,QAGdzH,KAAK2D,WACN+D,IACA1H,KAAKI,KAAK,SAAS,aACbsH,GAASD,aA KnBA,MAxEZ,CAAApL,IAAA,OAAA4H,MAgFI,WACIjE,KAAK4G,SAAU,EACf5G,KAAK2H,SACL3H,KAAK kB,aAAa,UAnF1B,CAAA7E,IAAA,SAAA4H,MA0FI,SAAOzH,GAAM,IAAAoL,EAAA5H,MTvFK,SAAC6H,E AAgBvJ,GAGnC,IAFA,IAAMwJ,EAAiBD,EAAejK,MAAM2B,GACtCgF,EAAU,GACPtG,EAAI,EAAGA,EAA I6J,EAAe5J,OAAQD,IAAK,CAC5C,IAAM8J,EAAgB3J,EAAa0J,EAAe7J,GAAIK,GAEtD,GADAiG,EAAQ rE,KAAK6H,GACc,UAAvBA,EAAcxL,KACd,MAGR,OAAOgI,GS4FHyD,CAAcxL,EAAMwD,KAAK+D,OAAOz F,YAAYlC,SAd3B,SAAAqI,GAMb,GAJI,YAAcmD,EAAK9D,YAA8B,SAAhBW,EAAOlI,MACxCqL,EAAKK, SAGL,UAAYxD,EAAOlI,KAEnB,OADAqL,EAAKtD,QAAQ,CAAEvB,YAAa,oCACrB,EAGX6E,EAAKlD,SAA SD,MAKd,WAAazE,KAAK8D,aAElB9D,KAAK4G,SAAU,EACf5G,KAAKkB,aAAa,gBACd,SAAWlB,KAAK8D ,YAChB9D,KAAKuH,UAhHrB,CAAAlL,IAAA,UAAA4H,MA2HI,WAAU,IAAAiE,EAAAlI,KACAmI,EAAQ,W ACVD,EAAK1D,MAAM,CAAC,CAAEjI,KAAM,YAEpB,SAAWyD,KAAK8D,WAChBqE,IAKAnI,KAAKI,KAAK, OAAQ+H,KArI9B,CAAA9L,IAAA,QAAA4H,MA+II,SAAMM,GAAS,IAAA6D,EAAApI,KACXA,KAAK2D,UAA W,ET5JF,SAACY,EAASrH,GAE5B,IAAMgB,EAASqG,EAAQrG,OACjB4J,EAAiB,IAAI9G,MAAM9C,GAC7 BmK,EAAQ,EACZ9D,EAAQnI,SAAQ,SAACqI,EAAQxG,GAErBjB,EAAayH,GAAQ,GAAO,SAAApG,GACxBy J,EAAe7J,GAAKI,IACdgK,IAAUnK,GACZhB,EAAS4K,EAAexB,KAAK/G,USmJrC+I,CAAc/D,GAAS,SA AA/H,GACnB4L,EAAKG,QAAQ/L,GAAM,WACf4L,EAAKzE,UAAW,EAChByE,EAAKlH,aAAa,iBApJlC,CA AA7E,IAAA,MAAA4H,MA6JI,WACI,IAAIJ,EAAQ7D,KAAK6D,OAAS,GACpB2E,EAASxI,KAAKsC,KAAK8 E,OAAS,QAAU,OACxCJ,EAAO,IAEP,IAAUhH,KAAKsC,KAAKmG,oBACpB5E,EAAM7D,KAAKsC,KAAKoG, gBAAkBtD,KAEjCpF,KAAK/C,gBAAmB4G,EAAM8E,MAC/B9E,EAAM+E,IAAM,GAGZ5I,KAAKsC,KAAK0E ,OACR,UAAYwB,GAAqC,MAA3BK,OAAO7I,KAAKsC,KAAK0E,OACpC,SAAWwB,GAAqC,KAA3BK,OAAO7I, KAAKsC,KAAK0E,SAC3CA,EAAO,IAAMhH,KAAKsC,KAAK0E,MAE3B,IAAM8B,EAAe/D,EAAOlB,GAE5B, OAAQ2E,EACJ,QAF8C,IAArCxI,KAAKsC,KAAK4E,SAAS6B,QAAQ,KAG5B,IAAM/I,KAAKsC,KAAK4E,S AAW,IAAMlH,KAAKsC,KAAK4E,UACnDF,EACAhH,KAAKsC,KAAK0G,MACTF,EAAa5K,OAAS,IAAM4K,EA Ae,MArLxD,CAAAzM,IAAA,UAAA4H,MA6LI,WAAmB,IAAX3B,yDAAO,GAEX,OADA2G,EAAc3G,EAAM,CA AE2E,GAAIjH,KAAKiH,GAAIE,GAAInH,KAAKmH,IAAMnH,KAAKsC,MAChD,IAAI4G,GAAQlJ,KAAKmJ, MAAO7G,KA/LvC,CAAAjG,IAAA,UAAA4H,MAwMI,SAAQzH,EAAMuD,GAAI,IAAAqJ,EAAApJ,KACRqJ,E AAMrJ,KAAKsJ,QAAQ,CACrBC,OAAQ,OACR/M,KAAMA,IAEV6M,EAAIzJ,GAAG,UAAWG,GAClBsJ,EAAI zJ,GAAG,SAAS,SAAC4J,EAAWxG,GACxBoG,EAAKK,QAAQ,iBAAkBD,EAAWxG,QA/MtD,CAAA3G,IAAA, SAAA4H,MAuNI,WAAS,IAAAyF,EAAA1J,KACCqJ,EAAMrJ,KAAKsJ,UACjBD,EAAIzJ,GAAG,OAAQI,KA AK2J,OAAOlH,KAAKzC,OAChCqJ,EAAIzJ,GAAG,SAAS,SAAC4J,EAAWxG,GACxB0G,EAAKD,QAAQ,iBA AkBD,EAAWxG,MAE9ChD,KAAK4J,QAAUP,MA7NvB3C,EAAA,CAA6BrD,GAgOhB6F,GAAb,SAAA5F,GAAA C,EAAA2F,EAAA5F,GAAA,IAAAE,EAAAC,EAAAyF,GAOI,SAAYC,EAAAA,EAAK7G,GAAM,IAAAuH,EAAA ,OAAA3G,EAAAlD,KAAAkJ,GAEnB7G,EAAqBuB,EADrBiG,EAAArG,EAAA3G,KAAAmD,OAC4BsC,GAC5B uH,EAAKvH,KAAOA,EACZuH,EAAKN,OAASjH,EAAKiH,QAAU,MAC7BM,EAAKV,IAAMA,EACXU,EAAKC,O AAQ,IAAUxH,EAAKwH,MAC5BD,EAAKrN,UAAOuN,IAAczH,EAAK9F,KAAO8F,EAAK9F,KAAO,KAClDqN, EAAK5N,SARc4N,EAP3B,OAAA7F,EAAAkF,EAAA,CAAA,CAAA7M,IAAA,SAAA4H,MAsBI,WAAS,IAAA+F ,EAAAhK,KACCsC,EAAOb,EAAKzB,KAAKsC,KAAM,QAAS,MAAO,MAAO,aAAc,OAAQ,KAAM,UAAW,qBAAs B,aACjHA,EAAK6D,UAAYnG,KAAKsC,KAAK2E,GAC3B3E,EAAK2H,UAAYjK,KAAKsC,KAAK6E,GAC3B,I AAM+C,EAAOlK,KAAKkK,IAAM,IAAInE,EAAezD,GAC3C,IACI4H,EAAIC,KAAKnK,KAAKuJ,OAAQvJ,K AAKmJ,IAAKnJ,KAAK8J,OACrC,IACI,GAAI9J,KAAKsC,KAAK8H,aAEV,IAAK,IAAInM,KADTiM,EAAI G,uBAAyBH,EAAIG,uBAAsB,GACzCrK,KAAKsC,KAAK8H,aAChBpK,KAAKsC,KAAK8H,aAAapI,eAAe/D ,IACtCiM,EAAII,iBAAiBrM,EAAG+B,KAAKsC,KAAK8H,aAAanM,IAK/D,MAAOmI,IACP,GAAI,SAAWp G,KAAKuJ,OAChB,IACIW,EAAII,iBAAiB,eAAgB,4BAEzC,MAAOlE,IAEX,IACI8D,EAAII,iBAAiB,S AAU,OAEnC,MAAOlE,IAEH,oBAAqB8D,IACrBA,EAAIK,gBAAkBvK,KAAKsC,KAAKiI,iBAEhCvK,KAAK sC,KAAKkI,iBACVN,EAAIO,QAAUzK,KAAKsC,KAAKkI,gBAE5BN,EAAIQ,mBAAqB,WACjB,IAAMR,EAA IpG,aAEV,MAAQoG,EAAIS,QAAU,OAAST,EAAIS,OACnCX,EAAKY,SAKLZ,EAAKxH,cAAa,WACdwH,EAA KP,QAA8B,iBAAfS,EAAIS,OAAsBT,EAAIS,OAAS,KAC5D,KAGXT,EAAIW,KAAK7K,KAAKxD,MAElB,MA AO4J,GAOH,YAHApG,KAAKwC,cAAa,WACdwH,EAAKP,QAAQrD,KACd,GAGiB,oBAAb0E,WACP9K,KAAK+ K,MAAQ7B,EAAQ8B,gBACrB9B,EAAQ+B,SAASjL,KAAK+K,OAAS/K,QApF3C,CAAA3D,IAAA,UAAA4H,M A4FI,SAAQ+B,GACJhG,KAAKkB,aAAa,QAAS8E,EAAKhG,KAAKkK,KACrClK,KAAKkL,SAAQ,KA9FrB,C AAA7O,IAAA,UAAA4H,MAqGI,SAAQkH,GACJ,QAAI,IAAuBnL,KAAKkK,KAAO,OAASlK,KAAKkK,IAArD ,CAIA,GADAlK,KAAKkK,IAAIQ,mBAAqBnE,GAC1B4E,EACA,IACInL,KAAKkK,IAAIkB,QAEb,MAAOhF ,IAEa,oBAAb0E,iBACA5B,EAAQ+B,SAASjL,KAAK+K,OAEjC/K,KAAKkK,IAAM,QAnHnB,CAAA7N,IAA A,SAAA4H,MA0HI,WACI,IAAMzH,EAAOwD,KAAKkK,IAAImB,aACT,OAAT7O,IACAwD,KAAKkB,aAAa,O AAQ1E,GAC1BwD,KAAKkB,aAAa,WAClBlB,KAAKkL,aA/HjB,CAAA7O,IAAA,QAAA4H,MAuII,WACIjE, KAAKkL,cAxIbhC,EAAA,CAA6BxJ,GAkJ7B,GAPAwJ,GAAQ8B,cAAgB,EACxB9B,GAAQ+B,SAAW,GAMK, oBAAbH,SAEP,GAA2B,mBAAhBQ,YAEPA,YAAY,WAAYC,SAEvB,GAAgC,mBAArB1L,iBAAiC,CAE7CA,iB ADyB,eAAgB6C,EAAa,WAAa,SAChC6I,IAAe,GAG1D,SAASA,KACL,IAAK,IAAItN,KAAKiL,GAAQ+B,S ACd/B,GAAQ+B,SAASjJ,eAAe/D,IAChCiL,GAAQ+B,SAAShN,GAAGmN,QC9YzB,IAAMI,GACqC,mBAAZ C,SAAqD,mBAApBA,QAAQC,QAEhE,SAAA/K,GAAE,OAAI8K,QAAQC,UAAUC,KAAKhL,IAG7B,SAACA,EA AI6B,GAAL,OAAsBA,EAAa7B,EAAI,IAGzCiL,GAAYlJ,EAAWkJ,WAAalJ,EAAWmJ,aCHtDC,GAAqC,oB AAdC,WACI,iBAAtBA,UAAUC,SACmB,gBAApCD,UAAUC,QAAQC,cACTC,GAAb,SAAAvF,GAAApD,EAAA2 I,EAAAvF,GAAA,IAAAxD,EAAAM,EAAAyI,GAOI,SAAAA,EAAY5J,GAAM,IAAAW,EAAA,OAAAC,EAAAlD ,KAAAkM,IACdjJ,EAAAE,EAAAtG,KAAAmD,KAAMsC,IACDrF,gBAAkBqF,EAAK+E,YAFdpE,EAPtB,OA AAe,EAAAkI,EAAA,CAAA,CAAA7P,IAAA,OAAAiL,IAgBI,WACI,MAAO,cAjBf,CAAAjL,IAAA,SAAA4H ,MAwBI,WACI,GAAKjE,KAAKmM,QAAV,CAIA,IAAMhD,EAAMnJ,KAAKmJ,MACXiD,EAAYpM,KAAKsC,KA AK8J,UAEtB9J,EAAOwJ,GACP,GACArK,EAAKzB,KAAKsC,KAAM,QAAS,oBAAqB,MAAO,MAAO,aAAc,OA AQ,KAAM,UAAW,qBAAsB,eAAgB,kBAAmB,SAAU,aAAc,SAAU,uBAChMtC,KAAKsC,KAAK8H,eACV9H,EA AK+J,QAAUrM,KAAKsC,KAAK8H,cAE7B,IACIpK,KAAKsM,GACyBR,GAIpB,IAAIF,GAAUzC,EAAKiD,E AAW9J,GAH9B8J,EACI,IAAIR,GAAUzC,EAAKiD,GACnB,IAAIR,GAAUzC,GAGhC,MAAOnD,GACH,OAAO hG,KAAKkB,aAAa,QAAS8E,GAEtChG,KAAKsM,GAAGhO,WAAa0B,KAAK+D,OAAOzF,YD/CR,cCgDzB0B, KAAKuM,uBAlDb,CAAAlQ,IAAA,oBAAA4H,MAyDI,WAAoB,IAAAP,EAAA1D,KAChBA,KAAKsM,GAAGE,O AAS,WACT9I,EAAKpB,KAAKmK,WACV/I,EAAK4I,GAAGI,QAAQC,QAEpBjJ,EAAKuE,UAETjI,KAAKsM, GAAGM,QAAU,SAAAC,GAAU,OAAInJ,EAAKY,QAAQ,CACzCvB,YAAa,8BACbC,QAAS6J,KAEb7M,KAAKsM ,GAAGQ,UAAY,SAAAC,GAAE,OAAIrJ,EAAKiG,OAAOoD,EAAGvQ,OACzCwD,KAAKsM,GAAGU,QAAU,SAA A5G,GAAC,OAAI1C,EAAK+F,QAAQ,kBAAmBrD,MArE/D,CAAA/J,IAAA,QAAA4H,MA6EI,SAAMM,GAAS, IAAAqD,EAAA5H,KACXA,KAAK2D,UAAW,EAGhB,IAJW,IAAAsJ,EAAA,SAIFhP,GACL,IAAMwG,EAASF, EAAQtG,GACjBiP,EAAajP,IAAMsG,EAAQrG,OAAS,EAC1ClB,EAAayH,EAAQmD,EAAK3K,gBAAgB,SAA AT,GAmBtC,IAGQoL,EAAK0E,GAAGzB,KAAKrO,GAMrB,MAAO4J,IAEH8G,GAGA1B,IAAS,WACL5D,EAA KjE,UAAW,EAChBiE,EAAK1G,aAAa,WACnB0G,EAAKpF,kBAvCXvE,EAAI,EAAGA,EAAIsG,EAAQrG,OA AQD,IAAKgP,EAAhChP,KAjFjB,CAAA5B,IAAA,UAAA4H,MAkII,gBAC2B,IAAZjE,KAAKsM,KACZtM,K AAKsM,GAAGnE,QACRnI,KAAKsM,GAAK,QArItB,CAAAjQ,IAAA,MAAA4H,MA6II,WACI,IAAIJ,EAAQ7 D,KAAK6D,OAAS,GACpB2E,EAASxI,KAAKsC,KAAK8E,OAAS,MAAQ,KACtCJ,EAAO,GAEPhH,KAAKsC,K AAK0E,OACR,QAAUwB,GAAqC,MAA3BK,OAAO7I,KAAKsC,KAAK0E,OAClC,OAASwB,GAAqC,KAA3BK,OA AO7I,KAAKsC,KAAK0E,SACzCA,EAAO,IAAMhH,KAAKsC,KAAK0E,MAGvBhH,KAAKsC,KAAKmG,oBACV5 E,EAAM7D,KAAKsC,KAAKoG,gBAAkBtD,KAGjCpF,KAAK/C,iBACN4G,EAAM+E,IAAM,GAEhB,IAAME,E AAe/D,EAAOlB,GAE5B,OAAQ2E,EACJ,QAF8C,IAArCxI,KAAKsC,KAAK4E,SAAS6B,QAAQ,KAG5B,IAA M/I,KAAKsC,KAAK4E,SAAW,IAAMlH,KAAKsC,KAAK4E,UACnDF,EACAhH,KAAKsC,KAAK0G,MACTF,EA Aa5K,OAAS,IAAM4K,EAAe,MAtKxD,CAAAzM,IAAA,QAAA4H,MA8KI,WACI,QAAS2H,OA/KjBM,EAAA,C AAwB7I,GCRX8J,GAAa,CACtBC,UAAWlB,GACXtF,QAASF,ICGP2G,GAAK,0OACLC,GAAQ,CACV,SAAU, WAAY,YAAa,WAAY,OAAQ,WAAY,OAAQ,OAAQ,WAAY,OAAQ,YAAa,OAAQ,QAAS,UAElI,SAASC,GAAMhI,G AClB,IAAMiI,EAAMjI,EAAKkI,EAAIlI,EAAIwD,QAAQ,KAAM3C,EAAIb,EAAIwD,QAAQ,MAC7C,GAAN 0E,IAAiB,GAANrH,IACXb,EAAMA,EAAI7G,UAAU,EAAG+O,GAAKlI,EAAI7G,UAAU+O,EAAGrH,GAAGs H,QAAQ,KAAM,KAAOnI,EAAI7G,UAAU0H,EAAGb,EAAIrH,SAG9F,IADA,IAwBmB2F,EACbrH,EAzBFmR ,EAAIN,GAAGO,KAAKrI,GAAO,IAAK4D,EAAM,GAAIlL,EAAI,GACnCA,KACHkL,EAAImE,GAAMrP,IAA M0P,EAAE1P,IAAM,GAU5B,OARU,GAANwP,IAAiB,GAANrH,IACX+C,EAAI0E,OAASL,EACbrE,EAAI2E ,KAAO3E,EAAI2E,KAAKpP,UAAU,EAAGyK,EAAI2E,KAAK5P,OAAS,GAAGwP,QAAQ,KAAM,KACpEvE,EA AI4E,UAAY5E,EAAI4E,UAAUL,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,KAAM,KAC9EvE,EAAI6 E,SAAU,GAElB7E,EAAI8E,UAIR,SAAmB9Q,EAAK6L,GACpB,IAAMkF,EAAO,WAAYC,EAAQnF,EAAK0E, QAAQQ,EAAM,KAAKtQ,MAAM,KACtC,KAArBoL,EAAKoF,OAAO,EAAG,IAA6B,IAAhBpF,EAAK9K,QACjC iQ,EAAMtN,OAAO,EAAG,GAEmB,KAAnCmI,EAAKoF,OAAOpF,EAAK9K,OAAS,EAAG,IAC7BiQ,EAAMtN, OAAOsN,EAAMjQ,OAAS,EAAG,GAEnC,OAAOiQ,EAZSF,CAAU9E,EAAKA,EAAG,MAClCA,EAAIkF,UAaex K,EAbUsF,EAAG,MAc1B3M,EAAO,GACbqH,EAAM6J,QAAQ,6BAA6B,SAAUY,EAAIC,EAAIC,GACrDD,IA CA/R,EAAK+R,GAAMC,MAGZhS,GAnBA2M,ECtBX,IAAasF,GAAb,SAAAnL,GAAAC,EAAAkL,EAAAnL,GA AA,IAAAH,EAAAM,EAAAgL,GAQI,SAAAA,EAAYtF,GAAgB,IAAAlG,EAAXX,yDAAO,GAAI,OAAAY,EAAA lD,KAAAyO,GACxBxL,EAAAE,EAAAtG,KAAAmD,MACImJ,GAAO,WAAoBA,EAAAA,KAC3B7G,EAAO6G,EA CPA,EAAM,MAENA,GACAA,EAAMoE,GAAMpE,GACZ7G,EAAK4E,SAAWiC,EAAI2E,KACpBxL,EAAK8E,OA A0B,UAAjB+B,EAAIpC,UAAyC,QAAjBoC,EAAIpC,SAC9CzE,EAAK0E,KAAOmC,EAAInC,KACZmC,EAAI tF,QACJvB,EAAKuB,MAAQsF,EAAItF,QAEhBvB,EAAKwL,OACVxL,EAAK4E,SAAWqG,GAAMjL,EAAKwL ,MAAMA,MAErCzL,EAAqBuB,EAAAX,GAAOX,GAC5BW,EAAKmE,OACD,MAAQ9E,EAAK8E,OACP9E,EAAK8 E,OACe,oBAAbP,UAA4B,WAAaA,SAASE,SAC/DzE,EAAK4E,WAAa5E,EAAK0E,OAEvB1E,EAAK0E,KAAO /D,EAAKmE,OAAS,MAAQ,MAEtCnE,EAAKiE,SACD5E,EAAK4E,WACoB,oBAAbL,SAA2BA,SAASK,SAAW, aAC/DjE,EAAK+D,KACD1E,EAAK0E,OACoB,oBAAbH,UAA4BA,SAASG,KACvCH,SAASG,KACT/D,EAAKm E,OACD,MACA,MAClBnE,EAAKkK,WAAa7K,EAAK6K,YAAc,CAAC,UAAW,aACjDlK,EAAKa,WAAa,GAClB b,EAAKyL,YAAc,GACnBzL,EAAK0L,cAAgB,EACrB1L,EAAKX,KAAO2G,EAAc,CACtBD,KAAM,aACN4F, OAAO,EACPrE,iBAAiB,EACjBsE,SAAS,EACTnG,eAAgB,IAChBoG,iBAAiB,EACjBC,oBAAoB,EACpBC ,kBAAmB,CACfC,UAAW,MAEfC,iBAAkB,GAClBC,qBAAqB,GACtB7M,GACHW,EAAKX,KAAK0G,KAAO/F, EAAKX,KAAK0G,KAAK0E,QAAQ,MAAO,IAAM,IACtB,iBAApBzK,EAAKX,KAAKuB,QACjBZ,EAAKX,KAAK uB,MAAQvE,EAAO2D,EAAKX,KAAKuB,QAGvCZ,EAAKmM,GAAK,KACVnM,EAAKoM,SAAW,KAChBpM,EAAK qM,aAAe,KACpBrM,EAAKsM,YAAc,KAEnBtM,EAAKuM,iBAAmB,KACQ,mBAArB3P,mBACHoD,EAAKX,KA AK6M,qBAIVtP,iBAAiB,gBAAgB,WACzBoD,EAAKwM,YAELxM,EAAKwM,UAAUhP,qBACfwC,EAAKwM,UA AUtH,YAEpB,GAEe,cAAlBlF,EAAKiE,WACLjE,EAAKyM,qBAAuB,WACxBzM,EAAKqB,QAAQ,kBAAmB,C AC5BvB,YAAa,6BAGrBlD,iBAAiB,UAAWoD,EAAKyM,sBAAsB,KAG/DzM,EAAKkH,OAvFmBlH,EARhC,O AAAe,EAAAyK,EAAA,CAAA,CAAApS,IAAA,kBAAA4H,MAwGI,SAAgB0L,GACZ,IAAM9L,EAAQoF,EAAc, GAAIjJ,KAAKsC,KAAKuB,OAE1CA,EAAM+L,IdnFU,EcqFhB/L,EAAM4L,UAAYE,EAEd3P,KAAKoP,KAC LvL,EAAM8E,IAAM3I,KAAKoP,IACrB,IAAM9M,EAAO2G,EAAc,GAAIjJ,KAAKsC,KAAK4M,iBAAiBS,G AAO3P,KAAKsC,KAAM,CACxEuB,MAAAA,EACAE,OAAQ/D,KACRkH,SAAUlH,KAAKkH,SACfE,OAAQpH,K AAKoH,OACbJ,KAAMhH,KAAKgH,OAEf,OAAO,IAAImG,GAAWwC,GAAMrN,KAxHpC,CAAAjG,IAAA,OAAA 4H,MA+HI,WAAO,IACCwL,EADD/L,EAAA1D,KAEH,GAAIA,KAAKsC,KAAKwM,iBACVL,EAAOoB,wBACmC ,IAA1C7P,KAAKmN,WAAWpE,QAAQ,aACxB0G,EAAY,gBAEX,IAAI,IAAMzP,KAAKmN,WAAWjP,OAK3B,Y AHA8B,KAAKwC,cAAa,WACdkB,EAAKxC,aAAa,QAAS,6BAC5B,GAIHuO,EAAYzP,KAAKmN,WAAW,GAEhC nN,KAAK8D,WAAa,UAElB,IACI2L,EAAYzP,KAAK8P,gBAAgBL,GAErC,MAAOrJ,GAGH,OAFApG,KAAKm N,WAAW4C,aAChB/P,KAAKmK,OAGTsF,EAAUtF,OACVnK,KAAKgQ,aAAaP,KA3J1B,CAAApT,IAAA,eAA A4H,MAkKI,SAAawL,GAAW,IAAA7H,EAAA5H,KAChBA,KAAKyP,WACLzP,KAAKyP,UAAUhP,qBAGnBT,K AAKyP,UAAYA,EAEjBA,EACK7P,GAAG,QAASI,KAAKiQ,QAAQxN,KAAKzC,OAC9BJ,GAAG,SAAUI,KAAK 0E,SAASjC,KAAKzC,OAChCJ,GAAG,QAASI,KAAKyJ,QAAQhH,KAAKzC,OAC9BJ,GAAG,SAAS,SAAAkD, GAAM,OAAI8E,EAAKtD,QAAQ,kBAAmBxB,QA7KnE,CAAAzG,IAAA,QAAA4H,MAqLI,SAAM0L,GAAM,IAA AzH,EAAAlI,KACJyP,EAAYzP,KAAK8P,gBAAgBH,GACjCO,GAAS,EACbzB,EAAOoB,uBAAwB,EAC/B,I AAMM,EAAkB,WAChBD,IAEJT,EAAU5E,KAAK,CAAC,CAAEtO,KAAM,OAAQC,KAAM,WACtCiT,EAAUrP,K AAK,UAAU,SAAAgQ,GACrB,IAAIF,EAEJ,GAAI,SAAWE,EAAI7T,MAAQ,UAAY6T,EAAI5T,KAAM,CAG7C ,GAFA0L,EAAKmI,WAAY,EACjBnI,EAAKhH,aAAa,YAAauO,IAC1BA,EACD,OACJhB,EAAOoB,sBAAwB, cAAgBJ,EAAUE,KACzDzH,EAAKuH,UAAUhI,OAAM,WACbyI,GAEA,WAAahI,EAAKpE,aAEtBoH,IACAhD ,EAAK8H,aAAaP,GAClBA,EAAU5E,KAAK,CAAC,CAAEtO,KAAM,aACxB2L,EAAKhH,aAAa,UAAWuO,GAC 7BA,EAAY,KACZvH,EAAKmI,WAAY,EACjBnI,EAAKoI,gBAGR,CACD,IAAMtK,EAAM,IAAI5C,MAAM,eA EtB4C,EAAIyJ,UAAYA,EAAUE,KAC1BzH,EAAKhH,aAAa,eAAgB8E,SAI9C,SAASuK,IACDL,IAGJA,GA AS,EACThF,IACAuE,EAAUtH,QACVsH,EAAY,MAGhB,IAAMzC,EAAU,SAAAhH,GACZ,IAAMwK,EAAQ,IA AIpN,MAAM,gBAAkB4C,GAE1CwK,EAAMf,UAAYA,EAAUE,KAC5BY,IACArI,EAAKhH,aAAa,eAAgBsP,I AEtC,SAASC,IACLzD,EAAQ,oBAGZ,SAASJ,IACLI,EAAQ,iBAGZ,SAAS0D,EAAUC,GACXlB,GAAakB,E AAGhB,OAASF,EAAUE,MACnCY,IAIR,IAAMrF,EAAU,WACZuE,EAAUjP,eAAe,OAAQ2P,GACjCV,EAAUj P,eAAe,QAASwM,GAClCyC,EAAUjP,eAAe,QAASiQ,GAClCvI,EAAK7H,IAAI,QAASuM,GAClB1E,EAAK 7H,IAAI,YAAaqQ,IAE1BjB,EAAUrP,KAAK,OAAQ+P,GACvBV,EAAUrP,KAAK,QAAS4M,GACxByC,EAAU rP,KAAK,QAASqQ,GACxBzQ,KAAKI,KAAK,QAASwM,GACnB5M,KAAKI,KAAK,YAAasQ,GACvBjB,EAAUt F,SAvQlB,CAAA9N,IAAA,SAAA4H,MA8QI,WAOI,GANAjE,KAAK8D,WAAa,OAClB2K,EAAOoB,sBAAwB, cAAgB7P,KAAKyP,UAAUE,KAC9D3P,KAAKkB,aAAa,QAClBlB,KAAKsQ,QAGD,SAAWtQ,KAAK8D,YAChB 9D,KAAKsC,KAAKuM,SACV7O,KAAKyP,UAAUhI,MAGf,IAFA,IAAIxJ,EAAI,EACF2H,EAAI5F,KAAKqP ,SAASnR,OACjBD,EAAI2H,EAAG3H,IACV+B,KAAK4Q,MAAM5Q,KAAKqP,SAASpR,MA3RzC,CAAA5B,IA AA,WAAA4H,MAoSI,SAASQ,GACL,GAAI,YAAczE,KAAK8D,YACnB,SAAW9D,KAAK8D,YAChB,YAAc9D,K AAK8D,WAInB,OAHA9D,KAAKkB,aAAa,SAAUuD,GAE5BzE,KAAKkB,aAAa,aACVuD,EAAOlI,MACX,IAA K,OACDyD,KAAK6Q,YAAYC,KAAKvD,MAAM9I,EAAOjI,OACnC,MACJ,IAAK,OACDwD,KAAK+Q,mBACL/Q ,KAAKgR,WAAW,QAChBhR,KAAKkB,aAAa,QAClBlB,KAAKkB,aAAa,QAClB,MACJ,IAAK,QACD,IAAM8E ,EAAM,IAAI5C,MAAM,gBAEtB4C,EAAIiL,KAAOxM,EAAOjI,KAClBwD,KAAKyJ,QAAQzD,GACb,MACJ, IAAK,UACDhG,KAAKkB,aAAa,OAAQuD,EAAOjI,MACjCwD,KAAKkB,aAAa,UAAWuD,EAAOjI,SA7TxD,C AAAH,IAAA,cAAA4H,MA0UI,SAAYzH,GACRwD,KAAKkB,aAAa,YAAa1E,GAC/BwD,KAAKoP,GAAK5S,EA AKmM,IACf3I,KAAKyP,UAAU5L,MAAM8E,IAAMnM,EAAKmM,IAChC3I,KAAKqP,SAAWrP,KAAKkR,eAAe 1U,EAAK6S,UACzCrP,KAAKsP,aAAe9S,EAAK8S,aACzBtP,KAAKuP,YAAc/S,EAAK+S,YACxBvP,KAAK mR,WAAa3U,EAAK2U,WACvBnR,KAAKiI,SAED,WAAajI,KAAK8D,YAEtB9D,KAAK+Q,qBAtVb,CAAA1U, IAAA,mBAAA4H,MA6VI,WAAmB,IAAAmE,EAAApI,KACfA,KAAK2C,eAAe3C,KAAKwP,kBACzBxP,KAAKw P,iBAAmBxP,KAAKwC,cAAa,WACtC4F,EAAK9D,QAAQ,kBACdtE,KAAKsP,aAAetP,KAAKuP,aACxBvP, KAAKsC,KAAKmK,WACVzM,KAAKwP,iBAAiB7C,UAnWlC,CAAAtQ,IAAA,UAAA4H,MA2WI,WACIjE,KAAK 0O,YAAY7N,OAAO,EAAGb,KAAK2O,eAIhC3O,KAAK2O,cAAgB,EACjB,IAAM3O,KAAK0O,YAAYxQ,OACv B8B,KAAKkB,aAAa,SAGlBlB,KAAKsQ,UArXjB,CAAAjU,IAAA,QAAA4H,MA6XI,WACI,GAAI,WAAajE, KAAK8D,YAClB9D,KAAKyP,UAAU9L,WACd3D,KAAKqQ,WACNrQ,KAAK0O,YAAYxQ,OAAQ,CACzB,IAAMq G,EAAUvE,KAAKoR,qBACrBpR,KAAKyP,UAAU5E,KAAKtG,GAGpBvE,KAAK2O,cAAgBpK,EAAQrG,OAC7 B8B,KAAKkB,aAAa,YAvY9B,CAAA7E,IAAA,qBAAA4H,MAgZI,WAII,KAH+BjE,KAAKmR,YACR,YAAxBn R,KAAKyP,UAAUE,MACf3P,KAAK0O,YAAYxQ,OAAS,GAE1B,OAAO8B,KAAK0O,YAGhB,IADA,IXpYmBvR ,EWoYfkU,EAAc,EACTpT,EAAI,EAAGA,EAAI+B,KAAK0O,YAAYxQ,OAAQD,IAAK,CAC9C,IAAMzB,EAA OwD,KAAK0O,YAAYzQ,GAAGzB,KAIjC,GAHIA,IACA6U,GXvYO,iBADIlU,EWwYeX,GXjY1C,SAAoB+I, GAEhB,IADA,IAAI+L,EAAI,EAAGpT,EAAS,EACXD,EAAI,EAAG2H,EAAIL,EAAIrH,OAAQD,EAAI2H,E AAG3H,KACnCqT,EAAI/L,EAAIpH,WAAWF,IACX,IACJC,GAAU,EAELoT,EAAI,KACTpT,GAAU,EAELoT ,EAAI,OAAUA,GAAK,MACxBpT,GAAU,GAGVD,IACAC,GAAU,GAGlB,OAAOA,EAvBIqT,CAAWpU,GAGf+H ,KAAKsM,KAPQ,MAOFrU,EAAIsU,YAActU,EAAIuU,QWqY5BzT,EAAI,GAAKoT,EAAcrR,KAAKmR,WAC5 B,OAAOnR,KAAK0O,YAAYzN,MAAM,EAAGhD,GAErCoT,GAAe,EAEnB,OAAOrR,KAAK0O,cAlapB,CAAAr S,IAAA,QAAA4H,MA6aI,SAAMmM,EAAKuB,EAAS5R,GAEhB,OADAC,KAAKgR,WAAW,UAAWZ,EAAKuB,EA AS5R,GAClCC,OA/af,CAAA3D,IAAA,OAAA4H,MAibI,SAAKmM,EAAKuB,EAAS5R,GAEf,OADAC,KAAKg R,WAAW,UAAWZ,EAAKuB,EAAS5R,GAClCC,OAnbf,CAAA3D,IAAA,aAAA4H,MA8bI,SAAW1H,EAAMC,EA AMmV,EAAS5R,GAS5B,GARI,mBAAsBvD,IACtBuD,EAAKvD,EACLA,OAAOuN,GAEP,mBAAsB4H,IACtB5 R,EAAK4R,EACLA,EAAU,MAEV,YAAc3R,KAAK8D,YAAc,WAAa9D,KAAK8D,WAAvD,EAGA6N,EAAUA,GAA W,IACbC,UAAW,IAAUD,EAAQC,SACrC,IAAMnN,EAAS,CACXlI,KAAMA,EACNC,KAAMA,EACNmV,QAASA ,GAEb3R,KAAKkB,aAAa,eAAgBuD,GAClCzE,KAAK0O,YAAYxO,KAAKuE,GAClB1E,GACAC,KAAKI,KAA K,QAASL,GACvBC,KAAKsQ,WArdb,CAAAjU,IAAA,QAAA4H,MA4dI,WAAQ,IAAAmF,EAAApJ,KACEmI,E AAQ,WACViB,EAAK9E,QAAQ,gBACb8E,EAAKqG,UAAUtH,SAEb0J,EAAkB,SAAlBA,IACFzI,EAAK/I,I AAI,UAAWwR,GACpBzI,EAAK/I,IAAI,eAAgBwR,GACzB1J,KAEE2J,EAAiB,WAEnB1I,EAAKhJ,KAAK, UAAWyR,GACrBzI,EAAKhJ,KAAK,eAAgByR,IAqB9B,MAnBI,YAAc7R,KAAK8D,YAAc,SAAW9D,KAAK8D ,aACjD9D,KAAK8D,WAAa,UACd9D,KAAK0O,YAAYxQ,OACjB8B,KAAKI,KAAK,SAAS,WACXgJ,EAAKiH, UACLyB,IAGA3J,OAIHnI,KAAKqQ,UACVyB,IAGA3J,KAGDnI,OA9ff,CAAA3D,IAAA,UAAA4H,MAqgBI ,SAAQ+B,GACJyI,EAAOoB,uBAAwB,EAC/B7P,KAAKkB,aAAa,QAAS8E,GAC3BhG,KAAKsE,QAAQ,kBAA mB0B,KAxgBxC,CAAA3J,IAAA,UAAA4H,MA+gBI,SAAQnB,EAAQC,GACR,YAAc/C,KAAK8D,YACnB,SAA W9D,KAAK8D,YAChB,YAAc9D,KAAK8D,aAEnB9D,KAAK2C,eAAe3C,KAAKwP,kBAEzBxP,KAAKyP,UAAU hP,mBAAmB,SAElCT,KAAKyP,UAAUtH,QAEfnI,KAAKyP,UAAUhP,qBACoB,mBAAxBC,qBACPA,oBAAoB ,UAAWV,KAAK0P,sBAAsB,GAG9D1P,KAAK8D,WAAa,SAElB9D,KAAKoP,GAAK,KAEVpP,KAAKkB,aAAa, QAAS4B,EAAQC,GAGnC/C,KAAK0O,YAAc,GACnB1O,KAAK2O,cAAgB,KAviBjC,CAAAtS,IAAA,iBAAA4 H,MAijBI,SAAeoL,GAIX,IAHA,IAAM0C,EAAmB,GACrB9T,EAAI,EACF+T,EAAI3C,EAASnR,OACZD,E AAI+T,EAAG/T,KACL+B,KAAKmN,WAAWpE,QAAQsG,EAASpR,KAClC8T,EAAiB7R,KAAKmP,EAASpR,IA EvC,OAAO8T,MAzjBftD,EAAA,CAA4B/O,GA4jBtBuS,GAAClL,SdpiBiB,Ee5BA0H,GAAO1H,yBCA/B, SAASmL,GAAUC,EAAMC,EAAQ7M,GAE/B,IADA,IAAI+L,EAAI,EACCrT,EAAI,EAAG2H,EAAIL,EAAIrH ,OAAQD,EAAI2H,EAAG3H,KACrCqT,EAAI/L,EAAIpH,WAAWF,IACX,IACNkU,EAAKE,SAASD,IAAUd,G AEjBA,EAAI,MACXa,EAAKE,SAASD,IAAU,IAAQd,GAAK,GACrCa,EAAKE,SAASD,IAAU,IAAY,GAAJd, IAEzBA,EAAI,OAAUA,GAAK,OAC1Ba,EAAKE,SAASD,IAAU,IAAQd,GAAK,IACrCa,EAAKE,SAASD,IAA U,IAAQd,GAAK,EAAK,IAC1Ca,EAAKE,SAASD,IAAU,IAAY,GAAJd,KAGhCrT,IACAqT,EAAI,QAAiB,K AAJA,IAAc,GAA2B,KAApB/L,EAAIpH,WAAWF,IACrDkU,EAAKE,SAASD,IAAU,IAAQd,GAAK,IACrCa, EAAKE,SAASD,IAAU,IAAQd,GAAK,GAAM,IAC3Ca,EAAKE,SAASD,IAAU,IAAQd,GAAK,EAAK,IAC1Ca, EAAKE,SAASD,IAAU,IAAY,GAAJd,IA0BtC,SAASgB,GAAQjT,EAAOkT,EAAQtO,GAC9B,IAAI1H,EAAc 0H,EAAAA,GAAOhG,EAAI,EAAG2H,EAAI,EAAG4M,EAAK,EAAGC,EAAK,EAAGvU,EAAS,EAAGwT,EAAO, EAE1E,GAAa,WAATnV,EAAmB,CAIrB,GAHA2B,EAzBJ,SAAoBqH,GAElB,IADA,IAAI+L,EAAI,EAAGpT ,EAAS,EACXD,EAAI,EAAG2H,EAAIL,EAAIrH,OAAQD,EAAI2H,EAAG3H,KACrCqT,EAAI/L,EAAIpH,W AAWF,IACX,IACNC,GAAU,EAEHoT,EAAI,KACXpT,GAAU,EAEHoT,EAAI,OAAUA,GAAK,MAC1BpT,GAAU ,GAGVD,IACAC,GAAU,GAGd,OAAOA,EAOIqT,CAAWtN,GAGhB/F,EAAS,GACXmB,EAAMa,KAAc,IAAThC ,GACXwT,EAAO,OAGJ,GAAIxT,EAAS,IAChBmB,EAAMa,KAAK,IAAMhC,GACjBwT,EAAO,OAGJ,GAAIxT ,EAAS,MAChBmB,EAAMa,KAAK,IAAMhC,GAAU,EAAGA,GAC9BwT,EAAO,MAGJ,MAAIxT,EAAS,YAIhB,M AAM,IAAIkF,MAAM,mBAHhB/D,EAAMa,KAAK,IAAMhC,GAAU,GAAIA,GAAU,GAAIA,GAAU,EAAGA,GAC1 DwT,EAAO,EAKT,OADAa,EAAOrS,KAAK,CAAEwS,KAAMzO,EAAO0O,QAASzU,EAAQ0U,QAASvT,EAAMnB ,SACpDwT,EAAOxT,EAEhB,GAAa,WAAT3B,EAIF,OAAI2I,KAAKC,MAAMlB,KAAWA,GAAU4O,SAAS5O,G AMzCA,GAAS,EAEPA,EAAQ,KACV5E,EAAMa,KAAK+D,GACJ,GAGLA,EAAQ,KACV5E,EAAMa,KAAK,IAAM +D,GACV,GAGLA,EAAQ,OACV5E,EAAMa,KAAK,IAAM+D,GAAS,EAAGA,GACtB,GAGLA,EAAQ,YACV5E,E AAMa,KAAK,IAAM+D,GAAS,GAAIA,GAAS,GAAIA,GAAS,EAAGA,GAChD,IAGTuO,EAAMvO,EAAQiB,KAA K4N,IAAI,EAAG,KAAQ,EAClCL,EAAKxO,IAAU,EACf5E,EAAMa,KAAK,IAAMsS,GAAM,GAAIA,GAAM,G AAIA,GAAM,EAAGA,EAAIC,GAAM,GAAIA,GAAM,GAAIA,GAAM,EAAGA,GACxE,GAGHxO,IAAU,IACZ5E, EAAMa,KAAK+D,GACJ,GAGLA,IAAU,KACZ5E,EAAMa,KAAK,IAAM+D,GACV,GAGLA,IAAU,OACZ5E,EAA Ma,KAAK,IAAM+D,GAAS,EAAGA,GACtB,GAGLA,IAAU,YACZ5E,EAAMa,KAAK,IAAM+D,GAAS,GAAIA,G AAS,GAAIA,GAAS,EAAGA,GAChD,IAGTuO,EAAKtN,KAAKC,MAAMlB,EAAQiB,KAAK4N,IAAI,EAAG,KA CpCL,EAAKxO,IAAU,EACf5E,EAAMa,KAAK,IAAMsS,GAAM,GAAIA,GAAM,GAAIA,GAAM,EAAGA,EAAIC ,GAAM,GAAIA,GAAM,GAAIA,GAAM,EAAGA,GACxE,IAxDPpT,EAAMa,KAAK,KACXqS,EAAOrS,KAAK,CA AE6S,OAAQ9O,EAAO0O,QAAS,EAAGC,QAASvT,EAAMnB,SACjD,GAyDX,GAAa,WAAT3B,EAAmB,CAErB, GAAc,OAAV0H,EAEF,OADA5E,EAAMa,KAAK,KACJ,EAGT,GAAIc,MAAMgS,QAAQ/O,GAAQ,CAIxB,IAHA /F,EAAS+F,EAAM/F,QAGF,GACXmB,EAAMa,KAAc,IAAThC,GACXwT,EAAO,OAGJ,GAAIxT,EAAS,MACh BmB,EAAMa,KAAK,IAAMhC,GAAU,EAAGA,GAC9BwT,EAAO,MAGJ,MAAIxT,EAAS,YAIhB,MAAM,IAAIkF ,MAAM,mBAHhB/D,EAAMa,KAAK,IAAMhC,GAAU,GAAIA,GAAU,GAAIA,GAAU,EAAGA,GAC1DwT,EAAO,E AIT,IAAKzT,EAAI,EAAGA,EAAIC,EAAQD,IACtByT,GAAQY,GAAQjT,EAAOkT,EAAQtO,EAAMhG,IAEv C,OAAOyT,EAIT,GAAIzN,aAAiBqB,KAAM,CACzB,IAAI2N,EAAOhP,EAAMiP,UAIjB,OAHAV,EAAKtN, KAAKC,MAAM8N,EAAO/N,KAAK4N,IAAI,EAAG,KACnCL,EAAKQ,IAAS,EACd5T,EAAMa,KAAK,IAAM,EA AGsS,GAAM,GAAIA,GAAM,GAAIA,GAAM,EAAGA,EAAIC,GAAM,GAAIA,GAAM,GAAIA,GAAM,EAAGA,GAC 3E,GAGT,GAAIxO,aAAiBlH,YAAa,CAIhC,IAHAmB,EAAS+F,EAAMwN,YAGF,IACXpS,EAAMa,KAAK,IA AMhC,GACjBwT,EAAO,OAGT,GAAIxT,EAAS,MACXmB,EAAMa,KAAK,IAAMhC,GAAU,EAAGA,GAC9BwT,E AAO,MAGT,MAAIxT,EAAS,YAIX,MAAM,IAAIkF,MAAM,oBAHhB/D,EAAMa,KAAK,IAAMhC,GAAU,GAAIA ,GAAU,GAAIA,GAAU,EAAGA,GAC1DwT,EAAO,EAKT,OADAa,EAAOrS,KAAK,CAAEiT,KAAMlP,EAAO0O, QAASzU,EAAQ0U,QAASvT,EAAMnB,SACpDwT,EAAOxT,EAGhB,GAA4B,mBAAjB+F,EAAMmP,OACf,OAAO d,GAAQjT,EAAOkT,EAAQtO,EAAMmP,UAGtC,IAAIjX,EAAO,GAAIE,EAAM,GAEjBgX,EAAUrX,OAAOG, KAAK8H,GAC1B,IAAKhG,EAAI,EAAG2H,EAAIyN,EAAQnV,OAAQD,EAAI2H,EAAG3H,IAEX,mBAAfgG,E ADX5H,EAAMgX,EAAQpV,KAEZ9B,EAAK+D,KAAK7D,GAMd,IAHA6B,EAAS/B,EAAK+B,QAGD,GACXmB,E AAMa,KAAc,IAAThC,GACXwT,EAAO,OAGJ,GAAIxT,EAAS,MAChBmB,EAAMa,KAAK,IAAMhC,GAAU,EAA GA,GAC9BwT,EAAO,MAGJ,MAAIxT,EAAS,YAIhB,MAAM,IAAIkF,MAAM,oBAHhB/D,EAAMa,KAAK,IAAM hC,GAAU,GAAIA,GAAU,GAAIA,GAAU,EAAGA,GAC1DwT,EAAO,EAKT,IAAKzT,EAAI,EAAGA,EAAIC,EA AQD,IAEtByT,GAAQY,GAAQjT,EAAOkT,EADvBlW,EAAMF,EAAK8B,IAEXyT,GAAQY,GAAQjT,EAAOkT, EAAQtO,EAAM5H,IAEvC,OAAOqV,EAGT,GAAa,YAATnV,EAEF,OADA8C,EAAMa,KAAK+D,EAAQ,IAAO,K ACnB,EAGT,GAAa,cAAT1H,EAEF,OADA8C,EAAMa,KAAK,IAAM,EAAG,GACb,EAET,MAAM,IAAIkD,MAA M,oBA2ClB,IAAAkQ,GAxCA,SAAgBrP,GACd,IAAI5E,EAAQ,GACRkT,EAAS,GACTb,EAAOY,GAAQjT,E AAOkT,EAAQtO,GAC9BsP,EAAM,IAAIxW,YAAY2U,GACtBS,EAAO,IAAIqB,SAASD,GAEpBE,EAAa,EAC bC,EAAe,EACfC,GAAc,EACdpB,EAAOrU,OAAS,IAClByV,EAAapB,EAAO,GAAGK,SAIzB,IADA,IAAIg B,EAAOC,EAAc,EAAGzB,EAAS,EAC5BnU,EAAI,EAAG2H,EAAIvG,EAAMnB,OAAQD,EAAI2H,EAAG3H,I AEvC,GADAkU,EAAKE,SAASqB,EAAezV,EAAGoB,EAAMpB,IAClCA,EAAI,IAAM0V,EAAd,CAIA,GAFAE ,GADAD,EAAQrB,EAAOkB,IACKd,QACpBP,EAASsB,EAAeC,EACpBC,EAAMT,KAER,IADA,IAAIW,EAAM ,IAAI9V,WAAW4V,EAAMT,MACtBnB,EAAI,EAAGA,EAAI6B,EAAa7B,IAC/BG,EAAKE,SAASD,EAASJ,E AAG8B,EAAI9B,SAEvB4B,EAAMlB,KACfR,GAAUC,EAAMC,EAAQwB,EAAMlB,WACJ3I,IAAjB6J,EAAMb ,QACfZ,EAAK4B,WAAW3B,EAAQwB,EAAMb,QAGhCW,GAAgBG,EACZtB,IAFJkB,KAGEE,EAAapB,EAAOk B,GAAYb,SAGpC,OAAOW,GC3ST,SAASS,GAAQ1W,GAEf,GADA0C,KAAK4S,QAAU,EACXtV,aAAkBP,YAC pBiD,KAAKiU,QAAU3W,EACf0C,KAAKkU,MAAQ,IAAIV,SAASxT,KAAKiU,aAC1B,KAAIlX,YAAYM,OAA OC,GAI5B,MAAM,IAAI8F,MAAM,oBAHhBpD,KAAKiU,QAAU3W,EAAOA,OACtB0C,KAAKkU,MAAQ,IAAIV ,SAASxT,KAAKiU,QAAS3W,EAAO6W,WAAY7W,EAAOmU,aA+CtEuC,GAAQrX,UAAUyX,OAAS,SAAUlW,GA EnC,IADA,IAAI+F,EAAQ,IAAIjD,MAAM9C,GACbD,EAAI,EAAGA,EAAIC,EAAQD,IAC1BgG,EAAMhG,G AAK+B,KAAKqU,SAElB,OAAOpQ,GAGT+P,GAAQrX,UAAU2X,KAAO,SAAUpW,GAEjC,IADA,IAAc+F,EAA Q,GACbhG,EAAI,EAAGA,EAAIC,EAAQD,IAE1BgG,EADMjE,KAAKqU,UACErU,KAAKqU,SAEpB,OAAOpQ ,GAGT+P,GAAQrX,UAAU+V,KAAO,SAAUxU,GACjC,IAAI+F,EA3DN,SAAkBkO,EAAMC,EAAQlU,GAE9B, IADA,IAAIqW,EAAS,GAAIC,EAAM,EACdvW,EAAImU,EAAQqC,EAAMrC,EAASlU,EAAQD,EAAIwW,EAAK xW,IAAK,CACxD,IAAIyW,EAAOvC,EAAKwC,SAAS1W,GACzB,GAAsB,IAAV,IAAPyW,GAIL,GAAsB,MAA V,IAAPA,GAOL,GAAsB,MAAV,IAAPA,GAAL,CAQA,GAAsB,MAAV,IAAPA,GAaL,MAAM,IAAItR,MAAM,g BAAkBsR,EAAK9X,SAAS,MAZ9C4X,GAAe,EAAPE,IAAgB,IACC,GAArBvC,EAAKwC,WAAW1W,KAAc,IAC T,GAArBkU,EAAKwC,WAAW1W,KAAc,GACT,GAArBkU,EAAKwC,WAAW1W,KAAc,IACvB,OACTuW,GAAO,M ACPD,GAAU/U,OAAOC,aAA4B,OAAd+U,IAAQ,IAA8B,OAAT,KAANA,KAEtDD,GAAU/U,OAAOC,aAAa+U, QAhBhCD,GAAU/U,OAAOC,cACN,GAAPiV,IAAgB,IACK,GAArBvC,EAAKwC,WAAW1W,KAAc,GACT,GAAr BkU,EAAKwC,WAAW1W,KAAc,QAVlCsW,GAAU/U,OAAOC,cACN,GAAPiV,IAAgB,EACI,GAArBvC,EAAKw C,WAAW1W,SANnBsW,GAAU/U,OAAOC,aAAaiV,GAiClC,OAAOH,EAqBKK,CAAS5U,KAAKkU,MAAOlU,KA AK4S,QAAS1U,GAE/C,OADA8B,KAAK4S,SAAW1U,EACT+F,GAGT+P,GAAQrX,UAAUwW,KAAO,SAAUjV,G ACjC,IAAI+F,EAAQjE,KAAKiU,QAAQhT,MAAMjB,KAAK4S,QAAS5S,KAAK4S,QAAU1U,GAE5D,OADA8B ,KAAK4S,SAAW1U,EACT+F,GAGT+P,GAAQrX,UAAU0X,OAAS,WACzB,IACIpQ,EADA4Q,EAAS7U,KAAKk U,MAAMS,SAAS3U,KAAK4S,WAC3B1U,EAAS,EAAG3B,EAAO,EAAGiW,EAAK,EAAGC,EAAK,EAE9C,GAAI oC,EAAS,IAEX,OAAIA,EAAS,IACJA,EAGLA,EAAS,IACJ7U,KAAKsU,KAAc,GAATO,GAGfA,EAAS,IAC J7U,KAAKoU,OAAgB,GAATS,GAGd7U,KAAK0S,KAAc,GAATmC,GAInB,GAAIA,EAAS,IACX,OAA8B,GAA tB,IAAOA,EAAS,GAG1B,OAAQA,GAEN,KAAK,IACH,OAAO,KAET,KAAK,IACH,OAAO,EAET,KAAK,IACH ,OAAO,EAGT,KAAK,IAGH,OAFA3W,EAAS8B,KAAKkU,MAAMS,SAAS3U,KAAK4S,SAClC5S,KAAK4S,SAA W,EACT5S,KAAKmT,KAAKjV,GACnB,KAAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAMY,UAAU9U,KAAK4S,S ACnC5S,KAAK4S,SAAW,EACT5S,KAAKmT,KAAKjV,GACnB,KAAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAM a,UAAU/U,KAAK4S,SACnC5S,KAAK4S,SAAW,EACT5S,KAAKmT,KAAKjV,GAGnB,KAAK,IAIH,OAHAA,E AAS8B,KAAKkU,MAAMS,SAAS3U,KAAK4S,SAClCrW,EAAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,QAAU, GACzC5S,KAAK4S,SAAW,EACT,CAACrW,EAAMyD,KAAKmT,KAAKjV,IAC1B,KAAK,IAIH,OAHAA,EAAS8 B,KAAKkU,MAAMY,UAAU9U,KAAK4S,SACnCrW,EAAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,QAAU,GACz C5S,KAAK4S,SAAW,EACT,CAACrW,EAAMyD,KAAKmT,KAAKjV,IAC1B,KAAK,IAIH,OAHAA,EAAS8B,KA AKkU,MAAMa,UAAU/U,KAAK4S,SACnCrW,EAAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,QAAU,GACzC5S, KAAK4S,SAAW,EACT,CAACrW,EAAMyD,KAAKmT,KAAKjV,IAG1B,KAAK,IAGH,OAFA+F,EAAQjE,KAAKk U,MAAMe,WAAWjV,KAAK4S,SACnC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAGH,OAFAA,EAAQjE,KAA KkU,MAAMgB,WAAWlV,KAAK4S,SACnC5S,KAAK4S,SAAW,EACT3O,EAGT,KAAK,IAGH,OAFAA,EAAQjE, KAAKkU,MAAMS,SAAS3U,KAAK4S,SACjC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAGH,OAFAA,EAAQj E,KAAKkU,MAAMY,UAAU9U,KAAK4S,SAClC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAGH,OAFAA,EAA QjE,KAAKkU,MAAMa,UAAU/U,KAAK4S,SAClC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAIH,OAHAuO, EAAKxS,KAAKkU,MAAMa,UAAU/U,KAAK4S,SAAW1N,KAAK4N,IAAI,EAAG,IACtDL,EAAKzS,KAAKkU,M AAMa,UAAU/U,KAAK4S,QAAU,GACzC5S,KAAK4S,SAAW,EACTJ,EAAKC,EAGd,KAAK,IAGH,OAFAxO,EA AQjE,KAAKkU,MAAMc,QAAQhV,KAAK4S,SAChC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAGH,OAFAA, EAAQjE,KAAKkU,MAAMiB,SAASnV,KAAK4S,SACjC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAGH,OAF AA,EAAQjE,KAAKkU,MAAMkB,SAASpV,KAAK4S,SACjC5S,KAAK4S,SAAW,EACT3O,EACT,KAAK,IAIH, OAHAuO,EAAKxS,KAAKkU,MAAMkB,SAASpV,KAAK4S,SAAW1N,KAAK4N,IAAI,EAAG,IACrDL,EAAKzS, KAAKkU,MAAMa,UAAU/U,KAAK4S,QAAU,GACzC5S,KAAK4S,SAAW,EACTJ,EAAKC,EAGd,KAAK,IAGH,O AFAlW,EAAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,SAC/B5S,KAAK4S,SAAW,EACH,IAATrW,OACFyD,K AAK4S,SAAW,GAGX,CAACrW,EAAMyD,KAAKmT,KAAK,IAC1B,KAAK,IAGH,OAFA5W,EAAOyD,KAAKkU,M AAMc,QAAQhV,KAAK4S,SAC/B5S,KAAK4S,SAAW,EACT,CAACrW,EAAMyD,KAAKmT,KAAK,IAC1B,KAAK ,IAGH,OAFA5W,EAAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,SAC/B5S,KAAK4S,SAAW,EACT,CAACrW,E AAMyD,KAAKmT,KAAK,IAC1B,KAAK,IAGH,OAFA5W,EAAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,SAC/B 5S,KAAK4S,SAAW,EACH,IAATrW,GACFiW,EAAKxS,KAAKkU,MAAMkB,SAASpV,KAAK4S,SAAW1N,KAAK 4N,IAAI,EAAG,IACrDL,EAAKzS,KAAKkU,MAAMa,UAAU/U,KAAK4S,QAAU,GACzC5S,KAAK4S,SAAW,E ACT,IAAItN,KAAKkN,EAAKC,IAEhB,CAAClW,EAAMyD,KAAKmT,KAAK,IAC1B,KAAK,IAGH,OAFA5W,E AAOyD,KAAKkU,MAAMc,QAAQhV,KAAK4S,SAC/B5S,KAAK4S,SAAW,EACT,CAACrW,EAAMyD,KAAKmT,K AAK,KAG1B,KAAK,IAGH,OAFAjV,EAAS8B,KAAKkU,MAAMS,SAAS3U,KAAK4S,SAClC5S,KAAK4S,SAAW ,EACT5S,KAAK0S,KAAKxU,GACnB,KAAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAMY,UAAU9U,KAAK4S,SA CnC5S,KAAK4S,SAAW,EACT5S,KAAK0S,KAAKxU,GACnB,KAAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAMa ,UAAU/U,KAAK4S,SACnC5S,KAAK4S,SAAW,EACT5S,KAAK0S,KAAKxU,GAGnB,KAAK,IAGH,OAFAA,EA AS8B,KAAKkU,MAAMY,UAAU9U,KAAK4S,SACnC5S,KAAK4S,SAAW,EACT5S,KAAKoU,OAAOlW,GACrB,K AAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAMa,UAAU/U,KAAK4S,SACnC5S,KAAK4S,SAAW,EACT5S,KAAK oU,OAAOlW,GAGrB,KAAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAMY,UAAU9U,KAAK4S,SACnC5S,KAAK4S ,SAAW,EACT5S,KAAKsU,KAAKpW,GACnB,KAAK,IAGH,OAFAA,EAAS8B,KAAKkU,MAAMa,UAAU/U,KAAK 4S,SACnC5S,KAAK4S,SAAW,EACT5S,KAAKsU,KAAKpW,GAGrB,MAAM,IAAIkF,MAAM,oBAYlB,IAAAiS ,GATA,SAAgB/X,GACd,IAAIgY,EAAU,IAAItB,GAAQ1W,GACtB2G,EAAQqR,EAAQjB,SACpB,GAAIiB, EAAQ1C,UAAYtV,EAAOmU,WAC7B,MAAM,IAAIrO,MAAO9F,EAAOmU,WAAa6D,EAAQ1C,QAAW,mBAE1D,O AAO3O,GCrRKsR,GAAAxQ,OAAGyQ,GACjBD,GAAAjW,OAAiBmW,uCCcjB,SAAS/V,EAAQvC,GACf,GAAI A,EAAK,OAWX,SAAeA,GACb,IAAK,IAAId,KAAOqD,EAAQ/C,UACtBQ,EAAId,GAAOqD,EAAQ/C,UAAUN ,GAE/B,OAAOc,EAfSwC,CAAMxC,GAVtBuY,EAAAC,QAAiBjW,EAqCnBA,EAAQ/C,UAAUiD,GAClBF,EA AQ/C,UAAUkD,iBAAmB,SAASC,EAAOC,GAInD,OAHAC,KAAKC,WAAaD,KAAKC,YAAc,IACpCD,KAAKC,W AAW,IAAMH,GAASE,KAAKC,WAAW,IAAMH,IAAU,IAC7DI,KAAKH,GACDC,MAaTN,EAAQ/C,UAAUyD,KAA O,SAASN,EAAOC,GACvC,SAASH,IACPI,KAAKK,IAAIP,EAAOF,GAChBG,EAAGO,MAAMN,KAAMO,WAKjB ,OAFAX,EAAGG,GAAKA,EACRC,KAAKJ,GAAGE,EAAOF,GACRI,MAaTN,EAAQ/C,UAAU0D,IAClBX,EAAQ /C,UAAU6D,eAClBd,EAAQ/C,UAAU8D,mBAClBf,EAAQ/C,UAAU+D,oBAAsB,SAASZ,EAAOC,GAItD,GA HAC,KAAKC,WAAaD,KAAKC,YAAc,GAGjC,GAAKM,UAAUrC,OAEjB,OADA8B,KAAKC,WAAa,GACXD,KAIT ,IAUIW,EAVAC,EAAYZ,KAAKC,WAAW,IAAMH,GACtC,IAAKc,EAAW,OAAOZ,KAGvB,GAAI,GAAKO,UAAU rC,OAEjB,cADO8B,KAAKC,WAAW,IAAMH,GACtBE,KAKT,IAAK,IAAI/B,EAAI,EAAGA,EAAI2C,EAAU1 C,OAAQD,IAEpC,IADA0C,EAAKC,EAAU3C,MACJ8B,GAAMY,EAAGZ,KAAOA,EAAI,CAC7Ba,EAAUC,OAA O5C,EAAG,GACpB,MAUJ,OAJyB,IAArB2C,EAAU1C,eACL8B,KAAKC,WAAW,IAAMH,GAGxBE,MAWTN,EA AQ/C,UAAUmE,KAAO,SAAShB,GAChCE,KAAKC,WAAaD,KAAKC,YAAc,GAKrC,IAHA,IAAIc,EAAO,IAAI C,MAAMT,UAAUrC,OAAS,GACpC0C,EAAYZ,KAAKC,WAAW,IAAMH,GAE7B7B,EAAI,EAAGA,EAAIsC,UAA UrC,OAAQD,IACpC8C,EAAK9C,EAAI,GAAKsC,UAAUtC,GAG1B,GAAI2C,EAEG,CAAI3C,EAAI,EAAb,I AAK,IAAWiB,GADhB0B,EAAYA,EAAUK,MAAM,IACI/C,OAAQD,EAAIiB,IAAOjB,EACjD2C,EAAU3C,GA AGqC,MAAMN,KAAMe,GAI7B,OAAOf,MAWTN,EAAQ/C,UAAUwE,UAAY,SAASrB,GAErC,OADAE,KAAKC,W AAaD,KAAKC,YAAc,GAC9BD,KAAKC,WAAW,IAAMH,IAAU,IAWzCJ,EAAQ/C,UAAUyE,aAAe,SAAStB,GA CxC,QAAUE,KAAKmB,UAAUrB,GAAO5B,aC7KlC,IAAI0X,GAAUJ,GACV9V,GAAU+V,GAAAA,QAEE1O,GA AA8O,GAAA9O,SAAG,EAMf+O,GAAcC,GAAAF,GAAAC,WAAqB,CACrCE,QAAS,EACTC,WAAY,EACZC,MAA O,EACPC,IAAK,EACLC,cAAe,GAGbC,GACFxN,OAAOwN,WACP,SAAUpS,GACR,MACmB,iBAAVA,GACP4O ,SAAS5O,IACTiB,KAAKC,MAAMlB,KAAWA,GAIxBqS,GAAW,SAAUrS,GACvB,MAAwB,iBAAVA,GAGZsS, GAAW,SAAUtS,GACvB,MAAiD,oBAA1CjI,OAAOW,UAAUC,SAASC,KAAKoH,IAGxC,SAASuS,MAMT,SAAS xC,MAJTwC,GAAQ7Z,UAAUoI,OAAS,SAAUN,GACnC,MAAO,CAACmR,GAAQ7Q,OAAON,KAKzB/E,GAAQsU ,GAAQrX,WAEhBqX,GAAQrX,UAAU8Z,IAAM,SAAUtZ,GAChC,IAAIwB,EAAUiX,GAAQtW,OAAOnC,GAC7 B6C,KAAK0W,YAAY/X,GACjBqB,KAAKc,KAAK,UAAWnC,IAgBvBqV,GAAQrX,UAAU+Z,YAAc,SAAU/X,G AKxC,KAHE0X,GAAU1X,EAAQpC,OAClBoC,EAAQpC,MAAQuZ,GAAWE,SAC3BrX,EAAQpC,MAAQuZ,GAAW M,eAE3B,MAAM,IAAIhT,MAAM,uBAGlB,IAAKkT,GAAS3X,EAAQgY,KACpB,MAAM,IAAIvT,MAAM,qBAG lB,IA1BF,SAAqBzE,GACnB,OAAQA,EAAQpC,MACd,KAAKuZ,GAAWE,QACd,YAAwBjM,IAAjBpL,EAAQn C,MAAsB+Z,GAAS5X,EAAQnC,MACxD,KAAKsZ,GAAWG,WACd,YAAwBlM,IAAjBpL,EAAQnC,KACjB,KAA KsZ,GAAWM,cACd,OAAOE,GAAS3X,EAAQnC,OAAS+Z,GAAS5X,EAAQnC,MACpD,QACE,OAAOwE,MAAMgS ,QAAQrU,EAAQnC,OAiB5Boa,CAAYjY,GACf,MAAM,IAAIyE,MAAM,mBAIlB,UADgC2G,IAAfpL,EAAQy Q,IAAoBiH,GAAU1X,EAAQyQ,KAE7D,MAAM,IAAIhM,MAAM,sBAIpB4Q,GAAQrX,UAAUka,QAAU,aAE5B ,IAAeC,GAAAjB,GAAAW,QAAGA,GAClBO,GAAAlB,GAAA7B,QAAkBA,wGC1FX,SAASpU,GAAGzC,EAAK4 P,EAAIhN,GAExB,OADA5C,EAAIyC,GAAGmN,EAAIhN,GACJ,WACH5C,EAAIkD,IAAI0M,EAAIhN,ICIp B,IAAMiX,GAAkBhb,OAAOib,OAAO,CAClCC,QAAS,EACTC,cAAe,EACfC,WAAY,EACZC,cAAe,EAEfC, YAAa,EACb9W,eAAgB,IAEPiO,GAAb,SAAAnL,GAAAC,EAAAkL,EAAAnL,GAAA,IAAAH,EAAAM,EAAAgL ,GAMI,SAAAA,EAAY8I,EAAIZ,EAAKrU,GAAM,IAAAW,EAAA,OAAAC,EAAAlD,KAAAyO,IACvBxL,EAAA E,EAAAtG,KAAAmD,OACKwX,WAAY,EACjBvU,EAAKwU,cAAgB,GACrBxU,EAAKyU,WAAa,GAClBzU,EAA K0U,IAAM,EACX1U,EAAK2U,KAAO,GACZ3U,EAAK4U,MAAQ,GACb5U,EAAKsU,GAAKA,EACVtU,EAAK0T ,IAAMA,EACPrU,GAAQA,EAAKwV,OACb7U,EAAK6U,KAAOxV,EAAKwV,MAEjB7U,EAAKsU,GAAGQ,cACR 9U,EAAKkH,OAdclH,EAN/B,OAAAe,EAAAyK,EAAA,CAAA,CAAApS,IAAA,eAAAiL,IAyBI,WACI,OAAQ tH,KAAKwX,YA1BrB,CAAAnb,IAAA,YAAA4H,MAiCI,WACI,IAAIjE,KAAKgY,KAAT,CAEA,IAAMT,EAA KvX,KAAKuX,GAChBvX,KAAKgY,KAAO,CACRpY,GAAG2X,EAAI,OAAQvX,KAAKwM,OAAO/J,KAAKzC,OA ChCJ,GAAG2X,EAAI,SAAUvX,KAAKiY,SAASxV,KAAKzC,OACpCJ,GAAG2X,EAAI,QAASvX,KAAKgN,QA AQvK,KAAKzC,OAClCJ,GAAG2X,EAAI,QAASvX,KAAK4M,QAAQnK,KAAKzC,WAzC9C,CAAA3D,IAAA,SA AAiL,IA+CI,WACI,QAAStH,KAAKgY,OAhDtB,CAAA3b,IAAA,UAAA4H,MAuDI,WACI,OAAIjE,KAAKwX ,YAETxX,KAAKkY,YACAlY,KAAKuX,GAAL,eACDvX,KAAKuX,GAAGpN,OACR,SAAWnK,KAAKuX,GAAGY, aACnBnY,KAAKwM,UALExM,OAzDnB,CAAA3D,IAAA,OAAA4H,MAoEI,WACI,OAAOjE,KAAKkX,YArEpB, CAAA7a,IAAA,OAAA4H,MA6EI,WAAc,IAAA,IAAAvC,EAAAnB,UAAArC,OAAN6C,EAAM,IAAAC,MAAAU, GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAANb,EAAMa,GAAArB,UAAAqB,GAGV,OAFAb,EAAKqX,QAAQ,WA CbpY,KAAKc,KAAKR,MAAMN,KAAMe,GACff,OAhFf,CAAA3D,IAAA,OAAA4H,MAyFI,SAAK8I,GACD,GA AIiK,GAAgBhV,eAAe+K,GAC/B,MAAM,IAAI3J,MAAM,IAAM2J,EAAGnQ,WAAa,8BAF5B,IAAA,IAAAyb ,EAAA9X,UAAArC,OAAN6C,EAAM,IAAAC,MAAAqX,EAAA,EAAAA,EAAA,EAAA,GAAAC,EAAA,EAAAA,EA AAD,EAAAC,IAANvX,EAAMuX,EAAA,GAAA/X,UAAA+X,GAIdvX,EAAKqX,QAAQrL,GACb,IAAMtI,EAAS ,CACXlI,KAAMuZ,GAAWI,MACjB1Z,KAAMuE,EAEV0D,QAAiB,IAGjB,GAFAA,EAAOkN,QAAQC,UAAmC, IAAxB5R,KAAK6X,MAAMjG,SAEjC,mBAAsB7Q,EAAKA,EAAK7C,OAAS,GAAI,CAC7C,IAAMkR,EAAKpP, KAAK2X,MACVY,EAAMxX,EAAKyX,MACjBxY,KAAKyY,qBAAqBrJ,EAAImJ,GAC9B9T,EAAO2K,GAAKA,E AEhB,IAAMsJ,EAAsB1Y,KAAKuX,GAAGoB,QAChC3Y,KAAKuX,GAAGoB,OAAOlJ,WACfzP,KAAKuX,GAA GoB,OAAOlJ,UAAU9L,SACvBiV,EAAgB5Y,KAAK6X,MAAL,YAAyBa,IAAwB1Y,KAAKwX,WAW5E,OAVIoB ,IAEK5Y,KAAKwX,WACVxX,KAAK6Y,wBAAwBpU,GAC7BzE,KAAKyE,OAAOA,IAGZzE,KAAK0X,WAAWxX, KAAKuE,IAEzBzE,KAAK6X,MAAQ,GACN7X,OAzHf,CAAA3D,IAAA,uBAAA4H,MA8HI,SAAqBmL,EAAImJ ,GAAK,IAAA7U,EAAA1D,KACpByK,EAAUzK,KAAK6X,MAAMpN,QAC3B,QAAgBV,IAAZU,EAAJ,CAKA,IA AMqO,EAAQ9Y,KAAKuX,GAAG/U,cAAa,kBACxBkB,EAAKkU,KAAKxI,GACjB,IAAK,IAAInR,EAAI,EAA GA,EAAIyF,EAAKgU,WAAWxZ,OAAQD,IACpCyF,EAAKgU,WAAWzZ,GAAGmR,KAAOA,GAC1B1L,EAAKgU, WAAW7W,OAAO5C,EAAG,GAGlCsa,EAAI1b,KAAK6G,EAAM,IAAIN,MAAM,8BAC1BqH,GACHzK,KAAK4X, KAAKxI,GAAM,WAEZ1L,EAAK6T,GAAG5U,eAAemW,GAFE,IAAA,IAAAC,EAAAxY,UAAArC,OAAT6C,EAA S,IAAAC,MAAA+X,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAATjY,EAASiY,GAAAzY,UAAAyY,GAGzBT,E AAIjY,MAAMoD,EAAO,CAAA,aAAS3C,UAhB1Bf,KAAK4X,KAAKxI,GAAMmJ,IAjI5B,CAAAlc,IAAA,SA AA4H,MA0JI,SAAOQ,GACHA,EAAOkS,IAAM3W,KAAK2W,IAClB3W,KAAKuX,GAAG0B,QAAQxU,KA5JxB, CAAApI,IAAA,SAAA4H,MAmKI,WAAS,IAAA2D,EAAA5H,KACmB,mBAAbA,KAAK8X,KACZ9X,KAAK8X,MA AK,SAACtb,GACPoL,EAAKnD,OAAO,CAAElI,KAAMuZ,GAAWE,QAASxZ,KAAAA,OAI5CwD,KAAKyE,OAA O,CAAElI,KAAMuZ,GAAWE,QAASxZ,KAAMwD,KAAK8X,SA1K/D,CAAAzb,IAAA,UAAA4H,MAmLI,SAAQ+ B,GACChG,KAAKwX,WACNxX,KAAKkB,aAAa,gBAAiB8E,KArL/C,CAAA3J,IAAA,UAAA4H,MA+LI,SAAQ nB,EAAQC,GACZ/C,KAAKwX,WAAY,SACVxX,KAAKoP,GACZpP,KAAKkB,aAAa,aAAc4B,EAAQC,KAlMhD ,CAAA1G,IAAA,WAAA4H,MA0MI,SAASQ,GAEL,GADsBA,EAAOkS,MAAQ3W,KAAK2W,IAG1C,OAAQlS,EA AOlI,MACX,KAAKuZ,GAAWE,QACZ,GAAIvR,EAAOjI,MAAQiI,EAAOjI,KAAKmM,IAAK,CAChC,IAAMyG ,EAAK3K,EAAOjI,KAAKmM,IACvB3I,KAAKkZ,UAAU9J,QAGfpP,KAAKkB,aAAa,gBAAiB,IAAIkC,MAA M,8LAEjD,MACJ,KAAK0S,GAAWI,MAChB,KAAKJ,GAAWqD,aACZnZ,KAAKoZ,QAAQ3U,GACb,MACJ,KAA KqR,GAAWK,IAChB,KAAKL,GAAWuD,WACZrZ,KAAKsZ,MAAM7U,GACX,MACJ,KAAKqR,GAAWG,WACZjW, KAAKuZ,eACL,MACJ,KAAKzD,GAAWM,cACZpW,KAAK6W,UACL,IAAM7Q,EAAM,IAAI5C,MAAMqB,EAAOj I,KAAKgd,SAElCxT,EAAIxJ,KAAOiI,EAAOjI,KAAKA,KACvBwD,KAAKkB,aAAa,gBAAiB8E,MAxOnD, CAAA3J,IAAA,UAAA4H,MAkPI,SAAQQ,GACJ,IAAM1D,EAAO0D,EAAOjI,MAAQ,GACxB,MAAQiI,EAAO2 K,IACfrO,EAAKb,KAAKF,KAAKuY,IAAI9T,EAAO2K,KAE1BpP,KAAKwX,UACLxX,KAAKyZ,UAAU1Y,GA Gff,KAAKyX,cAAcvX,KAAKlE,OAAOib,OAAOlW,MA3PlD,CAAA1E,IAAA,YAAA4H,MA8PI,SAAUlD,GA CN,GAAIf,KAAK0Z,eAAiB1Z,KAAK0Z,cAAcxb,OAAQ,CACjD,IADiDyb,EAAAC,EAAAC,EAC/B7Z,KAA K0Z,cAAczY,SADY,IAEjD,IAAkC2Y,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAA,CAAAL,EAAA1V,MA CrB3D,MAAMN,KAAMe,IAHwB,MAAAiF,GAAA4T,EAAAxT,EAAAJ,GAAA,QAAA4T,EAAAK,KAMrD/V,EAA AC,EAAAsK,EAAA9R,WAAA,OAAAqD,MAAWM,MAAMN,KAAMe,KArQ/B,CAAA1E,IAAA,MAAA4H,MA4QI,S AAImL,GACA,IAAM9N,EAAOtB,KACTka,GAAO,EACX,OAAO,WAEH,IAAIA,EAAJ,CAEAA,GAAO,EAJe,I AAA,IAAAC,EAAA5Z,UAAArC,OAAN6C,EAAM,IAAAC,MAAAmZ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IA ANrZ,EAAMqZ,GAAA7Z,UAAA6Z,GAKtB9Y,EAAKmD,OAAO,CACRlI,KAAMuZ,GAAWK,IACjB/G,GAAIA, EACJ5S,KAAMuE,QAvRtB,CAAA1E,IAAA,QAAA4H,MAiSI,SAAMQ,GACF,IAAM8T,EAAMvY,KAAK4X,KA AKnT,EAAO2K,IACzB,mBAAsBmJ,IACtBA,EAAIjY,MAAMN,KAAMyE,EAAOjI,aAChBwD,KAAK4X,KAAK nT,EAAO2K,OArSpC,CAAA/S,IAAA,YAAA4H,MA+SI,SAAUmL,GACNpP,KAAKoP,GAAKA,EACVpP,KAAK wX,WAAY,EACjBxX,KAAKqa,eACLra,KAAKkB,aAAa,aAnT1B,CAAA7E,IAAA,eAAA4H,MA0TI,WAAe,I AAAiE,EAAAlI,KACXA,KAAKyX,cAAcrb,SAAQ,SAAC2E,GAAD,OAAUmH,EAAKuR,UAAU1Y,MACpDf,KA AKyX,cAAgB,GACrBzX,KAAK0X,WAAWtb,SAAQ,SAACqI,GACrByD,EAAK2Q,wBAAwBpU,GAC7ByD,EAA KzD,OAAOA,MAEhBzE,KAAK0X,WAAa,KAjU1B,CAAArb,IAAA,eAAA4H,MAwUI,WACIjE,KAAK6W,UACL 7W,KAAK4M,QAAQ,0BA1UrB,CAAAvQ,IAAA,UAAA4H,MAmVI,WACQjE,KAAKgY,OAELhY,KAAKgY,KAAK 5b,SAAQ,SAACke,GAAD,OAAgBA,OAClCta,KAAKgY,UAAOjO,GAEhB/J,KAAKuX,GAAL,SAAoBvX,QAz V5B,CAAA3D,IAAA,aAAA4H,MAiWI,WAUI,OATIjE,KAAKwX,WACLxX,KAAKyE,OAAO,CAAElI,KAAMuZ ,GAAWG,aAGnCjW,KAAK6W,UACD7W,KAAKwX,WAELxX,KAAK4M,QAAQ,wBAEV5M,OA3Wf,CAAA3D,IAAA ,QAAA4H,MAmXI,WACI,OAAOjE,KAAKoX,eApXpB,CAAA/a,IAAA,WAAA4H,MA6XI,SAAS2N,GAEL,OAD A5R,KAAK6X,MAAMjG,SAAWA,EACf5R,OA/Xf,CAAA3D,IAAA,WAAAiL,IAwYI,WAEI,OADAtH,KAAK6X ,gBAAiB,EACf7X,OA1Yf,CAAA3D,IAAA,UAAA4H,MA2ZI,SAAQwG,GAEJ,OADAzK,KAAK6X,MAAMpN,Q AAUA,EACdzK,OA7Zf,CAAA3D,IAAA,QAAA4H,MAsaI,SAAMsW,GAGF,OAFAva,KAAK0Z,cAAgB1Z,KAA K0Z,eAAiB,GAC3C1Z,KAAK0Z,cAAcxZ,KAAKqa,GACjBva,OAzaf,CAAA3D,IAAA,aAAA4H,MAkbI,SA AWsW,GAGP,OAFAva,KAAK0Z,cAAgB1Z,KAAK0Z,eAAiB,GAC3C1Z,KAAK0Z,cAActB,QAAQmC,GACpBv a,OArbf,CAAA3D,IAAA,SAAA4H,MA6bI,SAAOsW,GACH,IAAKva,KAAK0Z,cACN,OAAO1Z,KAEX,GAAI ua,GAEA,IADA,IAAMpZ,EAAYnB,KAAK0Z,cACdzb,EAAI,EAAGA,EAAIkD,EAAUjD,OAAQD,IAClC,GA AIsc,IAAapZ,EAAUlD,GAEvB,OADAkD,EAAUN,OAAO5C,EAAG,GACb+B,UAKfA,KAAK0Z,cAAgB,GAEz B,OAAO1Z,OA7cf,CAAA3D,IAAA,eAAA4H,MAqdI,WACI,OAAOjE,KAAK0Z,eAAiB,KAtdrC,CAAArd,I AAA,gBAAA4H,MAweI,SAAcsW,GAGV,OAFAva,KAAKwa,sBAAwBxa,KAAKwa,uBAAyB,GAC3Dxa,KAAKw a,sBAAsBta,KAAKqa,GACzBva,OA3ef,CAAA3D,IAAA,qBAAA4H,MA6fI,SAAmBsW,GAGf,OAFAva,KA AKwa,sBAAwBxa,KAAKwa,uBAAyB,GAC3Dxa,KAAKwa,sBAAsBpC,QAAQmC,GAC5Bva,OAhgBf,CAAA3D ,IAAA,iBAAA4H,MAshBI,SAAesW,GACX,IAAKva,KAAKwa,sBACN,OAAOxa,KAEX,GAAIua,GAEA,IAD A,IAAMpZ,EAAYnB,KAAKwa,sBACdvc,EAAI,EAAGA,EAAIkD,EAAUjD,OAAQD,IAClC,GAAIsc,IAAap Z,EAAUlD,GAEvB,OADAkD,EAAUN,OAAO5C,EAAG,GACb+B,UAKfA,KAAKwa,sBAAwB,GAEjC,OAAOxa, OAtiBf,CAAA3D,IAAA,uBAAA4H,MA8iBI,WACI,OAAOjE,KAAKwa,uBAAyB,KA/iB7C,CAAAne,IAAA, 0BAAA4H,MAwjBI,SAAwBQ,GACpB,GAAIzE,KAAKwa,uBAAyBxa,KAAKwa,sBAAsBtc,OAAQ,CACjE,IA DiEuc,EAAAC,EAAAb,EAC/C7Z,KAAKwa,sBAAsBvZ,SADoB,IAEjE,IAAkCyZ,EAAAZ,MAAAW,EAAAC, EAAAX,KAAAC,MAAA,CAAAS,EAAAxW,MACrB3D,MAAMN,KAAMyE,EAAOjI,OAHiC,MAAAwJ,GAAA0U,EA AAtU,EAAAJ,GAAA,QAAA0U,EAAAT,UAzjB7ExL,EAAA,CAA4B/O,GCLrB,SAASib,GAAQrY,GACpBA,E AAOA,GAAQ,GACftC,KAAK4a,GAAKtY,EAAKuY,KAAO,IACtB7a,KAAK8a,IAAMxY,EAAKwY,KAAO,IAC vB9a,KAAK+a,OAASzY,EAAKyY,QAAU,EAC7B/a,KAAKgb,OAAS1Y,EAAK0Y,OAAS,GAAK1Y,EAAK0Y,Q AAU,EAAI1Y,EAAK0Y,OAAS,EAClEhb,KAAKib,SAAW,EAQpBN,GAAQhe,UAAUue,SAAW,WACzB,IAAIN ,EAAK5a,KAAK4a,GAAK1V,KAAK4N,IAAI9S,KAAK+a,OAAQ/a,KAAKib,YAC9C,GAAIjb,KAAKgb,OAA Q,CACb,IAAIG,EAAOjW,KAAKkW,SACZC,EAAYnW,KAAKC,MAAMgW,EAAOnb,KAAKgb,OAASJ,GAChDA, EAAoC,IAAN,EAAxB1V,KAAKC,MAAa,GAAPgW,IAAuBP,EAAKS,EAAYT,EAAKS,EAElE,OAAgC,EAAzBn W,KAAK2V,IAAID,EAAI5a,KAAK8a,MAO7BH,GAAQhe,UAAU2e,MAAQ,WACtBtb,KAAKib,SAAW,GAOpB N,GAAQhe,UAAU4e,OAAS,SAAUV,GACjC7a,KAAK4a,GAAKC,GAOdF,GAAQhe,UAAU6e,OAAS,SAAUV,G ACjC9a,KAAK8a,IAAMA,GAOfH,GAAQhe,UAAU8e,UAAY,SAAUT,GACpChb,KAAKgb,OAASA,GC1DlB,I AAaU,GAAb,SAAApY,GAAAC,EAAAmY,EAAApY,GAAA,IAAAH,EAAAM,EAAAiY,GACI,SAAYvS,EAAAA,E AAK7G,GAAM,IAAAW,EACf0Y,EADezY,EAAAlD,KAAA0b,IAEnBzY,EAAAE,EAAAtG,KAAAmD,OACK4b, KAAO,GACZ3Y,EAAK+U,KAAO,GACR7O,GAAO,WAAoBA,EAAAA,KAC3B7G,EAAO6G,EACPA,OAAMY,IAEV zH,EAAOA,GAAQ,IACV0G,KAAO1G,EAAK0G,MAAQ,aACzB/F,EAAKX,KAAOA,EACZD,EAAqBuB,EAAAX, GAAOX,GAC5BW,EAAK4Y,cAAmC,IAAtBvZ,EAAKuZ,cACvB5Y,EAAK6Y,qBAAqBxZ,EAAKwZ,sBAAwBC, KACvD9Y,EAAK+Y,kBAAkB1Z,EAAK0Z,mBAAqB,KACjD/Y,EAAKgZ,qBAAqB3Z,EAAK2Z,sBAAwB,KACv DhZ,EAAKiZ,oBAAwD,QAAnCP,EAAKrZ,EAAK4Z,2BAAwC,IAAPP,EAAgBA,EAAK,IAC1F1Y,EAAKkZ,Q AAU,IAAIxB,GAAQ,CACvBE,IAAK5X,EAAK+Y,oBACVlB,IAAK7X,EAAKgZ,uBACVjB,OAAQ/X,EAAKiZ ,wBAEjBjZ,EAAKwH,QAAQ,MAAQnI,EAAKmI,QAAU,IAAQnI,EAAKmI,SACjDxH,EAAKkV,YAAc,SACnB lV,EAAKkG,IAAMA,EACX,IAAMiT,EAAU9Z,EAAK+Z,QAAUA,GA1BZ,OA2BnBpZ,EAAKqZ,QAAU,IAAIF ,EAAQ5F,QAC3BvT,EAAKqS,QAAU,IAAI8G,EAAQpI,QAC3B/Q,EAAK8U,cAAoC,IAArBzV,EAAKia,YA CrBtZ,EAAK8U,cACL9U,EAAKkH,OA/BUlH,EAD3B,OAAAe,EAAA0X,EAAA,CAAA,CAAArf,IAAA,eAAA 4H,MAkCI,SAAauY,GACT,OAAKjc,UAAUrC,QAEf8B,KAAKyc,gBAAkBD,EAChBxc,MAFIA,KAAKyc,gB ApCxB,CAAApgB,IAAA,uBAAA4H,MAwCI,SAAqBuY,GACjB,YAAUzS,IAANyS,EACOxc,KAAK0c,uBACh B1c,KAAK0c,sBAAwBF,EACtBxc,QA5Cf,CAAA3D,IAAA,oBAAA4H,MA8CI,SAAkBuY,GACd,IAAIb,EA CJ,YAAU5R,IAANyS,EACOxc,KAAK2c,oBAChB3c,KAAK2c,mBAAqBH,EACF,QAAvBb,EAAK3b,KAAKmc ,eAA4B,IAAPR,GAAyBA,EAAGJ,OAAOiB,GAC5Dxc,QApDf,CAAA3D,IAAA,sBAAA4H,MAsDI,SAAoBuY ,GAChB,IAAIb,EACJ,YAAU5R,IAANyS,EACOxc,KAAK4c,sBAChB5c,KAAK4c,qBAAuBJ,EACJ,QAAvB b,EAAK3b,KAAKmc,eAA4B,IAAPR,GAAyBA,EAAGF,UAAUe,GAC/Dxc,QA5Df,CAAA3D,IAAA,uBAAA4H ,MA8DI,SAAqBuY,GACjB,IAAIb,EACJ,YAAU5R,IAANyS,EACOxc,KAAK6c,uBAChB7c,KAAK6c,sBAA wBL,EACL,QAAvBb,EAAK3b,KAAKmc,eAA4B,IAAPR,GAAyBA,EAAGH,OAAOgB,GAC5Dxc,QApEf,CAAA 3D,IAAA,UAAA4H,MAsEI,SAAQuY,GACJ,OAAKjc,UAAUrC,QAEf8B,KAAK8c,SAAWN,EACTxc,MAFIA, KAAK8c,WAxExB,CAAAzgB,IAAA,uBAAA4H,MAkFI,YAESjE,KAAK+c,eACN/c,KAAKyc,eACqB,IAA1B zc,KAAKmc,QAAQlB,UAEbjb,KAAKgd,cAxFjB,CAAA3gB,IAAA,OAAA4H,MAkGI,SAAKlE,GAAI,IAAA 2D,EAAA1D,KACL,IAAKA,KAAKmY,YAAYpP,QAAQ,QAC1B,OAAO/I,KACXA,KAAK2Y,OAAS,IAAIsE,GA AOjd,KAAKmJ,IAAKnJ,KAAKsC,MACxC,IAAMyB,EAAS/D,KAAK2Y,OACdrX,EAAOtB,KACbA,KAAKmY, YAAc,UACnBnY,KAAKkd,eAAgB,EAErB,IAAMC,EAAiBvd,GAAGmE,EAAQ,QAAQ,WACtCzC,EAAKkL,SA CLzM,GAAMA,OAGJqd,EAAWxd,GAAGmE,EAAQ,SAAS,SAACiC,GAClC1E,EAAK4J,UACL5J,EAAK6W,YA Ac,SACnBzU,EAAKxC,aAAa,QAAS8E,GACvBjG,EACAA,EAAGiG,GAIH1E,EAAK+b,0BAGb,IAAI,IAAU rd,KAAK8c,SAAU,CACzB,IAAMrS,EAAUzK,KAAK8c,SACL,IAAZrS,GACA0S,IAGJ,IAAMrE,EAAQ9Y, KAAKwC,cAAa,WAC5B2a,IACApZ,EAAOoE,QAEPpE,EAAOjD,KAAK,QAAS,IAAIsC,MAAM,cAChCqH,GA CCzK,KAAKsC,KAAKmK,WACVqM,EAAMnM,QAEV3M,KAAKgY,KAAK9X,MAAK,WACXkC,aAAa0W,MAKrB,O AFA9Y,KAAKgY,KAAK9X,KAAKid,GACfnd,KAAKgY,KAAK9X,KAAKkd,GACRpd,OAjJf,CAAA3D,IAAA, UAAA4H,MAyJI,SAAQlE,GACJ,OAAOC,KAAKmK,KAAKpK,KA1JzB,CAAA1D,IAAA,SAAA4H,MAiKI,WAE IjE,KAAKkL,UAELlL,KAAKmY,YAAc,OACnBnY,KAAKkB,aAAa,QAElB,IAAM6C,EAAS/D,KAAK2Y,OAC pB3Y,KAAKgY,KAAK9X,KAAKN,GAAGmE,EAAQ,OAAQ/D,KAAKsd,OAAO7a,KAAKzC,OAAQJ,GAAGmE,EA AQ,OAAQ/D,KAAKud,OAAO9a,KAAKzC,OAAQJ,GAAGmE,EAAQ,QAAS/D,KAAKgN,QAAQvK,KAAKzC,OAA QJ,GAAGmE,EAAQ,QAAS/D,KAAK4M,QAAQnK,KAAKzC,OAAQJ,GAAGI,KAAKsV,QAAS,UAAWtV,KAAKwd ,UAAU/a,KAAKzC,UAzK3P,CAAA3D,IAAA,SAAA4H,MAgLI,WACIjE,KAAKkB,aAAa,UAjL1B,CAAA7E, IAAA,SAAA4H,MAwLI,SAAOzH,GACH,IACIwD,KAAKsV,QAAQmB,IAAIja,GAErB,MAAO4J,GACHpG,KA AK4M,QAAQ,kBA7LzB,CAAAvQ,IAAA,YAAA4H,MAqMI,SAAUQ,GACNzE,KAAKkB,aAAa,SAAUuD,KAtMp C,CAAApI,IAAA,UAAA4H,MA6MI,SAAQ+B,GACJhG,KAAKkB,aAAa,QAAS8E,KA9MnC,CAAA3J,IAAA,S AAA4H,MAsNI,SAAO0S,EAAKrU,GACR,IAAIyB,EAAS/D,KAAK4b,KAAKjF,GAKvB,OAJK5S,IACDA,EA AS,IAAI0K,GAAOzO,KAAM2W,EAAKrU,GAC/BtC,KAAK4b,KAAKjF,GAAO5S,GAEdA,IA5Nf,CAAA1H,I AAA,WAAA4H,MAoOI,SAASF,GAEL,IADA,IACA0Z,EAAA,EAAAC,EADa1hB,OAAOG,KAAK6D,KAAK4b,M ACN6B,EAAAC,EAAAxf,OAAAuf,IAAA,CAAnB,IAAM9G,EAAN+G,EAAAD,GAED,GADezd,KAAK4b,KAAK jF,GACdgH,OACP,OAGR3d,KAAK4d,WA5Ob,CAAAvhB,IAAA,UAAA4H,MAoPI,SAAQQ,GAEJ,IADA,IAA MqD,EAAiB9H,KAAKsc,QAAQvX,OAAON,GAClCxG,EAAI,EAAGA,EAAI6J,EAAe5J,OAAQD,IACvC+B,K AAK2Y,OAAOnU,MAAMsD,EAAe7J,GAAIwG,EAAOkN,WAvPxD,CAAAtV,IAAA,UAAA4H,MA+PI,WACIjE, KAAKgY,KAAK5b,SAAQ,SAACke,GAAD,OAAgBA,OAClCta,KAAKgY,KAAK9Z,OAAS,EACnB8B,KAAKsV, QAAQuB,YAlQrB,CAAAxa,IAAA,SAAA4H,MAyQI,WACIjE,KAAKkd,eAAgB,EACrBld,KAAK+c,eAAgB, EACrB/c,KAAK4M,QAAQ,gBACT5M,KAAK2Y,QACL3Y,KAAK2Y,OAAOxQ,UA9QxB,CAAA9L,IAAA,aAAA4 H,MAqRI,WACI,OAAOjE,KAAK4d,WAtRpB,CAAAvhB,IAAA,UAAA4H,MA6RI,SAAQnB,EAAQC,GACZ/C, KAAKkL,UACLlL,KAAKmc,QAAQb,QACbtb,KAAKmY,YAAc,SACnBnY,KAAKkB,aAAa,QAAS4B,EAAQC,G AC/B/C,KAAKyc,gBAAkBzc,KAAKkd,eAC5Bld,KAAKgd,cAnSjB,CAAA3gB,IAAA,YAAA4H,MA2SI,WA AY,IAAA2D,EAAA5H,KACR,GAAIA,KAAK+c,eAAiB/c,KAAKkd,cAC3B,OAAOld,KACX,IAAMsB,EAAOt B,KACb,GAAIA,KAAKmc,QAAQlB,UAAYjb,KAAK0c,sBAC9B1c,KAAKmc,QAAQb,QACbtb,KAAKkB,aAA a,oBAClBlB,KAAK+c,eAAgB,MAEpB,CACD,IAAMc,EAAQ7d,KAAKmc,QAAQjB,WAC3Blb,KAAK+c,eAA gB,EACrB,IAAMjE,EAAQ9Y,KAAKwC,cAAa,WACxBlB,EAAK4b,gBAETtV,EAAK1G,aAAa,oBAAqBI,EA AK6a,QAAQlB,UAEhD3Z,EAAK4b,eAET5b,EAAK6I,MAAK,SAACnE,GACHA,GACA1E,EAAKyb,eAAgB,E ACrBzb,EAAK0b,YACLpV,EAAK1G,aAAa,kBAAmB8E,IAGrC1E,EAAKwc,oBAGdD,GACC7d,KAAKsC,KA AKmK,WACVqM,EAAMnM,QAEV3M,KAAKgY,KAAK9X,MAAK,WACXkC,aAAa0W,SA7U7B,CAAAzc,IAAA,cA AA4H,MAsVI,WACI,IAAM8Z,EAAU/d,KAAKmc,QAAQlB,SAC7Bjb,KAAK+c,eAAgB,EACrB/c,KAAKmc, QAAQb,QACbtb,KAAKkB,aAAa,YAAa6c,OA1VvCrC,EAAA,CAA6Bhc,GCAvBse,GAAQ,GACd,SAASjgB, GAAOoL,EAAK7G,GACE,WAAf2b,EAAO9U,KACP7G,EAAO6G,EACPA,OAAMY,GAGV,IASIwN,EATE2G,EC HH,SAAa/U,GAAqB,IAAhBH,yDAAO,GAAImV,EAAK5d,UAAArC,OAAA,EAAAqC,UAAA,QAAAwJ,EACjC5 M,EAAMgM,EAEVgV,EAAMA,GAA4B,oBAAbtX,UAA4BA,SAC7C,MAAQsC,IACRA,EAAMgV,EAAIpX,SAAW ,KAAOoX,EAAIrQ,MAEjB,iBAAR3E,IACH,MAAQA,EAAI3K,OAAO,KAEf2K,EADA,MAAQA,EAAI3K,OAA O,GACb2f,EAAIpX,SAAWoC,EAGfgV,EAAIrQ,KAAO3E,GAGpB,sBAAsBiV,KAAKjV,KAExBA,OADA,IA AuBgV,EACjBA,EAAIpX,SAAW,KAAOoC,EAGtB,WAAaA,GAI3BhM,EAAMoQ,GAAMpE,IAGXhM,EAAI6J, OACD,cAAcoX,KAAKjhB,EAAI4J,UACvB5J,EAAI6J,KAAO,KAEN,eAAeoX,KAAKjhB,EAAI4J,YAC7B5 J,EAAI6J,KAAO,QAGnB7J,EAAI6L,KAAO7L,EAAI6L,MAAQ,IACvB,IACM8E,GADkC,IAA3B3Q,EAAI2 Q,KAAK/E,QAAQ,KACV,IAAM5L,EAAI2Q,KAAO,IAAM3Q,EAAI2Q,KAS/C,OAPA3Q,EAAIiS,GAAKjS,E AAI4J,SAAW,MAAQ+G,EAAO,IAAM3Q,EAAI6J,KAAOgC,EAExD7L,EAAIkhB,KACAlhB,EAAI4J,SACA, MACA+G,GACCqQ,GAAOA,EAAInX,OAAS7J,EAAI6J,KAAO,GAAK,IAAM7J,EAAI6J,MAChD7J,ED5CQmh B,CAAInV,GADnB7G,EAAOA,GAAQ,IACc0G,MAAQ,cAC/B6E,EAASqQ,EAAOrQ,OAChBuB,EAAK8O,EAA O9O,GACZpG,EAAOkV,EAAOlV,KACduV,EAAgBP,GAAM5O,IAAOpG,KAAQgV,GAAM5O,GAAN,KAkB3C,O AjBsB9M,EAAKkc,UACvBlc,EAAK,0BACL,IAAUA,EAAKmc,WACfF,EAGAhH,EAAK,IAAImE,GAAQ7N,E AAQvL,IAGpB0b,GAAM5O,KACP4O,GAAM5O,GAAM,IAAIsM,GAAQ7N,EAAQvL,IAEpCiV,EAAKyG,GAAM 5O,IAEX8O,EAAOra,QAAUvB,EAAKuB,QACtBvB,EAAKuB,MAAQqa,EAAO7P,UAEjBkJ,EAAGxT,OAAOm a,EAAOlV,KAAM1G,UAIlC2G,EAAclL,GAAQ,CAClB2d,QAAAA,GACAjN,OAAAA,GACA8I,GAAIxZ,GAC JmZ,QAASnZ"}
 End of changes. 1 change blocks. 
lines changed or deleted lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)