!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n="undefined"!=typeof globalThis?globalThis:n||self).io=t()}(this,function(){"use strict";function e(n){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},e(n)}function r(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}function pt(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}function u(n,t,i){return t&&pt(n.prototype,t),i&&pt(n,i),Object.defineProperty(n,"prototype",{writable:!1}),n}function a(){return a=Object.assign?Object.assign.bind():function(n){for(var i,r,t=1;t<arguments.length;t++){i=arguments[t];for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(n[r]=i[r])}return n},a.apply(this,arguments)}function h(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}});Object.defineProperty(n,"prototype",{writable:!1});t&&w(n,t)}function i(n){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},i(n)}function w(n,t){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},w(n,t)}function wt(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(n){return!1}}function ot(){return ot=wt()?Reflect.construct.bind():function(n,t,i){var r=[null],u;return r.push.apply(r,t),u=new(Function.bind.apply(n,r)),i&&w(u,i.prototype),u},ot.apply(null,arguments)}function st(n){var t="function"==typeof Map?new Map:void 0;return st=function(n){function r(){return ot(n,arguments,i(this).constructor)}if(null===n||(u=n,-1===Function.toString.call(u).indexOf("[native code]")))return n;var u;if("function"!=typeof n)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(n))return t.get(n);t.set(n,r)}return r.prototype=Object.create(n.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),w(r,n)},st(n)}function b(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}function nr(n,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return b(n)}function c(n){var t=wt();return function(){var r,u=i(n),f;return t?(f=i(this).constructor,r=Reflect.construct(u,arguments,f)):r=u.apply(this,arguments),nr(this,r)}}function tr(n,t){for(;!Object.prototype.hasOwnProperty.call(n,t)&&null!==(n=i(n)););return n}function o(){return o="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(n,t,i){var u=tr(n,t),r;if(u)return r=Object.getOwnPropertyDescriptor(u,t),r.get?r.get.call(arguments.length<3?n:i):r.value},o.apply(this,arguments)}function bt(n,t){(null==t||t>n.length)&&(t=n.length);for(var i=0,r=new Array(t);i<t;i++)r[i]=n[i];return r}function kt(n,t){var i="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"],r,u,o,f,e;if(!i){if(Array.isArray(n)||(i=function(n,t){if(n){if("string"==typeof n)return bt(n,t);var i=Object.prototype.toString.call(n).slice(8,-1);return"Object"===i&&n.constructor&&(i=n.constructor.name),"Map"===i||"Set"===i?Array.from(n):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?bt(n,t):void 0}}(n))||t&&n&&"number"==typeof n.length)return i&&(n=i),r=0,u=function(){},{s:u,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n;},f:u};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}return f=!0,e=!1,{s:function(){i=i.call(n)},n:function(){var n=i.next();return f=n.done,n},e:function(n){e=!0;o=n},f:function(){try{f||null==i.return||i.return()}finally{if(e)throw o;}}}}function t(n){if(n)return function(n){for(var i in t.prototype)n[i]=t.prototype[i];return n}(n)}function ui(n){for(var i=arguments.length,r=new Array(i>1?i-1:0),t=1;t<i;t++)r[t-1]=arguments[t];return r.reduce(function(t,i){return n.hasOwnProperty(i)&&(t[i]=n[i]),t},{})}function nt(n,t){t.useNativeTimers?(n.setTimeoutFn=fi.bind(l),n.clearTimeoutFn=ei.bind(l)):(n.setTimeoutFn=setTimeout.bind(l),n.clearTimeoutFn=clearTimeout.bind(l))}function li(n){var t="";do t=hi[n%64]+t,n=Math.floor(n/64);while(n>0);return t}function ai(){var n=li(+new Date);return n!==oi?(ci=0,oi=n):n+"."+li(ci++)}function vi(n){var t="";for(var i in n)n.hasOwnProperty(i)&&(t.length&&(t+="&"),t+=encodeURIComponent(i)+"="+encodeURIComponent(n[i]));return t}function hr(n){for(var i,r={},u=n.split("&"),t=0,f=u.length;t<f;t++)i=u[t].split("="),r[decodeURIComponent(i[0])]=decodeURIComponent(i[1]);return r}function pi(n){var t=n.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||yi))return new XMLHttpRequest}catch(n){}if(!t)try{return new l[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch(n){}}function cr(){}function wi(){for(var n in v.requests)v.requests.hasOwnProperty(n)&&v.requests[n].abort()}function ct(n){var o=n,i=n.indexOf("["),r=n.indexOf("]");-1!=i&&-1!=r&&(n=n.substring(0,i)+n.substring(i,r).replace(/:/g,";")+n.substring(r,n.length));for(var e,u,s=pr.exec(n||""),t={},f=14;f--;)t[wr[f]]=s[f]||"";return-1!=i&&-1!=r&&(t.source=o,t.host=t.host.substring(1,t.host.length-1).replace(/;/g,":"),t.authority=t.authority.replace("[","").replace("]","").replace(/;/g,":"),t.ipv6uri=!0),t.pathNames=function(n,t){var i=t.replace(/\/{2,9}/g,"/").split("/");return"/"!=t.slice(0,1)&&0!==t.length||i.splice(0,1),"/"==t.slice(-1)&&i.splice(i.length-1,1),i}(0,t.path),t.queryKey=(e=t.query,u={},e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(n,t,i){t&&(u[t]=i)}),u),t}function lt(n){return br&&(n instanceof ArrayBuffer||function(n){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer}(n))||kr&&n instanceof Blob||dr&&n instanceof File}function ut(n){var t,r,i;if(!n||"object"!==e(n))return!1;if(Array.isArray(n)){for(t=0,r=n.length;t<r;t++)if(ut(n[t]))return!0;return!1}if(lt(n))return!0;if(n.toJSON&&"function"==typeof n.toJSON&&1===arguments.length)return ut(n.toJSON(),!0);for(i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&ut(n[i]))return!0;return!1}function gr(n){var t=[],r=n.data,i=n;return i.data=at(r,t),i.attachments=t.length,{packet:i,buffers:t}}function at(n,t){var o,u,i,f,r;if(!n)return n;if(lt(n))return o={_placeholder:!0,num:t.length},t.push(n),o;if(Array.isArray(n)){for(u=new Array(n.length),i=0;i<n.length;i++)u[i]=at(n[i],t);return u}if("object"===e(n)&&!(n instanceof Date)){f={};for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(f[r]=at(n[r],t));return f}return n}function nu(n,t){return n.data=vt(n.data,t),n.attachments=void 0,n}function vt(n,t){var i,r;if(!n)return n;if(n&&!0===n._placeholder){if("number"==typeof n.num&&n.num>=0&&n.num<t.length)return t[n.num];throw new Error("illegal attachments");}if(Array.isArray(n))for(i=0;i<n.length;i++)n[i]=vt(n[i],t);else if("object"===e(n))for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(n[r]=vt(n[r],t));return n}function f(n,t,i){return n.on(t,i),function(){n.off(t,i)}}function y(n){n=n||{};this.ms=n.min||100;this.max=n.max||1e4;this.factor=n.factor||2;this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0;this.attempts=0}function et(n,t){"object"===e(n)&&(t=n,n=void 0);var u,i=function(n){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,t=n,r;return i=i||"undefined"!=typeof location&&location,null==n&&(n=i.protocol+"//"+i.host),"string"==typeof n&&("/"===n.charAt(0)&&(n="/"===n.charAt(1)?i.protocol+n:i.host+n),/^(https?|wss?):\/\//.test(n)||(n=void 0!==i?i.protocol+"//"+n:"https://"+n),t=ct(n)),t.port||(/^(http|ws)$/.test(t.protocol)?t.port="80":/^(http|ws)s$/.test(t.protocol)&&(t.port="443")),t.path=t.path||"/",r=-1!==t.host.indexOf(":")?"["+t.host+"]":t.host,t.id=t.protocol+"://"+r+":"+t.port+u,t.href=t.protocol+"://"+r+(i&&i.port===t.port?"":":"+t.port),t}(n,(t=t||{}).path||"/socket.io"),f=i.source,r=i.id,o=i.path,s=p[r]&&o in p[r].nsps;return t.forceNew||t["force new connection"]||!1===t.multiplex||s?u=new ft(f,t):(p[r]||(p[r]=new ft(f,t)),u=p[r]),i.query&&!t.query&&(t.query=i.queryKey),u.socket(i.path,t)}var s=Object.create(null),k,l,fi,ei,ht,yi,rt,n,gi,yt,ft,p;s.open="0";s.close="1";s.ping="2";s.pong="3";s.message="4";s.upgrade="5";s.noop="6";k=Object.create(null);Object.keys(s).forEach(function(n){k[s[n]]=n});for(var ir={type:"error",data:"parser error"},rr="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),ur="function"==typeof ArrayBuffer,dt=function(n,t,i){var u,f=n.type,r=n.data;return rr&&r instanceof Blob?t?i(r):gt(r,i):ur&&(r instanceof ArrayBuffer||(u=r,"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(u):u&&u.buffer instanceof ArrayBuffer))?t?i(r):gt(new Blob([r]),i):i(s[f]+(r||""))},gt=function(n,t){var i=new FileReader;return i.onload=function(){var n=i.result.split(",")[1];t("b"+n)},i.readAsDataURL(n)},ni="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),g=0;g<ni.length;g++)d[ni.charCodeAt(g)]=g;var fr="function"==typeof ArrayBuffer,ti=function(n,t){if("string"!=typeof n)return{type:"message",data:ii(n,t)};var i=n.charAt(0);return"b"===i?{type:"message",data:er(n.substring(1),t)}:k[i]?n.length>1?{type:k[i],data:n.substring(1)}:{type:k[i]}:ir},er=function(n,t){if(fr){var i=function(n){var t,s,r,u,h,f=.75*n.length,c=n.length,e=0,o,i;for("="===n[n.length-1]&&(f--,"="===n[n.length-2]&&f--),o=new ArrayBuffer(f),i=new Uint8Array(o),t=0;t<c;t+=4)s=d[n.charCodeAt(t)],r=d[n.charCodeAt(t+1)],u=d[n.charCodeAt(t+2)],h=d[n.charCodeAt(t+3)],i[e++]=s<<2|r>>4,i[e++]=(15&r)<<4|u>>2,i[e++]=(3&u)<<6|63&h;return o}(n);return ii(i,t)}return{base64:!0,data:n}},ii=function(n,t){return"blob"===t&&n instanceof ArrayBuffer?new Blob([n]):n},ri=String.fromCharCode(30);t.prototype.on=t.prototype.addEventListener=function(n,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(t),this};t.prototype.once=function(n,t){function i(){this.off(n,i);t.apply(this,arguments)}return i.fn=t,this.on(n,i),this};t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(n,t){var u,i,r;if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;if(i=this._callbacks["$"+n],!i)return this;if(1==arguments.length)return delete this._callbacks["$"+n],this;for(r=0;r<i.length;r++)if((u=i[r])===t||u.fn===t){i.splice(r,1);break}return 0===i.length&&delete this._callbacks["$"+n],this};t.prototype.emit=function(n){var u;this._callbacks=this._callbacks||{};for(var r=new Array(arguments.length-1),i=this._callbacks["$"+n],t=1;t<arguments.length;t++)r[t-1]=arguments[t];if(i)for(t=0,u=(i=i.slice(0)).length;t<u;++t)i[t].apply(this,r);return this};t.prototype.emitReserved=t.prototype.emit;t.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};t.prototype.hasListeners=function(n){return!!this.listeners(n).length};l="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();fi=setTimeout;ei=clearTimeout;for(var oi,or=function(n){function t(n,u,f){var e;return r(this,t),(e=i.call(this,n)).description=u,e.context=f,e.type="TransportError",e}h(t,n);var i=c(t);return u(t)}(st(Error)),si=function(n){function t(n){var i;return r(this,t),(i=f.call(this)).writable=!1,nt(b(i),n),i.opts=n,i.query=n.query,i.readyState="",i.socket=n.socket,i}h(t,n);var f=c(t);return u(t,[{key:"onError",value:function(n,r,u){return o(i(t.prototype),"emitReserved",this).call(this,"error",new or(n,r,u)),this}},{key:"open",value:function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this}},{key:"close",value:function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}},{key:"send",value:function(n){"open"===this.readyState&&this.write(n)}},{key:"onOpen",value:function(){this.readyState="open";this.writable=!0;o(i(t.prototype),"emitReserved",this).call(this,"open")}},{key:"onData",value:function(n){var t=ti(n,this.socket.binaryType);this.onPacket(t)}},{key:"onPacket",value:function(n){o(i(t.prototype),"emitReserved",this).call(this,"packet",n)}},{key:"onClose",value:function(n){this.readyState="closed";o(i(t.prototype),"emitReserved",this).call(this,"close",n)}}]),t}(t),hi="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),sr={},ci=0,tt=0;tt<64;tt++)sr[hi[tt]]=tt;ht=!1;try{ht="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(e){}yi=ht;var lr=null!=new pi({xdomain:!1}).responseType,ar=function(n){function t(n){var u,e,f,o;return(r(this,t),(u=i.call(this,n)).polling=!1,"undefined"!=typeof location)&&(e="https:"===location.protocol,f=location.port,f||(f=e?"443":"80"),u.xd="undefined"!=typeof location&&n.hostname!==location.hostname||f!==n.port,u.xs=n.secure!==e),o=n&&n.forceBase64,u.supportsBinary=lr&&!o,u}h(t,n);var i=c(t);return u(t,[{key:"name",get:function(){return"polling"}},{key:"doOpen",value:function(){this.poll()}},{key:"pause",value:function(n){var r=this,i,t;this.readyState="pausing";i=function(){r.readyState="paused";n()};this.polling||!this.writable?(t=0,this.polling&&(t++,this.once("pollComplete",function(){--t||i()})),this.writable||(t++,this.once("drain",function(){--t||i()}))):i()}},{key:"poll",value:function(){this.polling=!0;this.doPoll();this.emitReserved("poll")}},{key:"onData",value:function(n){var t=this;(function(n,t){for(var r,u=n.split(ri),f=[],i=0;i<u.length;i++)if(r=ti(u[i],t),f.push(r),"error"===r.type)break;return f})(n,this.socket.binaryType).forEach(function(n){if("opening"===t.readyState&&"open"===n.type&&t.onOpen(),"close"===n.type)return t.onClose({description:"transport closed by the server"}),!1;t.onPacket(n)});"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}},{key:"doClose",value:function(){var t=this,n=function(){t.write([{type:"close"}])};"open"===this.readyState?n():this.once("open",n)}},{key:"write",value:function(n){var t=this;this.writable=!1,function(n,t){var i=n.length,r=new Array(i),u=0;n.forEach(function(n,f){dt(n,!1,function(n){r[f]=n;++u===i&&t(r.join(ri))})})}(n,function(n){t.doWrite(n,function(){t.writable=!0;t.emitReserved("drain")})})}},{key:"uri",value:function(){var n=this.query||{},t=this.opts.secure?"https":"http",r="",i;return!1!==this.opts.timestampRequests&&(n[this.opts.timestampParam]=ai()),this.supportsBinary||n.sid||(n.b64=1),this.opts.port&&("https"===t&&443!==Number(this.opts.port)||"http"===t&&80!==Number(this.opts.port))&&(r=":"+this.opts.port),i=vi(n),t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}},{key:"request",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return a(n,{xd:this.xd,xs:this.xs},this.opts),new v(this.uri(),n)}},{key:"doWrite",value:function(n,t){var r=this,i=this.request({method:"POST",data:n});i.on("success",t);i.on("error",function(n,t){r.onError("xhr post error",n,t)})}},{key:"doPoll",value:function(){var t=this,n=this.request();n.on("data",this.onData.bind(this));n.on("error",function(n,i){t.onError("xhr poll error",n,i)});this.pollXhr=n}}]),t}(si),v=function(n){function t(n,u){var f;return r(this,t),nt(b(f=i.call(this)),u),f.opts=u,f.method=u.method||"GET",f.uri=n,f.async=!1!==u.async,f.data=void 0!==u.data?u.data:null,f.create(),f}h(t,n);var i=c(t);return u(t,[{key:"create",value:function(){var i=this,r=ui(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref"),n,u;r.xdomain=!!this.opts.xd;r.xscheme=!!this.opts.xs;n=this.xhr=new pi(r);try{n.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders)for(u in n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(u)&&n.setRequestHeader(u,this.opts.extraHeaders[u])}catch(i){}if("POST"===this.method)try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(i){}try{n.setRequestHeader("Accept","*/*")}catch(i){}"withCredentials"in n&&(n.withCredentials=this.opts.withCredentials);this.opts.requestTimeout&&(n.timeout=this.opts.requestTimeout);n.onreadystatechange=function(){4===n.readyState&&(200===n.status||1223===n.status?i.onLoad():i.setTimeoutFn(function(){i.onError("number"==typeof n.status?n.status:0)},0))};n.send(this.data)}catch(r){return void this.setTimeoutFn(function(){i.onError(r)},0)}"undefined"!=typeof document&&(this.index=t.requestsCount++,t.requests[this.index]=this)}},{key:"onError",value:function(n){this.emitReserved("error",n,this.xhr);this.cleanup(!0)}},{key:"cleanup",value:function(n){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=cr,n)try{this.xhr.abort()}catch(n){}"undefined"!=typeof document&&delete t.requests[this.index];this.xhr=null}}},{key:"onLoad",value:function(){var n=this.xhr.responseText;null!==n&&(this.emitReserved("data",n),this.emitReserved("success"),this.cleanup())}},{key:"abort",value:function(){this.cleanup()}}]),t}(t);(v.requestsCount=0,v.requests={},"undefined"!=typeof document)&&("function"==typeof attachEvent?attachEvent("onunload",wi):"function"==typeof addEventListener&&addEventListener("onpagehide"in l?"pagehide":"unload",wi,!1));var bi="function"==typeof Promise&&"function"==typeof Promise.resolve?function(n){return Promise.resolve().then(n)}:function(n,t){return t(n,0)},it=l.WebSocket||l.MozWebSocket,ki="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),vr=function(n){function t(n){var u;return r(this,t),(u=i.call(this,n)).supportsBinary=!n.forceBase64,u}h(t,n);var i=c(t);return u(t,[{key:"name",get:function(){return"websocket"}},{key:"doOpen",value:function(){if(this.check()){var n=this.uri(),t=this.opts.protocols,i=ki?{}:ui(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=ki?new it(n,t,i):t?new it(n,t):new it(n)}catch(n){return this.emitReserved("error",n)}this.ws.binaryType=this.socket.binaryType||"arraybuffer";this.addEventListeners()}}},{key:"addEventListeners",value:function(){var n=this;this.ws.onopen=function(){n.opts.autoUnref&&n.ws._socket.unref();n.onOpen()};this.ws.onclose=function(t){return n.onClose({description:"websocket connection closed",context:t})};this.ws.onmessage=function(t){return n.onData(t.data)};this.ws.onerror=function(t){return n.onError("websocket error",t)}}},{key:"write",value:function(n){var t=this,r,i;for(this.writable=!1,r=function(i){var r=n[i],u=i===n.length-1;dt(r,t.supportsBinary,function(n){try{t.ws.send(n)}catch(n){}u&&bi(function(){t.writable=!0;t.emitReserved("drain")},t.setTimeoutFn)})},i=0;i<n.length;i++)r(i)}},{key:"doClose",value:function(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}},{key:"uri",value:function(){var n=this.query||{},t=this.opts.secure?"wss":"ws",r="",i;return this.opts.port&&("wss"===t&&443!==Number(this.opts.port)||"ws"===t&&80!==Number(this.opts.port))&&(r=":"+this.opts.port),this.opts.timestampRequests&&(n[this.opts.timestampParam]=ai()),this.supportsBinary||(n.b64=1),i=vi(n),t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}},{key:"check",value:function(){return!!it}}]),t}(si),yr={websocket:vr,polling:ar},pr=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,wr=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];rt=function(n){function t(n){var u,f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r(this,t),u=i.call(this),n&&"object"===e(n)&&(f=n,n=null),n?(n=ct(n),f.hostname=n.host,f.secure="https"===n.protocol||"wss"===n.protocol,f.port=n.port,n.query&&(f.query=n.query)):f.host&&(f.hostname=ct(f.host).host),nt(b(u),f),u.secure=null!=f.secure?f.secure:"undefined"!=typeof location&&"https:"===location.protocol,f.hostname&&!f.port&&(f.port=u.secure?"443":"80"),u.hostname=f.hostname||("undefined"!=typeof location?location.hostname:"localhost"),u.port=f.port||("undefined"!=typeof location&&location.port?location.port:u.secure?"443":"80"),u.transports=f.transports||["polling","websocket"],u.readyState="",u.writeBuffer=[],u.prevBufferLen=0,u.opts=a({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},f),u.opts.path=u.opts.path.replace(/\/$/,"")+"/","string"==typeof u.opts.query&&(u.opts.query=hr(u.opts.query)),u.id=null,u.upgrades=null,u.pingInterval=null,u.pingTimeout=null,u.pingTimeoutTimer=null,"function"==typeof addEventListener&&(u.opts.closeOnBeforeunload&&(u.beforeunloadEventListener=function(){u.transport&&(u.transport.removeAllListeners(),u.transport.close())},addEventListener("beforeunload",u.beforeunloadEventListener,!1)),"localhost"!==u.hostname&&(u.offlineEventListener=function(){u.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",u.offlineEventListener,!1))),u.open(),u}h(t,n);var i=c(t);return u(t,[{key:"createTransport",value:function(n){var t=a({},this.opts.query),i;return t.EIO=4,t.transport=n,this.id&&(t.sid=this.id),i=a({},this.opts.transportOptions[n],this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port}),new yr[n](i)}},{key:"open",value:function(){var n,i=this;if(this.opts.rememberUpgrade&&t.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))n="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn(function(){i.emitReserved("error","No transports available")},0);n=this.transports[0]}this.readyState="opening";try{n=this.createTransport(n)}catch(n){return this.transports.shift(),void this.open()}n.open();this.setTransport(n)}},{key:"setTransport",value:function(n){var t=this;this.transport&&this.transport.removeAllListeners();this.transport=n;n.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",function(n){return t.onClose("transport close",n)})}},{key:"probe",value:function(n){function s(){u||(u=!0,o(),i.close(),i=null)}function h(){f("transport closed")}function c(){f("socket closed")}function l(n){i&&n.name!==i.name&&s()}var r=this,i=this.createTransport(n),u=!1,e,f,o;t.priorWebsocketSuccess=!1;e=function(){u||(i.send([{type:"ping",data:"probe"}]),i.once("packet",function(n){if(!u)if("pong"===n.type&&"probe"===n.data){if(r.upgrading=!0,r.emitReserved("upgrading",i),!i)return;t.priorWebsocketSuccess="websocket"===i.name;r.transport.pause(function(){u||"closed"!==r.readyState&&(o(),r.setTransport(i),i.send([{type:"upgrade"}]),r.emitReserved("upgrade",i),i=null,r.upgrading=!1,r.flush())})}else{var f=new Error("probe error");f.transport=i.name;r.emitReserved("upgradeError",f)}}))};f=function(n){var t=new Error("probe error: "+n);t.transport=i.name;s();r.emitReserved("upgradeError",t)};o=function(){i.removeListener("open",e);i.removeListener("error",f);i.removeListener("close",h);r.off("close",c);r.off("upgrading",l)};i.once("open",e);i.once("error",f);i.once("close",h);this.once("close",c);this.once("upgrading",l);i.open()}},{key:"onOpen",value:function(){if(this.readyState="open",t.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause)for(var n=0,i=this.upgrades.length;n<i;n++)this.probe(this.upgrades[n])}},{key:"onPacket",value:function(n){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",n),this.emitReserved("heartbeat"),n.type){case"open":this.onHandshake(JSON.parse(n.data));break;case"ping":this.resetPingTimeout();this.sendPacket("pong");this.emitReserved("ping");this.emitReserved("pong");break;case"error":var t=new Error("server error");t.code=n.data;this.onError(t);break;case"message":this.emitReserved("data",n.data);this.emitReserved("message",n.data)}}},{key:"onHandshake",value:function(n){this.emitReserved("handshake",n);this.id=n.sid;this.transport.query.sid=n.sid;this.upgrades=this.filterUpgrades(n.upgrades);this.pingInterval=n.pingInterval;this.pingTimeout=n.pingTimeout;this.maxPayload=n.maxPayload;this.onOpen();"closed"!==this.readyState&&this.resetPingTimeout()}},{key:"resetPingTimeout",value:function(){var n=this;this.clearTimeoutFn(this.pingTimeoutTimer);this.pingTimeoutTimer=this.setTimeoutFn(function(){n.onClose("ping timeout")},this.pingInterval+this.pingTimeout);this.opts.autoUnref&&this.pingTimeoutTimer.unref()}},{key:"onDrain",value:function(){this.writeBuffer.splice(0,this.prevBufferLen);this.prevBufferLen=0;0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}},{key:"flush",value:function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var n=this.getWritablePackets();this.transport.send(n);this.prevBufferLen=n.length;this.emitReserved("flush")}}},{key:"getWritablePackets",value:function(){var t,i,n,r;if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(i=1,n=0;n<this.writeBuffer.length;n++){if(r=this.writeBuffer[n].data,r&&(i+="string"==typeof(t=r)?function(n){for(var i=0,t=0,r=0,u=n.length;r<u;r++)(i=n.charCodeAt(r))<128?t+=1:i<2048?t+=2:i<55296||i>=57344?t+=3:(r++,t+=4);return t}(t):Math.ceil(1.33*(t.byteLength||t.size))),n>0&&i>this.maxPayload)return this.writeBuffer.slice(0,n);i+=2}return this.writeBuffer}},{key:"write",value:function(n,t,i){return this.sendPacket("message",n,t,i),this}},{key:"send",value:function(n,t,i){return this.sendPacket("message",n,t,i),this}},{key:"sendPacket",value:function(n,t,i,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof i&&(r=i,i=null),"closing"!==this.readyState&&"closed"!==this.readyState){(i=i||{}).compress=!1!==i.compress;var u={type:n,data:t,options:i};this.emitReserved("packetCreate",u);this.writeBuffer.push(u);r&&this.once("flush",r);this.flush()}}},{key:"close",value:function(){var n=this,i=function(){n.onClose("forced close");n.transport.close()},t=function t(){n.off("upgrade",t);n.off("upgradeError",t);i()},r=function(){n.once("upgrade",t);n.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",function(){n.upgrading?r():i()}):this.upgrading?r():i()),this}},{key:"onError",value:function(n){t.priorWebsocketSuccess=!1;this.emitReserved("error",n);this.onClose("transport error",n)}},{key:"onClose",value:function(n,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",n,t),this.writeBuffer=[],this.prevBufferLen=0)}},{key:"filterUpgrades",value:function(n){for(var i=[],t=0,r=n.length;t<r;t++)~this.transports.indexOf(n[t])&&i.push(n[t]);return i}}]),t}(t);rt.protocol=4;rt.protocol;var br="function"==typeof ArrayBuffer,di=Object.prototype.toString,kr="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===di.call(Blob),dr="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===di.call(File);!function(n){n[n.CONNECT=0]="CONNECT";n[n.DISCONNECT=1]="DISCONNECT";n[n.EVENT=2]="EVENT";n[n.ACK=3]="ACK";n[n.CONNECT_ERROR=4]="CONNECT_ERROR";n[n.BINARY_EVENT=5]="BINARY_EVENT";n[n.BINARY_ACK=6]="BINARY_ACK"}(n||(n={}));var tu=function(){function t(n){r(this,t);this.replacer=n}return u(t,[{key:"encode",value:function(t){return t.type!==n.EVENT&&t.type!==n.ACK||!ut(t)?[this.encodeAsString(t)]:(t.type=t.type===n.EVENT?n.BINARY_EVENT:n.BINARY_ACK,this.encodeAsBinary(t))}},{key:"encodeAsString",value:function(t){var i=""+t.type;return t.type!==n.BINARY_EVENT&&t.type!==n.BINARY_ACK||(i+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(i+=t.nsp+","),null!=t.id&&(i+=t.id),null!=t.data&&(i+=JSON.stringify(t.data,this.replacer)),i}},{key:"encodeAsBinary",value:function(n){var t=gr(n),r=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(r),i}}]),t}(),iu=function(t){function f(n){var t;return r(this,f),(t=s.call(this)).reviver=n,t}h(f,t);var s=c(f);return u(f,[{key:"add",value:function(t){var r;if("string"==typeof t){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");(r=this.decodeString(t)).type===n.BINARY_EVENT||r.type===n.BINARY_ACK?(this.reconstructor=new ru(r),0===r.attachments&&o(i(f.prototype),"emitReserved",this).call(this,"decoded",r)):o(i(f.prototype),"emitReserved",this).call(this,"decoded",r)}else{if(!lt(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(r=this.reconstructor.takeBinaryData(t))&&(this.reconstructor=null,o(i(f.prototype),"emitReserved",this).call(this,"decoded",r))}}},{key:"decodeString",value:function(t){var i=0,r={type:Number(t.charAt(0))},h,u,c,e,l,o,s;if(void 0===n[r.type])throw new Error("unknown packet type "+r.type);if(r.type===n.BINARY_EVENT||r.type===n.BINARY_ACK){for(h=i+1;"-"!==t.charAt(++i)&&i!=t.length;);if(u=t.substring(h,i),u!=Number(u)||"-"!==t.charAt(i))throw new Error("Illegal attachments");r.attachments=Number(u)}if("/"===t.charAt(i+1)){for(c=i+1;++i;){if(","===t.charAt(i))break;if(i===t.length)break}r.nsp=t.substring(c,i)}else r.nsp="/";if(e=t.charAt(i+1),""!==e&&Number(e)==e){for(l=i+1;++i;){if(o=t.charAt(i),null==o||Number(o)!=o){--i;break}if(i===t.length)break}r.id=Number(t.substring(l,i+1))}if(t.charAt(++i)){if(s=this.tryParse(t.substr(i)),!f.isPayloadValid(r.type,s))throw new Error("invalid payload");r.data=s}return r}},{key:"tryParse",value:function(n){try{return JSON.parse(n,this.reviver)}catch(n){return!1}}},{key:"destroy",value:function(){this.reconstructor&&this.reconstructor.finishedReconstruction()}}],[{key:"isPayloadValid",value:function(t,i){switch(t){case n.CONNECT:return"object"===e(i);case n.DISCONNECT:return void 0===i;case n.CONNECT_ERROR:return"string"==typeof i||"object"===e(i);case n.EVENT:case n.BINARY_EVENT:return Array.isArray(i)&&i.length>0;case n.ACK:case n.BINARY_ACK:return Array.isArray(i)}}}]),f}(t),ru=function(){function n(t){r(this,n);this.packet=t;this.buffers=[];this.reconPack=t}return u(n,[{key:"takeBinaryData",value:function(n){if(this.buffers.push(n),this.buffers.length===this.reconPack.attachments){var t=nu(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}},{key:"finishedReconstruction",value:function(){this.reconPack=null;this.buffers=[]}}]),n}(),uu=Object.freeze({__proto__:null,protocol:5,get PacketType(){return n},Encoder:tu,Decoder:iu});return gi=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),yt=function(t){function e(n,t,i){var u;return r(this,e),(u=s.call(this)).connected=!1,u.receiveBuffer=[],u.sendBuffer=[],u.ids=0,u.acks={},u.flags={},u.io=n,u.nsp=t,i&&i.auth&&(u.auth=i.auth),u.io._autoConnect&&u.open(),u}h(e,t);var s=c(e);return u(e,[{key:"disconnected",get:function(){return!this.connected}},{key:"subEvents",value:function(){if(!this.subs){var n=this.io;this.subs=[f(n,"open",this.onopen.bind(this)),f(n,"packet",this.onpacket.bind(this)),f(n,"error",this.onerror.bind(this)),f(n,"close",this.onclose.bind(this))]}}},{key:"active",get:function(){return!!this.subs}},{key:"connect",value:function(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}},{key:"open",value:function(){return this.connect()}},{key:"send",value:function(){for(var i=arguments.length,t=new Array(i),n=0;n<i;n++)t[n]=arguments[n];return t.unshift("message"),this.emit.apply(this,t),this}},{key:"emit",value:function(t){var r,e,o,s,h;if(gi.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');for(var f=arguments.length,i=new Array(f>1?f-1:0),u=1;u<f;u++)i[u-1]=arguments[u];return i.unshift(t),r={type:n.EVENT,data:i,options:{}},(r.options.compress=!1!==this.flags.compress,"function"==typeof i[i.length-1])&&(e=this.ids++,o=i.pop(),this._registerAckCallback(e,o),r.id=e),s=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable,h=this.flags.volatile&&(!s||!this.connected),h||(this.connected?(this.notifyOutgoingListeners(r),this.packet(r)):this.sendBuffer.push(r)),this.flags={},this}},{key:"_registerAckCallback",value:function(n,t){var i=this,r=this.flags.timeout,u;void 0!==r?(u=this.io.setTimeoutFn(function(){delete i.acks[n];for(var r=0;r<i.sendBuffer.length;r++)i.sendBuffer[r].id===n&&i.sendBuffer.splice(r,1);t.call(i,new Error("operation has timed out"))},r),this.acks[n]=function(){i.io.clearTimeoutFn(u);for(var r=arguments.length,f=new Array(r),n=0;n<r;n++)f[n]=arguments[n];t.apply(i,[null].concat(f))}):this.acks[n]=t}},{key:"packet",value:function(n){n.nsp=this.nsp;this.io._packet(n)}},{key:"onopen",value:function(){var t=this;"function"==typeof this.auth?this.auth(function(i){t.packet({type:n.CONNECT,data:i})}):this.packet({type:n.CONNECT,data:this.auth})}},{key:"onerror",value:function(n){this.connected||this.emitReserved("connect_error",n)}},{key:"onclose",value:function(n,t){this.connected=!1;delete this.id;this.emitReserved("disconnect",n,t)}},{key:"onpacket",value:function(t){var r,i;if(t.nsp===this.nsp)switch(t.type){case n.CONNECT:if(t.data&&t.data.sid){r=t.data.sid;this.onconnect(r)}else 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/)"));break;case n.EVENT:case n.BINARY_EVENT:this.onevent(t);break;case n.ACK:case n.BINARY_ACK:this.onack(t);break;case n.DISCONNECT:this.ondisconnect();break;case n.CONNECT_ERROR:this.destroy();i=new Error(t.data.message);i.data=t.data.data;this.emitReserved("connect_error",i)}}},{key:"onevent",value:function(n){var t=n.data||[];null!=n.id&&t.push(this.ack(n.id));this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}},{key:"emitEvent",value:function(n){if(this._anyListeners&&this._anyListeners.length){var r,t=kt(this._anyListeners.slice());try{for(t.s();!(r=t.n()).done;)r.value.apply(this,n)}catch(n){t.e(n)}finally{t.f()}}o(i(e.prototype),"emit",this).apply(this,n)}},{key:"ack",value:function(t){var r=this,i=!1;return function(){if(!i){i=!0;for(var f=arguments.length,e=new Array(f),u=0;u<f;u++)e[u]=arguments[u];r.packet({type:n.ACK,id:t,data:e})}}}},{key:"onack",value:function(n){var t=this.acks[n.id];"function"==typeof t&&(t.apply(this,n.data),delete this.acks[n.id])}},{key:"onconnect",value:function(n){this.id=n;this.connected=!0;this.emitBuffered();this.emitReserved("connect")}},{key:"emitBuffered",value:function(){var n=this;this.receiveBuffer.forEach(function(t){return n.emitEvent(t)});this.receiveBuffer=[];this.sendBuffer.forEach(function(t){n.notifyOutgoingListeners(t);n.packet(t)});this.sendBuffer=[]}},{key:"ondisconnect",value:function(){this.destroy();this.onclose("io server disconnect")}},{key:"destroy",value:function(){this.subs&&(this.subs.forEach(function(n){return n()}),this.subs=void 0);this.io._destroy(this)}},{key:"disconnect",value:function(){return this.connected&&this.packet({type:n.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}},{key:"close",value:function(){return this.disconnect()}},{key:"compress",value:function(n){return this.flags.compress=n,this}},{key:"volatile",get:function(){return this.flags.volatile=!0,this}},{key:"timeout",value:function(n){return this.flags.timeout=n,this}},{key:"onAny",value:function(n){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(n),this}},{key:"prependAny",value:function(n){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(n),this}},{key:"offAny",value:function(n){if(!this._anyListeners)return this;if(n){for(var i=this._anyListeners,t=0;t<i.length;t++)if(n===i[t])return i.splice(t,1),this}else this._anyListeners=[];return this}},{key:"listenersAny",value:function(){return this._anyListeners||[]}},{key:"onAnyOutgoing",value:function(n){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(n),this}},{key:"prependAnyOutgoing",value:function(n){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(n),this}},{key:"offAnyOutgoing",value:function(n){if(!this._anyOutgoingListeners)return this;if(n){for(var i=this._anyOutgoingListeners,t=0;t<i.length;t++)if(n===i[t])return i.splice(t,1),this}else this._anyOutgoingListeners=[];return this}},{key:"listenersAnyOutgoing",value:function(){return this._anyOutgoingListeners||[]}},{key:"notifyOutgoingListeners",value:function(n){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){var i,t=kt(this._anyOutgoingListeners.slice());try{for(t.s();!(i=t.n()).done;)i.value.apply(this,n.data)}catch(n){t.e(n)}finally{t.f()}}}}]),e}(t),y.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++),t,i;return this.jitter&&(t=Math.random(),i=Math.floor(t*this.jitter*n),n=0==(1&Math.floor(10*t))?n-i:n+i),0|Math.min(n,this.max)},y.prototype.reset=function(){this.attempts=0},y.prototype.setMin=function(n){this.ms=n},y.prototype.setMax=function(n){this.max=n},y.prototype.setJitter=function(n){this.jitter=n},ft=function(n){function t(n,u){var f,o,s;return r(this,t),(f=i.call(this)).nsps={},f.subs=[],n&&"object"===e(n)&&(u=n,n=void 0),(u=u||{}).path=u.path||"/socket.io",f.opts=u,nt(b(f),u),f.reconnection(!1!==u.reconnection),f.reconnectionAttempts(u.reconnectionAttempts||1/0),f.reconnectionDelay(u.reconnectionDelay||1e3),f.reconnectionDelayMax(u.reconnectionDelayMax||5e3),f.randomizationFactor(null!==(o=u.randomizationFactor)&&void 0!==o?o:.5),f.backoff=new y({min:f.reconnectionDelay(),max:f.reconnectionDelayMax(),jitter:f.randomizationFactor()}),f.timeout(null==u.timeout?2e4:u.timeout),f._readyState="closed",f.uri=n,s=u.parser||uu,f.encoder=new s.Encoder,f.decoder=new s.Decoder,f._autoConnect=!1!==u.autoConnect,f._autoConnect&&f.open(),f}h(t,n);var i=c(t);return u(t,[{key:"reconnection",value:function(n){return arguments.length?(this._reconnection=!!n,this):this._reconnection}},{key:"reconnectionAttempts",value:function(n){return void 0===n?this._reconnectionAttempts:(this._reconnectionAttempts=n,this)}},{key:"reconnectionDelay",value:function(n){var t;return void 0===n?this._reconnectionDelay:(this._reconnectionDelay=n,null===(t=this.backoff)||void 0===t||t.setMin(n),this)}},{key:"randomizationFactor",value:function(n){var t;return void 0===n?this._randomizationFactor:(this._randomizationFactor=n,null===(t=this.backoff)||void 0===t||t.setJitter(n),this)}},{key:"reconnectionDelayMax",value:function(n){var t;return void 0===n?this._reconnectionDelayMax:(this._reconnectionDelayMax=n,null===(t=this.backoff)||void 0===t||t.setMax(n),this)}},{key:"timeout",value:function(n){return arguments.length?(this._timeout=n,this):this._timeout}},{key:"maybeReconnectOnOpen",value:function(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}},{key:"open",value:function(n){var s=this,t,i,r,o,u,e;return~this._readyState.indexOf("open")?this:(this.engine=new rt(this.uri,this.opts),t=this.engine,i=this,this._readyState="opening",this.skipReconnect=!1,r=f(t,"open",function(){i.onopen();n&&n()}),o=f(t,"error",function(t){i.cleanup();i._readyState="closed";s.emitReserved("error",t);n?n(t):i.maybeReconnectOnOpen()}),!1!==this._timeout&&(u=this._timeout,0===u&&r(),e=this.setTimeoutFn(function(){r();t.close();t.emit("error",new Error("timeout"))},u),this.opts.autoUnref&&e.unref(),this.subs.push(function(){clearTimeout(e)})),this.subs.push(r),this.subs.push(o),this)}},{key:"connect",value:function(n){return this.open(n)}},{key:"onopen",value:function(){this.cleanup();this._readyState="open";this.emitReserved("open");var n=this.engine;this.subs.push(f(n,"ping",this.onping.bind(this)),f(n,"data",this.ondata.bind(this)),f(n,"error",this.onerror.bind(this)),f(n,"close",this.onclose.bind(this)),f(this.decoder,"decoded",this.ondecoded.bind(this)))}},{key:"onping",value:function(){this.emitReserved("ping")}},{key:"ondata",value:function(n){try{this.decoder.add(n)}catch(n){this.onclose("parse error",n)}}},{key:"ondecoded",value:function(n){var t=this;bi(function(){t.emitReserved("packet",n)},this.setTimeoutFn)}},{key:"onerror",value:function(n){this.emitReserved("error",n)}},{key:"socket",value:function(n,t){var i=this.nsps[n];return i||(i=new yt(this,n,t),this.nsps[n]=i),i}},{key:"_destroy",value:function(){for(var i,n=0,t=Object.keys(this.nsps);n<t.length;n++)if(i=t[n],this.nsps[i].active)return;this._close()}},{key:"_packet",value:function(n){for(var i=this.encoder.encode(n),t=0;t<i.length;t++)this.engine.write(i[t],n.options)}},{key:"cleanup",value:function(){this.subs.forEach(function(n){return n()});this.subs.length=0;this.decoder.destroy()}},{key:"_close",value:function(){this.skipReconnect=!0;this._reconnecting=!1;this.onclose("forced close");this.engine&&this.engine.close()}},{key:"disconnect",value:function(){return this._close()}},{key:"onclose",value:function(n,t){this.cleanup();this.backoff.reset();this._readyState="closed";this.emitReserved("close",n,t);this._reconnection&&!this.skipReconnect&&this.reconnect()}},{key:"reconnect",value:function(){var i=this,n,r,t;if(this._reconnecting||this.skipReconnect)return this;n=this;this.backoff.attempts>=this._reconnectionAttempts?(this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1):(r=this.backoff.duration(),this._reconnecting=!0,t=this.setTimeoutFn(function(){n.skipReconnect||(i.emitReserved("reconnect_attempt",n.backoff.attempts),n.skipReconnect||n.open(function(t){t?(n._reconnecting=!1,n.reconnect(),i.emitReserved("reconnect_error",t)):n.onreconnect()}))},r),this.opts.autoUnref&&t.unref(),this.subs.push(function(){clearTimeout(t)}))}},{key:"onreconnect",value:function(){var n=this.backoff.attempts;this._reconnecting=!1;this.backoff.reset();this.emitReserved("reconnect",n)}}]),t}(t),p={},a(et,{Manager:ft,Socket:yt,io:et,connect:et}),et})