UNPKG

343 kBJavaScriptView Raw
1!function(e){var t={}
2function n(i){if(t[i])return t[i].exports
3var a=t[i]={i,l:!1,exports:{}}
4return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e
5if(4&t&&"object"==typeof e&&e&&e.__esModule)return e
6var i=Object.create(null)
7if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(i,a,function(t){return e[t]}.bind(null,a))
8return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e}
9return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=55)}([function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("util")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("url")},function(e,t){e.exports=require("os")},function(e,t){e.exports=require("crypto")},function(e,t,n){"undefined"==typeof process||"renderer"===process.type?e.exports=n(105):e.exports=n(104)},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("http")},function(e,t){e.exports=require("zlib")},function(e,t,n){var i=n(87),a=i.Buffer
10function o(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return a(e,t,n)}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?e.exports=i:(o(i,t),t.Buffer=s),o(a,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number")
11return a(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number")
12var i=a(e)
13return void 0!==t?"string"==typeof n?i.fill(t,n):i.fill(t):i.fill(0),i},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number")
14return a(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number")
15return i.SlowBuffer(e)}},function(e,t,n){"use strict"
16var i=/development/i.test("production")||/\bredis\b/i.test(process.env.NODE_DEBUG)
17e.exports=function(e,t,n,a){this.command=e,this.args=t,this.buffer_args=!1,this.callback=n,this.call_on_write=a,i&&(this.error=new Error)}},function(e,t,n){"use strict"
18var i
19function a(e,t,n,i){t?t(n,i):n&&e.emit("error",n)}e.exports={reply_to_strings:function e(t){if(t instanceof Buffer)return t.toString()
20if(t instanceof Array){for(var n=new Array(t.length),i=0;i<t.length;i++)n[i]=e(t[i])
21return n}return t},reply_to_object:function(e){if(0===e.length||!(e instanceof Array))return null
22for(var t={},n=0;n<e.length;n+=2)t[e[n].toString("binary")]=e[n+1]
23return t},print:function(e,t){e?console.log(e.toString()):console.log("Reply: "+t)},err_code:/^([A-Z]+)\s+(.+)$/,monitor_regex:/^[0-9]{10,11}\.[0-9]+ \[[0-9]+ .+\]( ".+?")+$/,clone:function(e){return i=!1,e=function e(t){var n
24if(Array.isArray(t)){n=new Array(t.length)
25for(var a=0;a<t.length;a++)n[a]=e(t[a])
26return n}if("[object Object]"===Object.prototype.toString.call(t)){n={}
27for(var o,s=Object.keys(t);o=s.pop();)if("tls"!==o){var r=o.replace(/[A-Z][^A-Z]/g,"_$&").toLowerCase()
28r!==o.toLowerCase()&&(i=!0),n[r]=e(t[o])}else n[o]=t[o]
29return n}return t}(e)||{},i&&(e.camel_case=!0),e},callback_or_emit:a,reply_in_order:function(e,t,n,i,o){var s
30if(s=o?o.peekBack():e.offline_queue.peekBack()||e.command_queue.peekBack()){var r=s.callback
31s.callback=r?function(o,s){r(o,s),a(e,t,n,i)}:function(o,s){o&&e.emit("error",o),a(e,t,n,i)}}else process.nextTick(function(){a(e,t,n,i)})}}},function(e,t,n){"use strict"
32var i=n(50),a=n(72),o=n(1),s=n(12),r=n(11),c=n(32),p=n(71),l=n(7),u=n(30),d=n(28),f=n(21),h=n(65),m={subscribe:!0,unsubscribe:!0,psubscribe:!0,punsubscribe:!0}
33function v(){}function g(e,t,n){return(!1===n||this.message_buffers)&&(e=s.reply_to_strings(e)),"hgetall"===t&&(e=s.reply_to_object(e)),e}function y(e,t){e=s.clone(e),l.call(this)
34var n={}
35for(var a in e.tls)n[a]=e.tls[a],"port"!==a&&"host"!==a&&"path"!==a&&"family"!==a||(e[a]=e.tls[a])
36for(var o in t?(e.stream=t,this.address='"Private stream"'):e.path?(n.path=e.path,this.address=e.path):(n.port=+e.port||6379,n.host=e.host||"127.0.0.1",n.family=!e.family&&i.isIP(n.host)||("IPv6"===e.family?6:4),this.address=n.host+":"+n.port),"function"==typeof e.retry_strategy&&("max_attempts"in e&&(this.warn("WARNING: You activated the retry_strategy and max_attempts at the same time. This is not possible and max_attempts will be ignored."),delete e.max_attempts),"retry_max_delay"in e&&(this.warn("WARNING: You activated the retry_strategy and retry_max_delay at the same time. This is not possible and retry_max_delay will be ignored."),delete e.retry_max_delay)),this.connection_options=n,this.connection_id=y.connection_id++,this.connected=!1,this.ready=!1,void 0===e.socket_nodelay?e.socket_nodelay=!0:e.socket_nodelay||this.warn("socket_nodelay is deprecated and will be removed in v.3.0.0.\nSetting socket_nodelay to false likely results in a reduced throughput. Please use .batch for pipelining instead.\nIf you are sure you rely on the NAGLE-algorithm you can activate it by calling client.stream.setNoDelay(false) instead."),void 0===e.socket_keepalive&&(e.socket_keepalive=!0),e.rename_commands)e.rename_commands[o.toLowerCase()]=e.rename_commands[o]
37e.return_buffers=!!e.return_buffers,e.detect_buffers=!!e.detect_buffers,e.return_buffers&&e.detect_buffers&&(this.warn("WARNING: You activated return_buffers and detect_buffers at the same time. The return value is always going to be a buffer."),e.detect_buffers=!1),e.detect_buffers&&(this.handle_reply=g),this.should_buffer=!1,this.max_attempts=0|e.max_attempts,"max_attempts"in e&&this.warn("max_attempts is deprecated and will be removed in v.3.0.0.\nTo reduce the number of options and to improve the reconnection handling please use the new `retry_strategy` option instead.\nThis replaces the max_attempts and retry_max_delay option."),this.command_queue=new c,this.offline_queue=new c,this.pipeline_queue=new c,this.connect_timeout=+e.connect_timeout||36e5,this.enable_offline_queue=!1!==e.enable_offline_queue,this.retry_max_delay=+e.retry_max_delay||null,"retry_max_delay"in e&&this.warn("retry_max_delay is deprecated and will be removed in v.3.0.0.\nTo reduce the amount of options and the improve the reconnection handling please use the new `retry_strategy` option instead.\nThis replaces the max_attempts and retry_max_delay option."),this.initialize_retry_vars(),this.pub_sub_mode=0,this.subscription_set={},this.monitoring=!1,this.message_buffers=!1,this.closing=!1,this.server_info={},this.auth_pass=e.auth_pass||e.password,this.selected_db=e.db,this.old_state=null,this.fire_strings=!0,this.pipeline=!1,this.sub_commands_left=0,this.times_connected=0,this.buffers=e.return_buffers||e.detect_buffers,this.options=e,this.reply="ON",this.create_stream(),this.on("newListener",function(e){if("idle"===e)this.warn("The idle event listener is deprecated and will likely be removed in v.3.0.0.\nIf you rely on this feature please open a new ticket in node_redis with your use case")
38else if("drain"===e)this.warn("The drain event listener is deprecated and will be removed in v.3.0.0.\nIf you want to keep on listening to this event please listen to the stream drain event directly.")
39else if(!("message_buffer"!==e&&"pmessage_buffer"!==e&&"messageBuffer"!==e&&"pmessageBuffer"!==e||this.buffers||this.message_buffers)){if("javascript"!==this.reply_parser.name)return this.warn('You attached the "'+e+'" listener without the returnBuffers option set to true.\nPlease use the JavaScript parser or set the returnBuffers option to true to return buffers.')
40this.reply_parser.optionReturnBuffers=!0,this.message_buffers=!0,this.handle_reply=g}})}"function"!=typeof l&&(l=l.EventEmitter),t.debug_mode=/\bredis\b/i.test(process.env.NODE_DEBUG),o.inherits(y,l),y.connection_id=0,y.prototype.create_stream=function(){var e=this
41if(this.reply_parser=function(e){return new u({returnReply:function(t){e.return_reply(t)},returnError:function(t){e.return_error(t)},returnFatalError:function(t){t.message+=". Please report this.",e.ready=!1,e.flush_and_error({message:"Fatal error encountert. Command aborted.",code:"NR_FATAL"},{error:t,queues:["command_queue"]}),e.emit("error",t),e.create_stream()},returnBuffers:e.buffers||e.message_buffers,name:e.options.parser||"javascript",stringNumbers:e.options.string_numbers||!1})}(this),this.options.stream){if(this.stream)return
42this.stream=this.options.stream}else this.stream&&(this.stream.removeAllListeners(),this.stream.destroy()),this.options.tls?this.stream=a.connect(this.connection_options):this.stream=i.createConnection(this.connection_options)
43this.options.connect_timeout&&this.stream.setTimeout(this.connect_timeout,function(){e.retry_totaltime=e.connect_timeout,e.connection_gone("timeout")})
44var t=this.options.tls?"secureConnect":"connect"
45this.stream.once(t,function(){this.removeAllListeners("timeout"),e.times_connected++,e.on_connect()}),this.stream.on("data",function(t){f("Net read "+e.address+" id "+e.connection_id),e.reply_parser.execute(t),e.emit_idle()}),this.stream.on("error",function(t){e.on_error(t)}),this.stream.on("clientError",function(t){f("clientError occured"),e.on_error(t)}),this.stream.once("close",function(t){e.connection_gone("close")}),this.stream.once("end",function(){e.connection_gone("end")}),this.stream.on("drain",function(){e.drain()}),this.options.socket_nodelay&&this.stream.setNoDelay(),void 0!==this.auth_pass&&(this.ready=!0,this.auth(this.auth_pass,function(t){t&&"UNCERTAIN_STATE"!==t.code&&e.emit("error",t)}),this.ready=!1)},y.prototype.handle_reply=function(e,t){return"hgetall"===t&&(e=s.reply_to_object(e)),e},y.prototype.cork=v,y.prototype.uncork=v,y.prototype.initialize_retry_vars=function(){this.retry_timer=null,this.retry_totaltime=0,this.retry_delay=200,this.retry_backoff=1.7,this.attempts=1},y.prototype.warn=function(e){var t=this
46process.nextTick(function(){0!==t.listeners("warning").length?t.emit("warning",e):console.warn("node_redis:",e)})},y.prototype.flush_and_error=function(e,n){for(var i,a=[],o=(n=n||{}).queues||["command_queue","offline_queue"],s=0;s<o.length;s++){"command_queue"===o[s]?e.message+=" It might have been processed.":e.message=e.message.replace(" It might have been processed.","")
47for(var r=this[o[s]].shift();r;r=this[o[s]].shift()){var c=new p.AbortError(e)
48r.error&&(c.stack=c.stack+r.error.stack.replace(/^Error.*?\n/,"\n")),c.command=r.command.toUpperCase(),r.args&&r.args.length&&(c.args=r.args),n.error&&(c.origin=n.error),"function"==typeof r.callback?r.callback(c):a.push(c)}}t.debug_mode&&a.length&&(1===a.length?i=a[0]:(e.message=e.message.replace("It","They").replace(/command/i,"$&s"),(i=new p.AggregateError(e)).errors=a),this.emit("error",i))},y.prototype.on_error=function(e){this.closing||(e.message="Redis connection to "+this.address+" failed - "+e.message,f(e.message),this.connected=!1,this.ready=!1,this.options.retry_strategy||this.emit("error",e),this.connection_gone("error",e))},y.prototype.on_connect=function(){f("Stream connected "+this.address+" id "+this.connection_id),this.connected=!0,this.ready=!1,this.emitted_end=!1,this.stream.setKeepAlive(this.options.socket_keepalive),this.stream.setTimeout(0),this.emit("connect"),this.initialize_retry_vars(),this.options.no_ready_check?this.on_ready():this.ready_check()},y.prototype.on_ready=function(){var e=this
49f("on_ready called "+this.address+" id "+this.connection_id),this.ready=!0,this.cork=function(){e.pipeline=!0,e.stream.cork&&e.stream.cork()},this.uncork=function(){e.fire_strings?e.write_strings():e.write_buffers(),e.pipeline=!1,e.fire_strings=!0,e.stream.uncork&&e.stream.uncork()},void 0!==this.selected_db&&this.internal_send_command(new r("select",[this.selected_db])),this.monitoring&&this.internal_send_command(new r("monitor",[]))
50var t=Object.keys(this.subscription_set).length
51if(this.options.disable_resubscribing||!t)this.send_offline_queue(),this.emit("ready")
52else{var n=function(){0==--t&&e.emit("ready")}
53for(var i in f("Sending pub/sub on_ready commands"),this.subscription_set){var a=i.slice(0,i.indexOf("_")),o=this.subscription_set[i]
54this[a]([o],n)}this.send_offline_queue()}},y.prototype.on_info_cmd=function(e,t){if(e)return"ERR unknown command 'info'"===e.message?void this.on_ready():(e.message="Ready check failed: "+e.message,void this.emit("error",e))
55if(!t)return f("The info command returned without any data."),void this.on_ready()
56if(!this.server_info.loading||"0"===this.server_info.loading){if(!this.server_info.master_link_status||"up"===this.server_info.master_link_status)return f("Redis server ready."),void this.on_ready()
57this.server_info.loading_eta_seconds=.05}var n=1e3*+this.server_info.loading_eta_seconds
58n>1e3&&(n=1e3),f("Redis server still loading, trying again in "+n),setTimeout(function(e){e.ready_check()},n,this)},y.prototype.ready_check=function(){var e=this
59f("Checking server ready state..."),this.ready=!0,this.info(function(t,n){e.on_info_cmd(t,n)}),this.ready=!1},y.prototype.send_offline_queue=function(){for(var e=this.offline_queue.shift();e;e=this.offline_queue.shift())f("Sending offline command: "+e.command),this.internal_send_command(e)
60this.drain()}
61var x=function(e,t){f("Retrying connection...")
62var n={delay:e.retry_delay,attempt:e.attempts,error:t}
63e.options.camel_case?(n.totalRetryTime=e.retry_totaltime,n.timesConnected=e.times_connected):(n.total_retry_time=e.retry_totaltime,n.times_connected=e.times_connected),e.emit("reconnecting",n),e.retry_totaltime+=e.retry_delay,e.attempts+=1,e.retry_delay=Math.round(e.retry_delay*e.retry_backoff),e.create_stream(),e.retry_timer=null}
64function b(e,t){var n=e.command_queue.shift()
65"function"==typeof n.callback?("exec"!==n.command&&(t=e.handle_reply(t,n.command,n.buffer_args)),n.callback(null,t)):f("No callback for reply")}y.prototype.connection_gone=function(e,t){if(!this.retry_timer){if(t=t||null,f("Redis connection is gone from "+e+" event."),this.connected=!1,this.ready=!1,this.cork=v,this.uncork=v,this.pipeline=!1,this.pub_sub_mode=0,this.emitted_end||(this.emit("end"),this.emitted_end=!0),this.closing)return f("Connection ended by quit / end command, not retrying."),void this.flush_and_error({message:"Stream connection ended and command aborted.",code:"NR_CLOSED"},{error:t})
66if("function"==typeof this.options.retry_strategy){var n={attempt:this.attempts,error:t}
67if(this.options.camel_case?(n.totalRetryTime=this.retry_totaltime,n.timesConnected=this.times_connected):(n.total_retry_time=this.retry_totaltime,n.times_connected=this.times_connected),this.retry_delay=this.options.retry_strategy(n),"number"!=typeof this.retry_delay)return this.retry_delay instanceof Error&&(t=this.retry_delay),this.flush_and_error({message:"Stream connection ended and command aborted.",code:"NR_CLOSED"},{error:t}),void this.end(!1)}if(0!==this.max_attempts&&this.attempts>=this.max_attempts||this.retry_totaltime>=this.connect_timeout){var i="Redis connection in broken state: "
68this.retry_totaltime>=this.connect_timeout?i+="connection timeout exceeded.":i+="maximum connection attempts exceeded.",this.flush_and_error({message:i,code:"CONNECTION_BROKEN"},{error:t})
69var a=new Error(i)
70return a.code="CONNECTION_BROKEN",t&&(a.origin=t),this.emit("error",a),void this.end(!1)}this.options.retry_unfulfilled_commands?(this.offline_queue.unshift.apply(this.offline_queue,this.command_queue.toArray()),this.command_queue.clear()):0!==this.command_queue.length&&this.flush_and_error({message:"Redis connection lost and command aborted.",code:"UNCERTAIN_STATE"},{error:t,queues:["command_queue"]}),null!==this.retry_max_delay&&this.retry_delay>this.retry_max_delay?this.retry_delay=this.retry_max_delay:this.retry_totaltime+this.retry_delay>this.connect_timeout&&(this.retry_delay=this.connect_timeout-this.retry_totaltime),f("Retry connection in "+this.retry_delay+" ms"),this.retry_timer=setTimeout(x,this.retry_delay,this,t)}},y.prototype.return_error=function(e){var t=this.command_queue.shift()
71t.error&&(e.stack=t.error.stack.replace(/^Error.*?\n/,"ReplyError: "+e.message+"\n")),e.command=t.command.toUpperCase(),t.args&&t.args.length&&(e.args=t.args),this.pub_sub_mode>1&&this.pub_sub_mode--
72var n=e.message.match(s.err_code)
73n&&(e.code=n[1]),s.callback_or_emit(this,t.callback,e)},y.prototype.drain=function(){this.emit("drain"),this.should_buffer=!1},y.prototype.emit_idle=function(){0===this.command_queue.length&&0===this.pub_sub_mode&&this.emit("idle")},y.prototype.return_reply=function(e){var t
74if(this.monitoring&&"string"==typeof(t=this.buffers&&Buffer.isBuffer(e)?e.toString():e)&&s.monitor_regex.test(t)){var n=t.slice(0,t.indexOf(" ")),i=t.slice(t.indexOf('"')+1,-1).split('" "').map(function(e){return e.replace(/\\"/g,'"')})
75this.emit("monitor",n,i,t)}else 0===this.pub_sub_mode?b(this,e):1!==this.pub_sub_mode?(this.pub_sub_mode--,b(this,e)):!(e instanceof Array)||e.length<=2?b(this,e):function(e,t){var n=t[0].toString()
76"message"===n?!e.options.return_buffers||e.message_buffers?(e.emit("message",t[1].toString(),t[2].toString()),e.emit("message_buffer",t[1],t[2]),e.emit("messageBuffer",t[1],t[2])):e.emit("message",t[1],t[2]):"pmessage"===n?!e.options.return_buffers||e.message_buffers?(e.emit("pmessage",t[1].toString(),t[2].toString(),t[3].toString()),e.emit("pmessage_buffer",t[1],t[2],t[3]),e.emit("pmessageBuffer",t[1],t[2],t[3])):e.emit("pmessage",t[1],t[2],t[3]):function(e,t,n){var i=e.command_queue.get(0),a=e.options.return_buffers||e.options.detect_buffers&&i.buffer_args||null===t[1]?t[1]:t[1].toString(),o=+t[2]
77if(f(n,a),null!==a&&(e.emit(n,a,o),"subscribe"===n||"psubscribe"===n?e.subscription_set[n+"_"+a]=a:(n="unsubscribe"===n?"subscribe":"psubscribe",delete e.subscription_set[n+"_"+a])),1===i.args.length||1===e.sub_commands_left||0===i.args.length&&(0===o||null===a)){if(0===o){var s,r=1
78for(e.pub_sub_mode=0;s=e.command_queue.get(r);){if(m[s.command]){e.pub_sub_mode=r
79break}r++}}e.command_queue.shift(),"function"==typeof i.callback&&i.callback(null,a),e.sub_commands_left=0}else 0!==e.sub_commands_left?e.sub_commands_left--:e.sub_commands_left=i.args.length?i.args.length-1:o}(e,t,n)}(this,e)},y.prototype.internal_send_command=function(e){var t,n,i=0,a="",o=e.args,r=e.command,c=o.length,l=!1,u=new Array(c)
80if(process.domain&&e.callback&&(e.callback=process.domain.bind(e.callback)),!1===this.ready||!1===this.stream.writable)return function(e,t){var n,i,a=t.command
81e.closing||!e.enable_offline_queue?(a=a.toUpperCase(),i=e.closing?"The connection is already closed.":e.stream.writable?"The connection is not yet established and the offline queue is deactivated.":"Stream not writeable.",n=new p.AbortError({message:a+" can't be processed. "+i,code:"NR_CLOSED",command:a}),t.args.length&&(n.args=t.args),s.reply_in_order(e,t.callback,n)):(f("Queueing "+a+" for next server connection."),e.offline_queue.push(t)),e.should_buffer=!0}(this,e),!1
82for(i=0;i<c;i+=1)"string"==typeof o[i]?o[i].length>3e4?(l=!0,u[i]=new Buffer(o[i],"utf8")):u[i]=o[i]:"object"==typeof o[i]?o[i]instanceof Date?u[i]=o[i].toString():null===o[i]?(this.warn("Deprecated: The "+r.toUpperCase()+' command contains a "null" argument.\nThis is converted to a "null" string now and will return an error from v.3.0 on.\nPlease handle this in your code to make sure everything works as you intended it to.'),u[i]="null"):Buffer.isBuffer(o[i])?(u[i]=o[i],e.buffer_args=!0,l=!0):(this.warn("Deprecated: The "+r.toUpperCase()+" command contains a argument of type "+o[i].constructor.name+'.\nThis is converted to "'+o[i].toString()+'" by using .toString() now and will return an error from v.3.0 on.\nPlease handle this in your code to make sure everything works as you intended it to.'),u[i]=o[i].toString()):void 0===o[i]?(this.warn("Deprecated: The "+r.toUpperCase()+' command contains a "undefined" argument.\nThis is converted to a "undefined" string now and will return an error from v.3.0 on.\nPlease handle this in your code to make sure everything works as you intended it to.'),u[i]="undefined"):u[i]=""+o[i]
83if(this.options.prefix)for(i=(n=d.getKeyIndexes(r,u)).pop();void 0!==i;i=n.pop())u[i]=this.options.prefix+u[i]
84if(this.options.rename_commands&&this.options.rename_commands[r]&&(r=this.options.rename_commands[r]),a="*"+(c+1)+"\r\n$"+r.length+"\r\n"+r+"\r\n",!1===l){for(i=0;i<c;i+=1)t=u[i],a+="$"+Buffer.byteLength(t)+"\r\n"+t+"\r\n"
85f("Send "+this.address+" id "+this.connection_id+": "+a),this.write(a)}else for(f("Send command ("+a+") has Buffer arguments"),this.fire_strings=!1,this.write(a),i=0;i<c;i+=1)"string"==typeof(t=u[i])?this.write("$"+Buffer.byteLength(t)+"\r\n"+t+"\r\n"):(this.write("$"+t.length+"\r\n"),this.write(t),this.write("\r\n")),f("send_command: buffer send "+t.length+" bytes")
86return e.call_on_write&&e.call_on_write(),"ON"===this.reply?this.command_queue.push(e):(e.callback&&s.reply_in_order(this,e.callback,null,void 0,this.command_queue),"SKIP"===this.reply?this.reply="SKIP_ONE_MORE":"SKIP_ONE_MORE"===this.reply&&(this.reply="ON")),!this.should_buffer},y.prototype.write_strings=function(){for(var e="",t=this.pipeline_queue.shift();t;t=this.pipeline_queue.shift())e.length+t.length>4194304&&(this.should_buffer=!this.stream.write(e),e=""),e+=t
87""!==e&&(this.should_buffer=!this.stream.write(e))},y.prototype.write_buffers=function(){for(var e=this.pipeline_queue.shift();e;e=this.pipeline_queue.shift())this.should_buffer=!this.stream.write(e)},y.prototype.write=function(e){!1!==this.pipeline?this.pipeline_queue.push(e):this.should_buffer=!this.stream.write(e)},Object.defineProperty(t,"debugMode",{get:function(){return this.debug_mode},set:function(e){this.debug_mode=e}}),Object.defineProperty(y.prototype,"command_queue_length",{get:function(){return this.command_queue.length}}),Object.defineProperty(y.prototype,"offline_queue_length",{get:function(){return this.offline_queue.length}}),Object.defineProperty(y.prototype,"retryDelay",{get:function(){return this.retry_delay}}),Object.defineProperty(y.prototype,"retryBackoff",{get:function(){return this.retry_backoff}}),Object.defineProperty(y.prototype,"commandQueueLength",{get:function(){return this.command_queue.length}}),Object.defineProperty(y.prototype,"offlineQueueLength",{get:function(){return this.offline_queue.length}}),Object.defineProperty(y.prototype,"shouldBuffer",{get:function(){return this.should_buffer}}),Object.defineProperty(y.prototype,"connectionId",{get:function(){return this.connection_id}}),Object.defineProperty(y.prototype,"serverInfo",{get:function(){return this.server_info}}),t.createClient=function(){return new y(h.apply(null,arguments))},t.RedisClient=y,t.print=s.print,t.Multi=n(20),t.AbortError=p.AbortError,t.RedisError=u.RedisError,t.ParserError=u.ParserError,t.ReplyError=u.ReplyError,t.AggregateError=p.AggregateError,n(64),n(63),t.addCommand=t.add_command=n(62)},function(e,t){e.exports=require("https")},function(e,t,n){"use strict"
88function i(e,t){Object.defineProperty(this,"message",{value:e||"",configurable:!0,writable:!0}),(t||void 0===t)&&Error.captureStackTrace(this,i)}n(1).inherits(i,Error),Object.defineProperty(i.prototype,"name",{value:"RedisError",configurable:!0,writable:!0}),e.exports=i},function(e,t,n){var i=n(6)("socket.io-parser"),a=n(78),o=n(77),s=n(36),r=n(35)
89function c(){}t.protocol=4,t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],t.CONNECT=0,t.DISCONNECT=1,t.EVENT=2,t.ACK=3,t.ERROR=4,t.BINARY_EVENT=5,t.BINARY_ACK=6,t.Encoder=c,t.Decoder=u
90var p=t.ERROR+'"encode error"'
91function l(e){var n=""+e.type
92if(t.BINARY_EVENT!==e.type&&t.BINARY_ACK!==e.type||(n+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(n+=e.nsp+","),null!=e.id&&(n+=e.id),null!=e.data){var a=function(e){try{return JSON.stringify(e)}catch(e){return!1}}(e.data)
93if(!1===a)return p
94n+=a}return i("encoded %j as %s",e,n),n}function u(){this.reconstructor=null}function d(e){this.reconPack=e,this.buffers=[]}function f(e){return{type:t.ERROR,data:"parser error: "+e}}c.prototype.encode=function(e,n){i("encoding packet %j",e),t.BINARY_EVENT===e.type||t.BINARY_ACK===e.type?function(e,t){o.removeBlobs(e,function(e){var n=o.deconstructPacket(e),i=l(n.packet),a=n.buffers
95a.unshift(i),t(a)})}(e,n):n([l(e)])},a(u.prototype),u.prototype.add=function(e){var n
96if("string"==typeof e)n=function(e){var n=0,a={type:Number(e.charAt(0))}
97if(null==t.types[a.type])return f("unknown packet type "+a.type)
98if(t.BINARY_EVENT===a.type||t.BINARY_ACK===a.type){for(var o="";"-"!==e.charAt(++n)&&(o+=e.charAt(n),n!=e.length););if(o!=Number(o)||"-"!==e.charAt(n))throw new Error("Illegal attachments")
99a.attachments=Number(o)}if("/"===e.charAt(n+1))for(a.nsp="";++n;){if(","===(c=e.charAt(n)))break
100if(a.nsp+=c,n===e.length)break}else a.nsp="/"
101var r=e.charAt(n+1)
102if(""!==r&&Number(r)==r){for(a.id="";++n;){var c
103if(null==(c=e.charAt(n))||Number(c)!=c){--n
104break}if(a.id+=e.charAt(n),n===e.length)break}a.id=Number(a.id)}if(e.charAt(++n)){var p=function(e){try{return JSON.parse(e)}catch(e){return!1}}(e.substr(n))
105if(!(!1!==p&&(a.type===t.ERROR||s(p))))return f("invalid payload")
106a.data=p}return i("decoded %s as %j",e,a),a}(e),t.BINARY_EVENT===n.type||t.BINARY_ACK===n.type?(this.reconstructor=new d(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n)
107else{if(!r(e)&&!e.base64)throw new Error("Unknown type: "+e)
108if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,this.emit("decoded",n))}},u.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},d.prototype.takeBinaryData=function(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){var t=o.reconstructPacket(this.reconPack,this.buffers)
109return this.finishedReconstruction(),t}return null},d.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(e,t,n){"use strict"
110const i=n(10).Buffer
111t.BINARY_TYPES=["nodebuffer","arraybuffer","fragments"],t.GUID="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",t.EMPTY_BUFFER=i.alloc(0),t.NOOP=(()=>{})},function(e,t,n){"use strict"
112const i=n(10),a=n(86),o=n(9),s=n(23),r=i.Buffer,c=r.from([0,0,255,255]),p=r.from([0]),l=Symbol("write-in-progress"),u=Symbol("pending-close"),d=Symbol("total-length"),f=Symbol("callback"),h=Symbol("buffers"),m=Symbol("error"),v=Symbol("owner")
113let g
114function y(e){this[h].push(e),this[d]+=e.length}function x(e){this[d]+=e.length,this[v]._maxPayload<1||this[d]<=this[v]._maxPayload?this[h].push(e):(this[m]=new Error("max payload size exceeded"),this[m].closeCode=1009,this.removeListener("data",x),this.reset())}function b(e){this[v]._inflate=null,this[f](e)}e.exports=class{constructor(e,t,n){if(this._maxPayload=0|n,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!g){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10
115g=new a({concurrency:e})}}static get extensionName(){return"permessage-deflate"}offer(){const e={}
116return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){var t
117return e=this.normalizeParams(e),t=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params=t,t}cleanup(){this._inflate&&(this._inflate[l]?this._inflate[u]=!0:(this._inflate.close(),this._inflate=null)),this._deflate&&(this._deflate[l]?this._deflate[u]=!0:(this._deflate.close(),this._deflate=null))}acceptAsServer(e){const t={}
118if(!e.some(e=>{if(!(!1===this._options.serverNoContextTakeover&&e.server_no_context_takeover||!1===this._options.serverMaxWindowBits&&e.server_max_window_bits||"number"==typeof this._options.serverMaxWindowBits&&"number"==typeof e.server_max_window_bits&&this._options.serverMaxWindowBits>e.server_max_window_bits||"number"==typeof this._options.clientMaxWindowBits&&!e.client_max_window_bits))return(this._options.serverNoContextTakeover||e.server_no_context_takeover)&&(t.server_no_context_takeover=!0),(this._options.clientNoContextTakeover||!1!==this._options.clientNoContextTakeover&&e.client_no_context_takeover)&&(t.client_no_context_takeover=!0),"number"==typeof this._options.serverMaxWindowBits?t.server_max_window_bits=this._options.serverMaxWindowBits:"number"==typeof e.server_max_window_bits&&(t.server_max_window_bits=e.server_max_window_bits),"number"==typeof this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:!1!==this._options.clientMaxWindowBits&&"number"==typeof e.client_max_window_bits&&(t.client_max_window_bits=e.client_max_window_bits),!0}))throw new Error("Doesn't support the offered configuration")
119return t}acceptAsClient(e){const t=e[0]
120if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error('Invalid value for "client_no_context_takeover"')
121if("number"==typeof this._options.clientMaxWindowBits&&(!t.client_max_window_bits||t.client_max_window_bits>this._options.clientMaxWindowBits)||!1===this._options.clientMaxWindowBits&&t.client_max_window_bits)throw new Error('Invalid value for "client_max_window_bits"')
122return t}normalizeParams(e){return e.map(e=>(Object.keys(e).forEach(t=>{var n=e[t]
123if(n.length>1)throw new Error(`Multiple extension parameters for ${t}`)
124switch(n=n[0],t){case"server_no_context_takeover":case"client_no_context_takeover":if(!0!==n)throw new Error(`invalid extension parameter value for ${t} (${n})`)
125e[t]=!0
126break
127case"server_max_window_bits":case"client_max_window_bits":if("string"==typeof n&&(n=parseInt(n,10),Number.isNaN(n)||n<o.Z_MIN_WINDOWBITS||n>o.Z_MAX_WINDOWBITS))throw new Error(`invalid extension parameter value for ${t} (${n})`)
128if(!this._isServer&&!0===n)throw new Error(`Missing extension parameter value for ${t}`)
129e[t]=n
130break
131default:throw new Error(`Not defined extension parameter (${t})`)}}),e))}decompress(e,t,n){g.push(i=>{this._decompress(e,t,(e,t)=>{i(),n(e,t)})})}compress(e,t,n){g.push(i=>{this._compress(e,t,(e,t)=>{i(),n(e,t)})})}_decompress(e,t,n){const i=this._isServer?"client":"server"
132if(!this._inflate){const e=`${i}_max_window_bits`,t="number"!=typeof this.params[e]?o.Z_DEFAULT_WINDOWBITS:this.params[e]
133this._inflate=o.createInflateRaw({windowBits:t}),this._inflate[d]=0,this._inflate[h]=[],this._inflate[v]=this,this._inflate.on("error",b),this._inflate.on("data",x)}this._inflate[f]=n,this._inflate[l]=!0,this._inflate.write(e),t&&this._inflate.write(c),this._inflate.flush(()=>{const e=this._inflate[m]
134if(e)return this._inflate.close(),this._inflate=null,void n(e)
135const a=s.concat(this._inflate[h],this._inflate[d])
136t&&this.params[`${i}_no_context_takeover`]||this._inflate[u]?(this._inflate.close(),this._inflate=null):(this._inflate[l]=!1,this._inflate[d]=0,this._inflate[h]=[]),n(null,a)})}_compress(e,t,n){if(!e||0===e.length)return void process.nextTick(n,null,p)
137const i=this._isServer?"server":"client"
138if(!this._deflate){const e=`${i}_max_window_bits`,t="number"!=typeof this.params[e]?o.Z_DEFAULT_WINDOWBITS:this.params[e]
139this._deflate=o.createDeflateRaw({memLevel:this._options.memLevel,level:this._options.level,flush:o.Z_SYNC_FLUSH,windowBits:t}),this._deflate[d]=0,this._deflate[h]=[],this._deflate.on("data",y)}this._deflate[l]=!0,this._deflate.write(e),this._deflate.flush(o.Z_SYNC_FLUSH,()=>{var e=s.concat(this._deflate[h],this._deflate[d])
140t&&(e=e.slice(0,e.length-4)),t&&this.params[`${i}_no_context_takeover`]||this._deflate[u]?(this._deflate.close(),this._deflate=null):(this._deflate[l]=!1,this._deflate[d]=0,this._deflate[h]=[]),n(null,e)})}}},function(e,t,n){var i=n(110),a=n(24),o=n(107),s=n(106)
141t.protocol=3
142var r=t.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},c=s(r),p={type:"error",data:"parser error"}
143function l(e,n,i){if(!n)return t.encodeBase64Packet(e,i)
144var a=e.data,o=new Buffer(1)
145return o[0]=r[e.type],i(Buffer.concat([o,a]))}function u(e,t,n){for(var i=new Array(e.length),a=o(e.length,n),s=0;s<e.length;s++)t(e[s],function(e,t){i[s]=t,a(e,i)})}function d(e){for(var t="",n=0,i=e.length;n<i;n++)t+=String.fromCharCode(e[n])
146return t}function f(e){for(var t=new Uint8Array(e.buffer||e),n=e.byteLength||e.length,i=e.byteOffset||0,a=new Buffer(n),o=0;o<n;o++)a[o]=t[i+o]
147return a}function h(e,n){t.encodePacket(e,!0,!0,function(e){var t,i=""+e.length
148if("string"==typeof e){(t=new Buffer(i.length+2))[0]=0
149for(var a=0;a<i.length;a++)t[a+1]=parseInt(i[a],10)
150return t[t.length-1]=255,n(null,Buffer.concat([t,function(e){for(var t=new Buffer(e.length),n=0,i=e.length;n<i;n++)t.writeUInt8(e.charCodeAt(n),n)
151return t}(e)]))}for((t=new Buffer(i.length+2))[0]=1,a=0;a<i.length;a++)t[a+1]=parseInt(i[a],10)
152t[t.length-1]=255,n(null,Buffer.concat([t,e]))})}t.encodePacket=function(e,t,n,a){if("function"==typeof t&&(a=t,t=null),"function"==typeof n&&(a=n,n=null),Buffer.isBuffer(e.data))return l(e,t,a)
153if(e.data&&(e.data.buffer||e.data)instanceof ArrayBuffer)return e.data=f(e.data),l(e,t,a)
154var o=r[e.type]
155return void 0!==e.data&&(o+=n?i.encode(String(e.data),{strict:!1}):String(e.data)),a(""+o)},t.encodeBase64Packet=function(e,t){Buffer.isBuffer(e.data)||(e.data=f(e.data))
156var n="b"+r[e.type]
157return t(n+=e.data.toString("base64"))},t.decodePacket=function(e,n,a){if(void 0===e)return p
158var o
159if("string"==typeof e)return"b"===(o=e.charAt(0))?t.decodeBase64Packet(e.substr(1),n):a&&!1===(e=function(e){try{e=i.decode(e,{strict:!1})}catch(e){return!1}return e}(e))?p:Number(o)==o&&c[o]?e.length>1?{type:c[o],data:e.substring(1)}:{type:c[o]}:p
160if("arraybuffer"===n){var s=new Uint8Array(e)
161return o=s[0],{type:c[o],data:s.buffer.slice(1)}}return e instanceof ArrayBuffer&&(e=f(e)),o=e[0],{type:c[o],data:e.slice(1)}},t.decodeBase64Packet=function(e,t){var n=c[e.charAt(0)],i=new Buffer(e.substr(1),"base64")
162if("arraybuffer"===t){for(var a=new Uint8Array(i.length),o=0;o<a.length;o++)a[o]=i[o]
163i=a.buffer}return{type:n,data:i}},t.encodePayload=function(e,n,i){if("function"==typeof n&&(i=n,n=null),n&&a(e))return t.encodePayloadAsBinary(e,i)
164if(!e.length)return i("0:")
165u(e,function(e,i){t.encodePacket(e,n,!1,function(e){i(null,function(e){return e.length+":"+e}(e))})},function(e,t){return i(t.join(""))})},t.decodePayload=function(e,n,i){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,i)
166if("function"==typeof n&&(i=n,n=null),""===e)return i(p,0,1)
167for(var a,o,s,r="",c=0,l=e.length;c<l;c++){var u=e.charAt(c)
168if(":"===u){if(""===r||r!=(a=Number(r)))return i(p,0,1)
169if(r!=(o=e.substr(c+1,a)).length)return i(p,0,1)
170if(o.length){if(s=t.decodePacket(o,n,!1),p.type===s.type&&p.data===s.data)return i(p,0,1)
171if(!1===i(s,c+a,l))return}c+=a,r=""}else r+=u}return""!==r?i(p,0,1):void 0},t.encodePayloadAsBinary=function(e,t){if(!e.length)return t(new Buffer(0))
172u(e,h,function(e,n){return t(Buffer.concat(n))})},t.decodePayloadAsBinary=function(e,n,i){"function"==typeof n&&(i=n,n=null)
173for(var a,o=e,s=[];o.length>0;){var r="",c=0===o[0]
174for(a=1;255!==o[a];a++){if(r.length>310)return i(p,0,1)
175r+=""+o[a]}o=o.slice(r.length+1)
176var l=parseInt(r,10),u=o.slice(1,l+1)
177c&&(u=d(u)),s.push(u),o=o.slice(l+1)}var f=s.length
178for(a=0;a<f;a++){var h=s[a]
179i(t.decodePacket(h,n,!0),a,f)}}},function(e,t,n){"use strict"
180var i=n(32),a=n(12),o=n(11)
181function s(e,t){var n,a
182if(this._client=e,this.queue=new i,t)for(var o=0;o<t.length;o++)n=t[o][0],a=t[o].slice(1),Array.isArray(n)?this[n[0]].apply(this,n.slice(1).concat(a)):this[n].apply(this,a)}function r(e,t,n){var i=t.callback
183t.callback=function(a,o){a&&-1!==n&&(i&&i(a),a.position=n,e.errors.push(a)),e.wants_buffers[n]=t.buffer_args,t.callback=i},e._client.internal_send_command(t)}function c(e,t,n){return function(i,a){i?(e.results[n]=i,e.results[n].position=n):e.results[n]=a,t(i,a)}}s.prototype.exec_atomic=s.prototype.EXEC_ATOMIC=s.prototype.execAtomic=function(e){return this.queue.length<2?this.exec_batch(e):this.exec(e)},s.prototype.exec_transaction=function(e){if(this.monitoring||this._client.monitoring){var t=new RangeError("Using transaction with a client that is in monitor mode does not work due to faulty return values of Redis.")
184return t.command="EXEC",t.code="EXECABORT",a.reply_in_order(this._client,e,t)}var n=this,i=n.queue.length
185n.errors=[],n.callback=e,n._client.cork(),n.wants_buffers=new Array(i),r(n,new o("multi",[]),-1)
186for(var s=0;s<i;s++)r(n,n.queue.get(s),s)
187return n._client.internal_send_command(new o("exec",[],function(e,t){!function(e,t,n){var i,o=0
188if(t)return t.errors=e.errors,void(e.callback?e.callback(t):"CONNECTION_BROKEN"!==t.code&&e._client.emit("error",t))
189if(n)for(;i=e.queue.shift();){if(n[o]instanceof Error){var s=n[o].message.match(a.err_code)
190s&&(n[o].code=s[1]),n[o].command=i.command.toUpperCase(),"function"==typeof i.callback&&i.callback(n[o])}else n[o]=e._client.handle_reply(n[o],i.command,e.wants_buffers[o]),"function"==typeof i.callback&&i.callback(null,n[o])
191o++}e.callback&&e.callback(null,n)}(n,e,t)})),n._client.uncork(),!n._client.should_buffer},s.prototype.exec=s.prototype.EXEC=s.prototype.exec_batch=function(e){var t,n=this,i=n.queue.length,o=0
192if(0===i)return a.reply_in_order(n._client,e,null,[]),!n._client.should_buffer
193if(n._client.cork(),!e){for(;t=n.queue.shift();)n._client.internal_send_command(t)
194return n._client.uncork(),!n._client.should_buffer}var s=function(e,t){if(e){n.results.push(e)
195var i=n.results.length-1
196n.results[i].position=i}else n.results.push(t)},r=function(t){return function(i,a){t(i,a),e(null,n.results)}}
197for(n.results=[];t=n.queue.shift();)"function"==typeof t.callback?t.callback=c(n,t.callback,o):t.callback=s,"function"==typeof e&&o===i-1&&(t.callback=r(t.callback)),this._client.internal_send_command(t),o++
198return n._client.uncork(),!n._client.should_buffer},e.exports=s},function(e,t,n){"use strict"
199var i=n(13)
200e.exports=function(){i.debug_mode&&console.error.apply(null,arguments)}},function(e,t,n){"use strict"
201var i=n(1),a=n(15),o=!1
202function s(e){var t=Error.stackTraceLimit
203Error.stackTraceLimit=2,a.call(this,e,o),Error.captureStackTrace(this,s),Error.stackTraceLimit=t}i.inherits(s,a),Object.defineProperty(s.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0}),e.exports=s},function(e,t,n){"use strict"
204const i=n(10).Buffer,a=(e,t)=>{const n=i.allocUnsafe(t)
205for(var a=0,o=0;o<e.length;o++){const t=e[o]
206t.copy(n,a),a+=t.length}return n}
207try{const i=n(85)
208e.exports=Object.assign({concat:a},i.BufferUtil||i)}catch(t){const n=(e,t,n,i,a)=>{for(var o=0;o<a;o++)n[i+o]=e[o]^t[3&o]},i=(e,t)=>{const n=e.length
209for(var i=0;i<n;i++)e[i]^=t[3&i]}
210e.exports={concat:a,mask:n,unmask:i}}},function(e,t,n){var i=n(108),a=Object.prototype.toString,o="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===a.call(Blob),s="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===a.call(File)
211e.exports=function e(t){if(!t||"object"!=typeof t)return!1
212if(i(t)){for(var n=0,a=t.length;n<a;n++)if(e(t[n]))return!0
213return!1}if("function"==typeof Buffer&&Buffer.isBuffer&&Buffer.isBuffer(t)||"function"==typeof ArrayBuffer&&t instanceof ArrayBuffer||o&&t instanceof Blob||s&&t instanceof File)return!0
214if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return e(t.toJSON(),!0)
215for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return!0
216return!1}},function(e,t,n){var i=n(7).EventEmitter,a=n(19),o=n(1),s=n(6)("engine:transport")
217function r(){}function c(e){this.readyState="open",this.discarded=!1}e.exports=c,o.inherits(c,i),c.prototype.discard=function(){this.discarded=!0},c.prototype.onRequest=function(e){s("setting request"),this.req=e},c.prototype.close=function(e){"closed"!==this.readyState&&"closing"!==this.readyState&&(this.readyState="closing",this.doClose(e||r))},c.prototype.onError=function(e,t){if(this.listeners("error").length){var n=new Error(e)
218n.type="TransportError",n.description=t,this.emit("error",n)}else s("ignored transport error %s (%s)",e,t)},c.prototype.onPacket=function(e){this.emit("packet",e)},c.prototype.onData=function(e){this.onPacket(a.decodePacket(e))},c.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(e){e.exports={a:"imock-socket",b:"0.0.9"}},function(e,t,n){var i
219function a(e){function n(){if(n.enabled){var e=n,a=+new Date,o=a-(i||a)
220e.diff=o,e.prev=i,e.curr=a,i=a
221for(var s=new Array(arguments.length),r=0;r<s.length;r++)s[r]=arguments[r]
222s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O")
223var c=0
224s[0]=s[0].replace(/%([a-zA-Z%])/g,function(n,i){if("%%"===n)return n
225c++
226var a=t.formatters[i]
227if("function"==typeof a){var o=s[c]
228n=a.call(e,o),s.splice(c,1),c--}return n}),t.formatArgs.call(e,s),(n.log||t.log||console.log.bind(console)).apply(e,s)}}return n.namespace=e,n.enabled=t.enabled(e),n.useColors=t.useColors(),n.color=function(e){var n,i=0
229for(n in e)i=(i<<5)-i+e.charCodeAt(n),i|=0
230return t.colors[Math.abs(i)%t.colors.length]}(e),"function"==typeof t.init&&t.init(n),n}(t=e.exports=a.debug=a.default=a).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e),t.names=[],t.skips=[]
231for(var n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length,a=0;a<i;a++)n[a]&&("-"===(e=n[a].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i
232for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1
233for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0
234return!1},t.humanize=n(45),t.names=[],t.skips=[],t.formatters={}},function(e,t,n){"use strict"
235var i=n(66)
236t.list=Object.keys(i)
237var a={}
238function o(e){"string"!=typeof e&&(e=String(e))
239var t=e.indexOf("->")
240return-1===t?e.length:t}t.list.forEach(function(e){a[e]=i[e].flags.reduce(function(e,t){return e[t]=!0,e},{})}),t.exists=function(e){return Boolean(i[e])},t.hasFlag=function(e,t){if(!a[e])throw new Error("Unknown command "+e)
241return Boolean(a[e][t])},t.getKeyIndexes=function(e,t,n){var a=i[e]
242if(!a)throw new Error("Unknown command "+e)
243if(!Array.isArray(t))throw new Error("Expect args to be an array")
244var s,r,c,p,l=[]
245switch(e){case"zunionstore":case"zinterstore":l.push(0)
246case"eval":case"evalsha":for(c=Number(t[1])+2,s=2;s<c;s++)l.push(s)
247break
248case"sort":for(p=n&&n.parseExternalKey,l.push(0),s=1;s<t.length-1;s++)if("string"==typeof t[s]){var u=t[s].toUpperCase()
249"GET"===u?"#"!==t[s+=1]&&(p?l.push([s,o(t[s])]):l.push(s)):"BY"===u?(s+=1,p?l.push([s,o(t[s])]):l.push(s)):"STORE"===u&&(s+=1,l.push(s))}break
250case"migrate":if(""===t[2]){for(s=5;s<t.length-1;s++)if("KEYS"===t[s].toUpperCase()){for(var d=s+1;d<t.length;d++)l.push(d)
251break}}else l.push(2)
252break
253default:if(a.step>0)for(r=a.keyStart-1,c=a.keyStop>0?a.keyStop:t.length+a.keyStop+1,s=r;s<c;s+=a.step)l.push(s)}return l}},function(e,t,n){"use strict"
254var i=n(1),a=n(31),o=n(15),s=!1
255function r(e,t,n){a(t),a.strictEqual(typeof n,"number"),o.call(this,e,s),this.offset=n,this.buffer=t,Error.captureStackTrace(this,r)}i.inherits(r,o),Object.defineProperty(r.prototype,"name",{value:"ParserError",configurable:!0,writable:!0}),e.exports=r},function(e,t,n){"use strict"
256e.exports=n(70),e.exports.ReplyError=n(22),e.exports.RedisError=n(15),e.exports.ParserError=n(15)},function(e,t){e.exports=require("assert")},function(e,t,n){"use strict"
257function i(e){if(this._capacity=o(e),this._length=0,this._front=0,a(e)){for(var t=e.length,n=0;n<t;++n)this[n]=e[n]
258this._length=t}}i.prototype.toArray=function(){for(var e=this._length,t=new Array(e),n=this._front,i=this._capacity,a=0;a<e;++a)t[a]=this[n+a&i-1]
259return t},i.prototype.push=function(e){var t=arguments.length,n=this._length
260if(t>1){var i=this._capacity
261if(n+t>i){for(var a=0;a<t;++a)this._checkCapacity(n+1),this[o=this._front+n&this._capacity-1]=arguments[a],n++,this._length=n
262return n}var o=this._front
263for(a=0;a<t;++a)this[o+n&i-1]=arguments[a],o++
264return this._length=n+t,n+t}return 0===t?n:(this._checkCapacity(n+1),this[a=this._front+n&this._capacity-1]=e,this._length=n+1,n+1)},i.prototype.pop=function(){var e=this._length
265if(0!==e){var t=this._front+e-1&this._capacity-1,n=this[t]
266return this[t]=void 0,this._length=e-1,n}},i.prototype.shift=function(){var e=this._length
267if(0!==e){var t=this._front,n=this[t]
268return this[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}},i.prototype.unshift=function(e){var t=this._length,n=arguments.length
269if(n>1){if(t+n>(a=this._capacity)){for(var i=n-1;i>=0;i--){this._checkCapacity(t+1)
270var a=this._capacity
271this[s=(this._front-1&a-1^a)-a]=arguments[i],t++,this._length=t,this._front=s}return t}var o=this._front
272for(i=n-1;i>=0;i--){var s
273this[s=(o-1&a-1^a)-a]=arguments[i],o=s}return this._front=o,this._length=t+n,t+n}if(0===n)return t
274this._checkCapacity(t+1)
275a=this._capacity
276return this[i=(this._front-1&a-1^a)-a]=e,this._length=t+1,this._front=i,t+1},i.prototype.peekBack=function(){var e=this._length
277if(0!==e)return this[this._front+e-1&this._capacity-1]},i.prototype.peekFront=function(){if(0!==this._length)return this[this._front]},i.prototype.get=function(e){var t=e
278if(t===(0|t)){var n=this._length
279if(t<0&&(t+=n),!(t<0||t>=n))return this[this._front+t&this._capacity-1]}},i.prototype.isEmpty=function(){return 0===this._length},i.prototype.clear=function(){for(var e=this._length,t=this._front,n=this._capacity,i=0;i<e;++i)this[t+i&n-1]=void 0
280this._length=0,this._front=0},i.prototype.toString=function(){return this.toArray().toString()},i.prototype.valueOf=i.prototype.toString,i.prototype.removeFront=i.prototype.shift,i.prototype.removeBack=i.prototype.pop,i.prototype.insertFront=i.prototype.unshift,i.prototype.insertBack=i.prototype.push,i.prototype.enqueue=i.prototype.push,i.prototype.dequeue=i.prototype.shift,i.prototype.toJSON=i.prototype.toArray,Object.defineProperty(i.prototype,"length",{get:function(){return this._length},set:function(){throw new RangeError("")}}),i.prototype._checkCapacity=function(e){this._capacity<e&&this._resizeTo(o(1.5*this._capacity+16))},i.prototype._resizeTo=function(e){var t=this._capacity
281this._capacity=e
282var n=this._front,i=this._length
283n+i>t&&function(e,t,n,i,a){for(var o=0;o<a;++o)n[o+i]=e[o+0],e[o+0]=void 0}(this,0,this,t,n+i&t-1)}
284var a=Array.isArray
285function o(e){if("number"!=typeof e){if(!a(e))return 16
286e=e.length}return t=Math.min(Math.max(16,e),1073741824),t>>>=0,t-=1,t|=t>>1,t|=t>>2,t|=t>>4,1+((t|=t>>8)|t>>16)
287var t}e.exports=i},function(e,t,n){var i=n(7).EventEmitter
288function a(e){this.nsp=e,this.rooms={},this.sids={},this.encoder=e.server.encoder}function o(){if(!(this instanceof o))return new o
289this.sockets={},this.length=0}e.exports=a,a.prototype.__proto__=i.prototype,a.prototype.add=function(e,t,n){return this.addAll(e,[t],n)},a.prototype.addAll=function(e,t,n){for(var i=0;i<t.length;i++){var a=t[i]
290this.sids[e]=this.sids[e]||{},this.sids[e][a]=!0,this.rooms[a]=this.rooms[a]||o(),this.rooms[a].add(e)}n&&process.nextTick(n.bind(null,null))},a.prototype.del=function(e,t,n){this.sids[e]=this.sids[e]||{},delete this.sids[e][t],this.rooms.hasOwnProperty(t)&&(this.rooms[t].del(e),0===this.rooms[t].length&&delete this.rooms[t]),n&&process.nextTick(n.bind(null,null))},a.prototype.delAll=function(e,t){var n=this.sids[e]
291if(n)for(var i in n)this.rooms.hasOwnProperty(i)&&(this.rooms[i].del(e),0===this.rooms[i].length&&delete this.rooms[i])
292delete this.sids[e],t&&process.nextTick(t.bind(null,null))},a.prototype.broadcast=function(e,t){var n,i=t.rooms||[],a=t.except||[],o=t.flags||{},s={preEncoded:!0,volatile:o.volatile,compress:o.compress},r={},c=this
293e.nsp=this.nsp.name,this.encoder.encode(e,function(e){if(i.length)for(var t=0;t<i.length;t++){var o=c.rooms[i[t]]
294if(o){var p=o.sockets
295for(var l in p)if(p.hasOwnProperty(l)){if(r[l]||~a.indexOf(l))continue;(n=c.nsp.connected[l])&&(n.packet(e,s),r[l]=!0)}}}else for(var l in c.sids)if(c.sids.hasOwnProperty(l)){if(~a.indexOf(l))continue;(n=c.nsp.connected[l])&&n.packet(e,s)}})},a.prototype.clients=function(e,t){"function"==typeof e&&(t=e,e=null)
296var n={},i=[]
297if((e=e||[]).length)for(var a=0;a<e.length;a++){var o=this.rooms[e[a]]
298if(o){var s=o.sockets
299for(var r in s)if(s.hasOwnProperty(r)){if(n[r])continue
300this.nsp.connected[r]&&(i.push(r),n[r]=!0)}}}else for(var r in this.sids)this.sids.hasOwnProperty(r)&&this.nsp.connected[r]&&i.push(r)
301t&&process.nextTick(t.bind(null,null,i))},a.prototype.clientRooms=function(e,t){var n=this.sids[e]
302t&&process.nextTick(t.bind(null,null,n?Object.keys(n):null))},o.prototype.add=function(e){this.sockets.hasOwnProperty(e)||(this.sockets[e]=!0,this.length++)},o.prototype.del=function(e){this.sockets.hasOwnProperty(e)&&(delete this.sockets[e],this.length--)}},function(e,t,n){var i=n(76),a=n(7).EventEmitter,o=n(16),s=n(24),r=n(6)("socket.io:namespace")
303e.exports=t=p,t.events=["connect","connection","newListener"],t.flags=["json","volatile","local"]
304var c=a.prototype.emit
305function p(e,t){this.name=t,this.server=e,this.sockets={},this.connected={},this.fns=[],this.ids=0,this.rooms=[],this.flags={},this.initAdapter()}p.prototype.__proto__=a.prototype,t.flags.forEach(function(e){Object.defineProperty(p.prototype,e,{get:function(){return this.flags[e]=!0,this}})}),p.prototype.initAdapter=function(){this.adapter=new(this.server.adapter())(this)},p.prototype.use=function(e){return this.server.eio&&"/"===this.name&&(r("removing initial packet"),delete this.server.eio.initialPacket),this.fns.push(e),this},p.prototype.run=function(e,t){var n=this.fns.slice(0)
306if(!n.length)return t(null)
307!function i(a){n[a](e,function(e){return e?t(e):n[a+1]?void i(a+1):t(null)})}(0)},p.prototype.to=p.prototype.in=function(e){return~this.rooms.indexOf(e)||this.rooms.push(e),this},p.prototype.add=function(e,t,n){r("adding socket to nsp %s",this.name)
308var a=new i(this,e,t),o=this
309return this.run(a,function(t){process.nextTick(function(){if("open"==e.conn.readyState){if(t)return a.error(t.data||t.message)
310o.sockets[a.id]=a,a.onconnect(),n&&n(),o.emit("connect",a),o.emit("connection",a)}else r("next called after client was closed - ignoring socket")})}),a},p.prototype.remove=function(e){this.sockets.hasOwnProperty(e.id)?delete this.sockets[e.id]:r("ignoring remove for %s",e.id)},p.prototype.emit=function(e){if(~t.events.indexOf(e))return c.apply(this,arguments),this
311var n=Array.prototype.slice.call(arguments),i={type:(void 0!==this.flags.binary?this.flags.binary:s(n))?o.BINARY_EVENT:o.EVENT,data:n}
312if("function"==typeof n[n.length-1])throw new Error("Callbacks are not supported when broadcasting")
313var a=this.rooms.slice(0),r=Object.assign({},this.flags)
314return this.rooms=[],this.flags={},this.adapter.broadcast(i,{rooms:a,flags:r}),this},p.prototype.send=p.prototype.write=function(){var e=Array.prototype.slice.call(arguments)
315return e.unshift("message"),this.emit.apply(this,e),this},p.prototype.clients=function(e){return this.adapter.clients(this.rooms,e),this.rooms=[],this},p.prototype.compress=function(e){return this.flags.compress=e,this},p.prototype.binary=function(e){return this.flags.binary=e,this}},function(e,t){e.exports=function(e){return n&&global.Buffer.isBuffer(e)||i&&(e instanceof global.ArrayBuffer||a(e))}
316var n="function"==typeof global.Buffer&&"function"==typeof global.Buffer.isBuffer,i="function"==typeof global.ArrayBuffer,a=i&&"function"==typeof global.ArrayBuffer.isView?global.ArrayBuffer.isView:function(e){return e.buffer instanceof global.ArrayBuffer}},function(e,t){var n={}.toString
317e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict"
318const i=n(10),a=n(5),o=n(18),s=n(23),r=n(38),c=n(17),p=i.Buffer
319class l{constructor(e,t){this._extensions=t||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){const n=e.length<1024||t.mask&&t.readOnly
320var i=t.mask?6:2,o=e.length
321e.length>=65536?(i+=8,o=127):e.length>125&&(i+=2,o=126)
322const r=p.allocUnsafe(n?e.length+i:i)
323if(r[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(r[0]|=64),126===o?r.writeUInt16BE(e.length,2,!0):127===o&&(r.writeUInt32BE(0,2,!0),r.writeUInt32BE(e.length,6,!0)),!t.mask)return r[1]=o,n?(e.copy(r,i),[r]):[r,e]
324const c=a.randomBytes(4)
325return r[1]=128|o,r[i-4]=c[0],r[i-3]=c[1],r[i-2]=c[2],r[i-1]=c[3],n?(s.mask(e,c,r,i,e.length),[r]):(s.mask(e,c,e,0,e.length),[r,e])}close(e,t,n,i){var a
326if(void 0===e)e=1e3
327else if("number"!=typeof e||!r.isValidErrorCode(e))throw new Error("first argument must be a valid error code number")
328void 0===t||""===t?1e3===e?a=c.EMPTY_BUFFER:(a=p.allocUnsafe(2)).writeUInt16BE(e,0,!0):((a=p.allocUnsafe(2+p.byteLength(t))).writeUInt16BE(e,0,!0),a.write(t,2)),this._deflating?this.enqueue([this.doClose,a,n,i]):this.doClose(a,n,i)}doClose(e,t,n){this.sendFrame(l.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:t,readOnly:!1}),n)}ping(e,t){var n=!0
329p.isBuffer(e)||(e instanceof ArrayBuffer?e=p.from(e):ArrayBuffer.isView(e)?e=u(e):(e=p.from(e),n=!1)),this._deflating?this.enqueue([this.doPing,e,t,n]):this.doPing(e,t,n)}doPing(e,t,n){this.sendFrame(l.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:t,readOnly:n}))}pong(e,t){var n=!0
330p.isBuffer(e)||(e instanceof ArrayBuffer?e=p.from(e):ArrayBuffer.isView(e)?e=u(e):(e=p.from(e),n=!1)),this._deflating?this.enqueue([this.doPong,e,t,n]):this.doPong(e,t,n)}doPong(e,t,n){this.sendFrame(l.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:t,readOnly:n}))}send(e,t,n){var i=t.binary?2:1,a=t.compress,s=!0
331p.isBuffer(e)||(e instanceof ArrayBuffer?e=p.from(e):ArrayBuffer.isView(e)?e=u(e):(e=p.from(e),s=!1))
332const r=this._extensions[o.extensionName]
333if(this._firstFragment?(this._firstFragment=!1,a&&r&&(a=e.length>=r._threshold),this._compress=a):(a=!1,i=0),t.fin&&(this._firstFragment=!0),r){const o={fin:t.fin,rsv1:a,opcode:i,mask:t.mask,readOnly:s}
334this._deflating?this.enqueue([this.dispatch,e,this._compress,o,n]):this.dispatch(e,this._compress,o,n)}else this.sendFrame(l.frame(e,{fin:t.fin,rsv1:!1,opcode:i,mask:t.mask,readOnly:s}),n)}dispatch(e,t,n,i){if(!t)return void this.sendFrame(l.frame(e,n),i)
335const a=this._extensions[o.extensionName]
336this._deflating=!0,a.compress(e,n.fin,(e,t)=>{n.readOnly=!1,this.sendFrame(l.frame(t,n),i),this._deflating=!1,this.dequeue()})}dequeue(){for(;!this._deflating&&this._queue.length;){const e=this._queue.shift()
337this._bufferedBytes-=e[1].length,e[0].apply(this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[1].length,this._queue.push(e)}sendFrame(e,t){2===e.length?(this._socket.write(e[0]),this._socket.write(e[1],t)):this._socket.write(e[0],t)}}function u(e){const t=p.from(e.buffer)
338return e.byteLength!==e.buffer.byteLength?t.slice(e.byteOffset,e.byteOffset+e.byteLength):t}e.exports=l},function(e,t,n){"use strict"
339e.exports={isValidErrorCode:function(e){return e>=1e3&&e<=1013&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999},1000:"normal",1001:"going away",1002:"protocol error",1003:"unsupported data",1004:"reserved",1005:"reserved for extensions",1006:"reserved for extensions",1007:"inconsistent or invalid data",1008:"policy violation",1009:"message too big",1010:"extension handshake missing",1011:"an unexpected condition prevented the request from being fulfilled",1012:"service restart",1013:"try again later"}},function(e,t,n){"use strict"
340const i=n(10),a=n(18),o=n(83),s=n(23),r=n(38),c=n(17),p=i.Buffer
341function l(e,t){return 1===e.length?e[0]:e.length>1?s.concat(e,t):c.EMPTY_BUFFER}e.exports=class{constructor(e,t,n){this._binaryType=n||c.BINARY_TYPES[0],this._extensions=e||{},this._maxPayload=0|t,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._fragmented=0,this._masked=!1,this._fin=!1,this._mask=null,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._cleanupCallback=null,this._hadError=!1,this._dead=!1,this._loop=!1,this.onmessage=null,this.onclose=null,this.onerror=null,this.onping=null,this.onpong=null,this._state=0}readBuffer(e){var t,n,i=0
342if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift()
343if(e<this._buffers[0].length)return t=this._buffers[0].slice(0,e),this._buffers[0]=this._buffers[0].slice(e),t
344for(t=p.allocUnsafe(e);e>0;)e>=(n=this._buffers[0].length)?(this._buffers[0].copy(t,i),i+=n,this._buffers.shift()):(this._buffers[0].copy(t,i,0,e),this._buffers[0]=this._buffers[0].slice(e)),e-=n
345return t}hasBufferedBytes(e){return this._bufferedBytes>=e||(this._loop=!1,this._dead&&this.cleanup(this._cleanupCallback),!1)}add(e){this._dead||(this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop())}startLoop(){for(this._loop=!0;this._loop;)switch(this._state){case 0:this.getInfo()
346break
347case 1:this.getPayloadLength16()
348break
349case 2:this.getPayloadLength64()
350break
351case 3:this.getMask()
352break
353case 4:this.getData()
354break
355default:this._loop=!1}}getInfo(){if(!this.hasBufferedBytes(2))return
356const e=this.readBuffer(2)
357if(0!=(48&e[0]))return void this.error(new Error("RSV2 and RSV3 must be clear"),1002)
358const t=64==(64&e[0])
359if(!t||this._extensions[a.extensionName]){if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(t)return void this.error(new Error("RSV1 must be clear"),1002)
360if(!this._fragmented)return void this.error(new Error(`invalid opcode: ${this._opcode}`),1002)
361this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return void this.error(new Error(`invalid opcode: ${this._opcode}`),1002)
362this._compressed=t}else{if(!(this._opcode>7&&this._opcode<11))return void this.error(new Error(`invalid opcode: ${this._opcode}`),1002)
363if(!this._fin)return void this.error(new Error("FIN must be set"),1002)
364if(t)return void this.error(new Error("RSV1 must be clear"),1002)
365if(this._payloadLength>125)return void this.error(new Error("invalid payload length"),1002)}this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=128==(128&e[1]),126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength()}else this.error(new Error("RSV1 must be clear"),1002)}getPayloadLength16(){this.hasBufferedBytes(2)&&(this._payloadLength=this.readBuffer(2).readUInt16BE(0,!0),this.haveLength())}getPayloadLength64(){if(!this.hasBufferedBytes(8))return
366const e=this.readBuffer(8),t=e.readUInt32BE(0,!0)
367t>Math.pow(2,21)-1?this.error(new Error("max payload size exceeded"),1009):(this._payloadLength=t*Math.pow(2,32)+e.readUInt32BE(4,!0),this.haveLength())}haveLength(){this._opcode<8&&this.maxPayloadExceeded(this._payloadLength)||(this._masked?this._state=3:this._state=4)}getMask(){this.hasBufferedBytes(4)&&(this._mask=this.readBuffer(4),this._state=4)}getData(){var e=c.EMPTY_BUFFER
368if(this._payloadLength){if(!this.hasBufferedBytes(this._payloadLength))return
369e=this.readBuffer(this._payloadLength),this._masked&&s.unmask(e,this._mask)}this._opcode>7?this.controlMessage(e):this._compressed?(this._state=5,this.decompress(e)):this.pushFragment(e)&&this.dataMessage()}decompress(e){this._extensions[a.extensionName].decompress(e,this._fin,(e,t)=>{e?this.error(e,1009===e.closeCode?1009:1007):(this.pushFragment(t)&&this.dataMessage(),this.startLoop())})}dataMessage(){if(this._fin){const n=this._messageLength,i=this._fragments
370if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){var e
371e="nodebuffer"===this._binaryType?l(i,n):"arraybuffer"===this._binaryType?0===(t=l(i,n)).byteOffset&&t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):i,this.onmessage(e)}else{const e=l(i,n)
372if(!o(e))return void this.error(new Error("invalid utf8 sequence"),1007)
373this.onmessage(e.toString())}}var t
374this._state=0}controlMessage(e){if(8!==this._opcode)9===this._opcode?this.onping(e):this.onpong(e),this._state=0
375else if(0===e.length)this.onclose(1e3,""),this._loop=!1,this.cleanup(this._cleanupCallback)
376else if(1===e.length)this.error(new Error("invalid payload length"),1002)
377else{const t=e.readUInt16BE(0,!0)
378if(!r.isValidErrorCode(t))return void this.error(new Error(`invalid status code: ${t}`),1002)
379const n=e.slice(2)
380if(!o(n))return void this.error(new Error("invalid utf8 sequence"),1007)
381this.onclose(t,n.toString()),this._loop=!1,this.cleanup(this._cleanupCallback)}}error(e,t){this.onerror(e,t),this._hadError=!0,this._loop=!1,this.cleanup(this._cleanupCallback)}maxPayloadExceeded(e){if(0===e||this._maxPayload<1)return!1
382const t=this._totalPayloadLength+e
383return t<=this._maxPayload?(this._totalPayloadLength=t,!1):(this.error(new Error("max payload size exceeded"),1009),!0)}pushFragment(e){if(0===e.length)return!0
384const t=this._messageLength+e.length
385return this._maxPayload<1||t<=this._maxPayload?(this._messageLength=t,this._fragments.push(e),!0):(this.error(new Error("max payload size exceeded"),1009),!1)}cleanup(e){this._dead=!0,this._hadError||!this._loop&&5!==this._state?(this._extensions=null,this._fragments=null,this._buffers=null,this._mask=null,this._cleanupCallback=null,this.onmessage=null,this.onclose=null,this.onerror=null,this.onping=null,this.onpong=null,e&&e()):this._cleanupCallback=e}}},function(e,t,n){"use strict"
386const i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]
387function a(e,t,n){Object.prototype.hasOwnProperty.call(e,t)?e[t].push(n):e[t]=[n]}e.exports={format:function(e){return Object.keys(e).map(t=>{var n=e[t]
388return Array.isArray(n)||(n=[n]),n.map(e=>[t].concat(Object.keys(e).map(t=>{var n=e[t]
389return Array.isArray(n)||(n=[n]),n.map(e=>!0===e?t:`${t}=${e}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(e){const t={}
390if(void 0===e||""===e)return t
391for(var n,o,s={},r=!1,c=!1,p=!1,l=-1,u=-1,d=0;d<e.length;d++){const h=e.charCodeAt(d)
392if(void 0===n)if(-1===u&&1===i[h])-1===l&&(l=d)
393else if(32===h||9===h)-1===u&&-1!==l&&(u=d)
394else{if(59!==h&&44!==h)throw new Error(`unexpected character at index ${d}`)
395{if(-1===l)throw new Error(`unexpected character at index ${d}`);-1===u&&(u=d)
396const i=e.slice(l,u)
39744===h?(a(t,i,s),s={}):n=i,l=u=-1}}else if(void 0===o)if(-1===u&&1===i[h])-1===l&&(l=d)
398else if(32===h||9===h)-1===u&&-1!==l&&(u=d)
399else if(59===h||44===h){if(-1===l)throw new Error(`unexpected character at index ${d}`);-1===u&&(u=d),a(s,e.slice(l,u),!0),44===h&&(a(t,n,s),s={},n=void 0),l=u=-1}else{if(61!==h||-1===l||-1!==u)throw new Error(`unexpected character at index ${d}`)
400o=e.slice(l,d),l=u=-1}else if(c){if(1!==i[h])throw new Error(`unexpected character at index ${d}`);-1===l?l=d:r||(r=!0),c=!1}else if(p)if(1===i[h])-1===l&&(l=d)
401else if(34===h&&-1!==l)p=!1,u=d
402else{if(92!==h)throw new Error(`unexpected character at index ${d}`)
403c=!0}else if(34===h&&61===e.charCodeAt(d-1))p=!0
404else if(-1===u&&1===i[h])-1===l&&(l=d)
405else if(-1===l||32!==h&&9!==h){if(59!==h&&44!==h)throw new Error(`unexpected character at index ${d}`)
406if(-1===l)throw new Error(`unexpected character at index ${d}`);-1===u&&(u=d)
407var f=e.slice(l,u)
408r&&(f=f.replace(/\\/g,""),r=!1),a(s,o,f),44===h&&(a(t,n,s),s={},n=void 0),o=void 0,l=u=-1}else-1===u&&(u=d)}if(-1===l||p)throw new Error("unexpected end of input");-1===u&&(u=d)
409const h=e.slice(l,u)
410return void 0===n?a(t,h,{}):(void 0===o?a(s,h,!0):a(s,o,r?h.replace(/\\/g,""):h),a(t,n,s)),t}}},function(e,t,n){"use strict"
411var i=Object.prototype.hasOwnProperty,a=0
412function o(e){if(!(this instanceof o))return new o(e)
413this.id=a++,this.ee=e}o.prototype.on=function(e,t,n){return t.__ultron=this.id,this.ee.on(e,t,n),this},o.prototype.once=function(e,t,n){return t.__ultron=this.id,this.ee.once(e,t,n),this},o.prototype.remove=function(){var e,t=arguments,n=this.ee
414if(1===t.length&&"string"==typeof t[0])t=t[0].split(/[, ]+/)
415else if(!t.length)if(n.eventNames)t=n.eventNames()
416else if(n._events){for(e in t=[],n._events)i.call(n._events,e)&&t.push(e)
417Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n._events)))}for(var a=0;a<t.length;a++)for(var o=n.listeners(t[a]),s=0;s<o.length;s++){if((e=o[s]).listener){if(e.listener.__ultron!==this.id)continue}else if(e.__ultron!==this.id)continue
418n.removeListener(t[a],e)}return this},o.prototype.destroy=function(){return!!this.ee&&(this.remove(),this.ee=null,!0)},e.exports=o},function(e,t,n){"use strict"
419const i=n(7),a=n(5),o=n(41),s=n(14),r=n(8),c=n(3),p=n(18),l=n(84),u=n(40),d=n(17),f=n(39),h=n(37),m=[8,13],v=3e4
420class g extends i{constructor(e,t,n){super(),t?"string"==typeof t?t=[t]:Array.isArray(t)||(n=t,t=[]):t=[],this.readyState=g.CONNECTING,this.bytesReceived=0,this.extensions={},this.protocol="",this._binaryType=d.BINARY_TYPES[0],this._finalize=this.finalize.bind(this),this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._finalized=!1,this._closeCode=1006,this._receiver=null,this._sender=null,this._socket=null,this._ultron=null,Array.isArray(e)?function(e,t,n){this.protocolVersion=n.protocolVersion,this._maxPayload=n.maxPayload,this.extensions=n.extensions,this.protocol=n.protocol,this._isServer=!0,this.setSocket(e,t)}.call(this,e[0],e[1],n):function(e,t,n){if(n=Object.assign({protocolVersion:m[1],protocol:t.join(","),perMessageDeflate:!0,handshakeTimeout:null,localAddress:null,headers:null,family:null,origin:null,agent:null,host:null,checkServerIdentity:null,rejectUnauthorized:null,passphrase:null,ciphers:null,ecdhCurve:null,cert:null,key:null,pfx:null,ca:null},n),-1===m.indexOf(n.protocolVersion))throw new Error(`unsupported protocol version: ${n.protocolVersion} `+`(supported versions: ${m.join(", ")})`)
421this.protocolVersion=n.protocolVersion,this._isServer=!1,this.url=e
422const i=c.parse(e),o="ws+unix:"===i.protocol
423if(!(i.host||o&&i.path))throw new Error("invalid url")
424const l="wss:"===i.protocol||"https:"===i.protocol,f=a.randomBytes(16).toString("base64"),h=l?s:r
425var v
426const y={port:i.port||(l?443:80),host:i.hostname,path:"/",headers:{"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":f,Connection:"Upgrade",Upgrade:"websocket"}}
427n.headers&&Object.assign(y.headers,n.headers)
428n.perMessageDeflate&&(v=new p(!0!==n.perMessageDeflate?n.perMessageDeflate:{},!1),y.headers["Sec-WebSocket-Extensions"]=u.format({[p.extensionName]:v.offer()}))
429n.protocol&&(y.headers["Sec-WebSocket-Protocol"]=n.protocol)
430n.origin&&(n.protocolVersion<13?y.headers["Sec-WebSocket-Origin"]=n.origin:y.headers.Origin=n.origin)
431n.host&&(y.headers.Host=n.host)
432i.auth&&(y.auth=i.auth)
433n.localAddress&&(y.localAddress=n.localAddress)
434n.family&&(y.family=n.family)
435if(o){const e=i.path.split(":")
436y.socketPath=e[0],y.path=e[1]}else i.path&&("/"!==i.path.charAt(0)?y.path=`/${i.path}`:y.path=i.path)
437var x=n.agent;(null!=n.rejectUnauthorized||n.checkServerIdentity||n.passphrase||n.ciphers||n.ecdhCurve||n.cert||n.key||n.pfx||n.ca)&&(n.passphrase&&(y.passphrase=n.passphrase),n.ciphers&&(y.ciphers=n.ciphers),n.ecdhCurve&&(y.ecdhCurve=n.ecdhCurve),n.cert&&(y.cert=n.cert),n.key&&(y.key=n.key),n.pfx&&(y.pfx=n.pfx),n.ca&&(y.ca=n.ca),n.checkServerIdentity&&(y.checkServerIdentity=n.checkServerIdentity),null!=n.rejectUnauthorized&&(y.rejectUnauthorized=n.rejectUnauthorized),x||(x=new h.Agent(y)))
438x&&(y.agent=x)
439this._req=h.get(y),n.handshakeTimeout&&this._req.setTimeout(n.handshakeTimeout,()=>{this._req.abort(),this.finalize(new Error("opening handshake has timed out"))})
440this._req.on("error",e=>{this._req.aborted||(this._req=null,this.finalize(e))}),this._req.on("response",e=>{this.emit("unexpected-response",this._req,e)||(this._req.abort(),this.finalize(new Error(`unexpected server response (${e.statusCode})`)))}),this._req.on("upgrade",(e,t,i)=>{if(this.emit("headers",e.headers,e),this.readyState!==g.CONNECTING)return
441this._req=null
442const o=a.createHash("sha1").update(f+d.GUID,"binary").digest("base64")
443if(e.headers["sec-websocket-accept"]!==o)return t.destroy(),this.finalize(new Error("invalid server key"))
444const s=e.headers["sec-websocket-protocol"],r=(n.protocol||"").split(/, */)
445var c
446if(!n.protocol&&s?c="server sent a subprotocol even though none requested":n.protocol&&!s?c="server sent no subprotocol even though requested":s&&-1===r.indexOf(s)&&(c="server responded with an invalid protocol"),c)return t.destroy(),this.finalize(new Error(c))
447if(s&&(this.protocol=s),v)try{const n=u.parse(e.headers["sec-websocket-extensions"])
448n[p.extensionName]&&(v.accept(n[p.extensionName]),this.extensions[p.extensionName]=v)}catch(e){return t.destroy(),void this.finalize(new Error("invalid Sec-WebSocket-Extensions header"))}this.setSocket(t,i)})}.call(this,e,t,n)}get CONNECTING(){return g.CONNECTING}get CLOSING(){return g.CLOSING}get CLOSED(){return g.CLOSED}get OPEN(){return g.OPEN}get bufferedAmount(){var e=0
449return this._socket&&(e=this._socket.bufferSize+this._sender._bufferedBytes),e}get binaryType(){return this._binaryType}set binaryType(e){d.BINARY_TYPES.indexOf(e)<0||(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}setSocket(e,t){e.setTimeout(0),e.setNoDelay(),this._receiver=new f(this.extensions,this._maxPayload,this.binaryType),this._sender=new h(e,this.extensions),this._ultron=new o(e),this._socket=e,this._ultron.on("close",this._finalize),this._ultron.on("error",this._finalize),this._ultron.on("end",this._finalize),t.length>0&&e.unshift(t),this._ultron.on("data",e=>{this.bytesReceived+=e.length,this._receiver.add(e)}),this._receiver.onmessage=(e=>this.emit("message",e)),this._receiver.onping=(e=>{this.pong(e,!this._isServer,!0),this.emit("ping",e)}),this._receiver.onpong=(e=>this.emit("pong",e)),this._receiver.onclose=((e,t)=>{this._closeFrameReceived=!0,this._closeMessage=t,this._closeCode=e,this._finalized||this.close(e,t)}),this._receiver.onerror=((e,t)=>{this._closeMessage="",this._closeCode=t,this.readyState=g.CLOSING,this.emit("error",e),this.finalize(!0)}),this.readyState=g.OPEN,this.emit("open")}finalize(e){if(!this._finalized){if(this.readyState=g.CLOSING,this._finalized=!0,"object"==typeof e&&this.emit("error",e),!this._socket)return this.emitClose()
450clearTimeout(this._closeTimer),this._closeTimer=null,this._ultron.destroy(),this._ultron=null,this._socket.on("error",d.NOOP),e?this._socket.destroy():this._socket.end(),this._socket=null,this._sender=null,this._receiver.cleanup(()=>this.emitClose()),this._receiver=null}}emitClose(){this.readyState=g.CLOSED,this.emit("close",this._closeCode,this._closeMessage),this.extensions[p.extensionName]&&this.extensions[p.extensionName].cleanup(),this.extensions=null,this.removeAllListeners()}pause(){if(this.readyState!==g.OPEN)throw new Error("not opened")
451this._socket.pause()}resume(){if(this.readyState!==g.OPEN)throw new Error("not opened")
452this._socket.resume()}close(e,t){if(this.readyState!==g.CLOSED)return this.readyState===g.CONNECTING?(this._req.abort(),void this.finalize(new Error("closed before the connection is established"))):void(this.readyState!==g.CLOSING?(this.readyState=g.CLOSING,this._sender.close(e,t,!this._isServer,e=>{e||(this._closeFrameSent=!0,this._finalized||(this._closeFrameReceived&&this._socket.end(),this._closeTimer=setTimeout(this._finalize,v,!0)))})):this._closeFrameSent&&this._closeFrameReceived&&this._socket.end())}ping(e,t,n){if(this.readyState!==g.OPEN){if(n)return
453throw new Error("not opened")}"number"==typeof e&&(e=e.toString()),void 0===t&&(t=!this._isServer),this._sender.ping(e||d.EMPTY_BUFFER,t)}pong(e,t,n){if(this.readyState!==g.OPEN){if(n)return
454throw new Error("not opened")}"number"==typeof e&&(e=e.toString()),void 0===t&&(t=!this._isServer),this._sender.pong(e||d.EMPTY_BUFFER,t)}send(e,t,n){if("function"==typeof t&&(n=t,t={}),this.readyState!==g.OPEN){if(!n)throw new Error("not opened")
455return void n(new Error("not opened"))}"number"==typeof e&&(e=e.toString())
456const i=Object.assign({binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0},t)
457this.extensions[p.extensionName]||(i.compress=!1),this._sender.send(e||d.EMPTY_BUFFER,i,n)}terminate(){if(this.readyState!==g.CLOSED)return this.readyState===g.CONNECTING?(this._req.abort(),void this.finalize(new Error("closed before the connection is established"))):void this.finalize(!0)}}g.CONNECTING=0,g.OPEN=1,g.CLOSING=2,g.CLOSED=3,["open","error","close","message"].forEach(e=>{Object.defineProperty(g.prototype,`on${e}`,{get(){const t=this.listeners(e)
458for(var n=0;n<t.length;n++)if(t[n]._listener)return t[n]._listener},set(t){const n=this.listeners(e)
459for(var i=0;i<n.length;i++)n[i]._listener&&this.removeListener(e,n[i])
460this.addEventListener(e,t)}})}),g.prototype.addEventListener=l.addEventListener,g.prototype.removeEventListener=l.removeEventListener,e.exports=g},function(e,t,n){var i=n(7).EventEmitter,a=n(1),o=n(6)("engine:socket")
461function s(e,t,n,i){this.id=e,this.server=t,this.upgrading=!1,this.upgraded=!1,this.readyState="opening",this.writeBuffer=[],this.packetsFn=[],this.sentCallbackFn=[],this.cleanupFn=[],this.request=i,i.websocket&&i.websocket._socket?this.remoteAddress=i.websocket._socket.remoteAddress:this.remoteAddress=i.connection.remoteAddress,this.checkIntervalTimer=null,this.upgradeTimeoutTimer=null,this.pingTimeoutTimer=null,this.setTransport(n),this.onOpen()}e.exports=s,a.inherits(s,i),s.prototype.onOpen=function(){this.readyState="open",this.transport.sid=this.id,this.sendPacket("open",JSON.stringify({sid:this.id,upgrades:this.getAvailableUpgrades(),pingInterval:this.server.pingInterval,pingTimeout:this.server.pingTimeout})),this.server.initialPacket&&this.sendPacket("message",this.server.initialPacket),this.emit("open"),this.setPingTimeout()},s.prototype.onPacket=function(e){if("open"===this.readyState)switch(o("packet"),this.emit("packet",e),this.setPingTimeout(),e.type){case"ping":o("got ping"),this.sendPacket("pong"),this.emit("heartbeat")
462break
463case"error":this.onClose("parse error")
464break
465case"message":this.emit("data",e.data),this.emit("message",e.data)}else o("packet received with closed socket")},s.prototype.onError=function(e){o("transport error"),this.onClose("transport error",e)},s.prototype.setPingTimeout=function(){var e=this
466clearTimeout(e.pingTimeoutTimer),e.pingTimeoutTimer=setTimeout(function(){e.onClose("ping timeout")},e.server.pingInterval+e.server.pingTimeout)},s.prototype.setTransport=function(e){var t=this.onError.bind(this),n=this.onPacket.bind(this),i=this.flush.bind(this),a=this.onClose.bind(this,"transport close")
467this.transport=e,this.transport.once("error",t),this.transport.on("packet",n),this.transport.on("drain",i),this.transport.once("close",a),this.setupSendCallback(),this.cleanupFn.push(function(){e.removeListener("error",t),e.removeListener("packet",n),e.removeListener("drain",i),e.removeListener("close",a)})},s.prototype.maybeUpgrade=function(e){o('might upgrade socket transport from "%s" to "%s"',this.transport.name,e.name),this.upgrading=!0
468var t=this
469function n(n){"ping"===n.type&&"probe"===n.data?(e.send([{type:"pong",data:"probe"}]),t.emit("upgrading",e),clearInterval(t.checkIntervalTimer),t.checkIntervalTimer=setInterval(i,100)):"upgrade"===n.type&&"closed"!==t.readyState?(o("got upgrade packet - upgrading"),a(),t.transport.discard(),t.upgraded=!0,t.clearTransport(),t.setTransport(e),t.emit("upgrade",e),t.setPingTimeout(),t.flush(),"closing"===t.readyState&&e.close(function(){t.onClose("forced close")})):(a(),e.close())}function i(){"polling"===t.transport.name&&t.transport.writable&&(o("writing a noop packet to polling for fast upgrade"),t.transport.send([{type:"noop"}]))}function a(){t.upgrading=!1,clearInterval(t.checkIntervalTimer),t.checkIntervalTimer=null,clearTimeout(t.upgradeTimeoutTimer),t.upgradeTimeoutTimer=null,e.removeListener("packet",n),e.removeListener("close",r),e.removeListener("error",s),t.removeListener("close",c)}function s(t){o("client did not complete upgrade - %s",t),a(),e.close(),e=null}function r(){s("transport closed")}function c(){s("socket closed")}t.upgradeTimeoutTimer=setTimeout(function(){o("client did not complete upgrade - closing transport"),a(),"open"===e.readyState&&e.close()},this.server.upgradeTimeout),e.on("packet",n),e.once("close",r),e.once("error",s),t.once("close",c)},s.prototype.clearTransport=function(){for(var e=this.cleanupFn.length,t=0;t<e;t++)this.cleanupFn.shift()()
470this.transport.on("error",function(){o("error triggered by discarded transport")}),this.transport.close(),clearTimeout(this.pingTimeoutTimer)},s.prototype.onClose=function(e,t){if("closed"!==this.readyState){this.readyState="closed",clearTimeout(this.pingTimeoutTimer),clearInterval(this.checkIntervalTimer),this.checkIntervalTimer=null,clearTimeout(this.upgradeTimeoutTimer)
471var n=this
472process.nextTick(function(){n.writeBuffer=[]}),this.packetsFn=[],this.sentCallbackFn=[],this.clearTransport(),this.emit("close",e,t)}},s.prototype.setupSendCallback=function(){var e=this
473function t(){if(e.sentCallbackFn.length>0){var t=e.sentCallbackFn.splice(0,1)[0]
474if("function"==typeof t)o("executing send callback"),t(e.transport)
475else if(Array.isArray(t)){o("executing batch send callback")
476for(var n=t.length,i=0;i<n;i++)"function"==typeof t[i]&&t[i](e.transport)}}}this.transport.on("drain",t),this.cleanupFn.push(function(){e.transport.removeListener("drain",t)})},s.prototype.send=s.prototype.write=function(e,t,n){return this.sendPacket("message",e,t,n),this},s.prototype.sendPacket=function(e,t,n,i){if("function"==typeof n&&(i=n,n=null),(n=n||{}).compress=!1!==n.compress,"closing"!==this.readyState&&"closed"!==this.readyState){o('sending packet "%s" (%s)',e,t)
477var a={type:e,options:n}
478t&&(a.data=t),this.emit("packetCreate",a),this.writeBuffer.push(a),i&&this.packetsFn.push(i),this.flush()}},s.prototype.flush=function(){if("closed"!==this.readyState&&this.transport.writable&&this.writeBuffer.length){o("flushing buffer to transport"),this.emit("flush",this.writeBuffer),this.server.emit("flush",this,this.writeBuffer)
479var e=this.writeBuffer
480this.writeBuffer=[],this.transport.supportsFraming?this.sentCallbackFn.push.apply(this.sentCallbackFn,this.packetsFn):this.sentCallbackFn.push(this.packetsFn),this.packetsFn=[],this.transport.send(e),this.emit("drain"),this.server.emit("drain",this)}},s.prototype.getAvailableUpgrades=function(){for(var e=[],t=this.server.upgrades(this.transport.name),n=0,i=t.length;n<i;++n){var a=t[n];-1!==this.server.transports.indexOf(a)&&e.push(a)}return e},s.prototype.close=function(e){"open"===this.readyState&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",this.closeTransport.bind(this,e)):this.closeTransport(e))},s.prototype.closeTransport=function(e){e&&this.transport.discard(),this.transport.close(this.onClose.bind(this,"forced close"))}},function(e,t){e.exports=require("tty")},function(e,t){var n=1e3,i=6e4,a=36e5,o=24*a
481function s(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}e.exports=function(e,t){t=t||{}
482var r,c=typeof e
483if("string"===c&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e)
484if(t){var s=parseFloat(t[1])
485switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*s
486case"days":case"day":case"d":return s*o
487case"hours":case"hour":case"hrs":case"hr":case"h":return s*a
488case"minutes":case"minute":case"mins":case"min":case"m":return s*i
489case"seconds":case"second":case"secs":case"sec":case"s":return s*n
490case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s
491default:return}}}}(e)
492if("number"===c&&!1===isNaN(e))return t.long?s(r=e,o,"day")||s(r,a,"hour")||s(r,i,"minute")||s(r,n,"second")||r+" ms":function(e){return e>=o?Math.round(e/o)+"d":e>=a?Math.round(e/a)+"h":e>=i?Math.round(e/i)+"m":e>=n?Math.round(e/n)+"s":e+"ms"}(e)
493throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){function i(e){var n
494function i(){if(i.enabled){var e=i,a=+new Date,o=a-(n||a)
495e.diff=o,e.prev=n,e.curr=a,n=a
496for(var s=new Array(arguments.length),r=0;r<s.length;r++)s[r]=arguments[r]
497s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O")
498var c=0
499s[0]=s[0].replace(/%([a-zA-Z%])/g,function(n,i){if("%%"===n)return n
500c++
501var a=t.formatters[i]
502if("function"==typeof a){var o=s[c]
503n=a.call(e,o),s.splice(c,1),c--}return n}),t.formatArgs.call(e,s),(i.log||t.log||console.log.bind(console)).apply(e,s)}}return i.namespace=e,i.enabled=t.enabled(e),i.useColors=t.useColors(),i.color=function(e){var n,i=0
504for(n in e)i=(i<<5)-i+e.charCodeAt(n),i|=0
505return t.colors[Math.abs(i)%t.colors.length]}(e),i.destroy=a,"function"==typeof t.init&&t.init(i),t.instances.push(i),i}function a(){var e=t.instances.indexOf(this)
506return-1!==e&&(t.instances.splice(e,1),!0)}(t=e.exports=i.debug=i.default=i).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){var n
507t.save(e),t.names=[],t.skips=[]
508var i=("string"==typeof e?e:"").split(/[\s,]+/),a=i.length
509for(n=0;n<a;n++)i[n]&&("-"===(e=i[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))
510for(n=0;n<t.instances.length;n++){var o=t.instances[n]
511o.enabled=t.enabled(o.namespace)}},t.enabled=function(e){if("*"===e[e.length-1])return!0
512var n,i
513for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1
514for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0
515return!1},t.humanize=n(45),t.instances=[],t.names=[],t.skips=[],t.formatters={}},function(e,t,n){var i=n(25),a=n(19),o=n(9),s=n(101),r=n(1),c=n(6)("engine:polling"),p={gzip:o.createGzip,deflate:o.createDeflate}
516function l(e){i.call(this,e),this.closeTimeout=3e4,this.maxHttpBufferSize=null,this.httpCompression=null}e.exports=l,r.inherits(l,i),l.prototype.name="polling",l.prototype.onRequest=function(e){var t=e.res
517"GET"===e.method?this.onPollRequest(e,t):"POST"===e.method?this.onDataRequest(e,t):(t.writeHead(500),t.end())},l.prototype.onPollRequest=function(e,t){if(this.req)return c("request overlap"),this.onError("overlap from client"),t.writeHead(500),void t.end()
518c("setting request"),this.req=e,this.res=t
519var n=this
520function i(){n.onError("poll connection closed prematurely")}e.cleanup=function(){e.removeListener("close",i),n.req=n.res=null},e.on("close",i),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose&&(c("triggering empty send to append close packet"),this.send([{type:"noop"}]))},l.prototype.onDataRequest=function(e,t){if(this.dataReq)return this.onError("data request overlap from client"),t.writeHead(500),void t.end()
521var n="application/octet-stream"===e.headers["content-type"]
522this.dataReq=e,this.dataRes=t
523var i=n?Buffer.concat([]):"",a=this
524function o(){e.removeListener("data",r),e.removeListener("end",c),e.removeListener("close",s),a.dataReq=a.dataRes=i=null}function s(){o(),a.onError("data request connection closed prematurely")}function r(t){var o
525n?o=(i=Buffer.concat([i,t])).length:(i+=t,o=Buffer.byteLength(i)),o>a.maxHttpBufferSize&&(i=n?Buffer.concat([]):"",e.connection.destroy())}function c(){a.onData(i)
526t.writeHead(200,a.headers(e,{"Content-Type":"text/html","Content-Length":2})),t.end("ok"),o()}e.on("close",s),n||e.setEncoding("utf8"),e.on("data",r),e.on("end",c)},l.prototype.onData=function(e){c('received "%s"',e)
527var t=this
528a.decodePayload(e,function(e){if("close"===e.type)return c("got xhr close packet"),t.onClose(),!1
529t.onPacket(e)})},l.prototype.onClose=function(){this.writable&&this.send([{type:"noop"}]),i.prototype.onClose.call(this)},l.prototype.send=function(e){this.writable=!1,this.shouldClose&&(c("appending close packet to payload"),e.push({type:"close"}),this.shouldClose(),this.shouldClose=null)
530var t=this
531a.encodePayload(e,this.supportsBinary,function(n){var i=e.some(function(e){return e.options&&e.options.compress})
532t.write(n,{compress:i})})},l.prototype.write=function(e,t){c('writing "%s"',e)
533var n=this
534this.doWrite(e,t,function(){n.req.cleanup()})},l.prototype.doWrite=function(e,t,n){var i=this,a="string"==typeof e,o={"Content-Type":a?"text/plain; charset=UTF-8":"application/octet-stream"}
535if(this.httpCompression&&t.compress)if((a?Buffer.byteLength(e):e.length)<this.httpCompression.threshold)c(e)
536else{var r=s(this.req).encodings(["gzip","deflate"])
537r?this.compress(e,r,function(e,t){if(e)return i.res.writeHead(500),i.res.end(),void n(e)
538o["Content-Encoding"]=r,c(t)}):c(e)}else c(e)
539function c(e){o["Content-Length"]="string"==typeof e?Buffer.byteLength(e):e.length,i.res.writeHead(200,i.headers(i.req,o)),i.res.end(e),n()}},l.prototype.compress=function(e,t,n){c("compressing")
540var i=[],a=0
541p[t](this.httpCompression).on("error",n).on("data",function(e){i.push(e),a+=e.length}).on("end",function(){n(null,Buffer.concat(i,a))}).end(e)},l.prototype.doClose=function(e){c("closing")
542var t,n=this
543function i(){clearTimeout(t),e(),n.onClose()}this.dataReq&&(c("aborting ongoing data request"),this.dataReq.destroy()),this.writable?(c("transport writable - closing right away"),this.send([{type:"close"}]),i()):this.discarded?(c("transport discarded - closing right away"),i()):(c("transport not writable - buffering orderly close"),this.shouldClose=i,t=setTimeout(i,this.closeTimeout))},l.prototype.headers=function(e,t){t=t||{}
544var n=e.headers["user-agent"]
545return n&&(~n.indexOf(";MSIE")||~n.indexOf("Trident/"))&&(t["X-XSS-Protection"]="0"),this.emit("headers",t),t}},function(e,t,n){var i=n(111),a=n(92)
546e.exports=t={polling:function(e){return"string"==typeof e._query.j?new a(e):new i(e)},websocket:n(91)},t.polling.upgradesTo=["websocket"]},function(e,t){e.exports=require("querystring")},function(e,t){e.exports=require("net")},function(e,t){e.exports=require("stream")},function(e,t,n){var i=n(73),a=n(13).createClient,o=n(61),s=n(33),r=n(58)("socket.io-redis")
547e.exports=function(e,t){t=t||{},"object"==typeof e&&(t=e,e=null)
548var n=t.pubClient,p=t.subClient,l=t.key||"socket.io",u=t.requestsTimeout||5e3
549function d(){return e?a(e,t):a(t)}n||(n=d())
550p||(p=d())
551var f=i(6)
552function h(e){s.call(this,e),this.uid=f,this.prefix=l,this.requestsTimeout=u,this.channel=l+"#"+e.name+"#",this.requestChannel=l+"-request#"+this.nsp.name+"#",this.responseChannel=l+"-response#"+this.nsp.name+"#",this.requests={},this.customHook=function(e,t){t(null)},String.prototype.startsWith?this.channelMatches=function(e,t){return e.startsWith(t)}:this.channelMatches=function(e,t){return e.substr(0,t.length)===t},this.pubClient=n,this.subClient=p
553var t=this
554function i(e){t.emit("error",e)}p.psubscribe(this.channel+"*",function(e){e&&t.emit("error",e)}),p.on("pmessageBuffer",this.onmessage.bind(this)),p.subscribe([this.requestChannel,this.responseChannel],function(e){e&&t.emit("error",e)}),p.on("messageBuffer",this.onrequest.bind(this)),n.on("error",i),p.on("error",i)}return h.prototype.__proto__=s.prototype,h.prototype.onmessage=function(e,t,n){if(t=t.toString(),!this.channelMatches(t,this.channel))return r("ignore different channel")
555var i=t.slice(this.channel.length,-1)
556if(""!==i&&!this.rooms.hasOwnProperty(i))return r("ignore unknown room %s",i)
557var a,s=o.decode(n)
558return f===s.shift()?r("ignore same uid"):((a=s[0])&&void 0===a.nsp&&(a.nsp="/"),a&&a.nsp==this.nsp.name?(s.push(!0),void this.broadcast.apply(this,s)):r("ignore different namespace"))},h.prototype.onrequest=function(e,t){if(e=e.toString(),this.channelMatches(e,this.responseChannel))return this.onresponse(e,t)
559if(!this.channelMatches(e,this.requestChannel))return r("ignore different channel")
560var i,a=this
561try{i=JSON.parse(t)}catch(e){return void a.emit("error",e)}switch(r("received request %j",i),i.type){case c.clients:s.prototype.clients.call(a,i.rooms,function(e,t){if(e)a.emit("error",e)
562else{var o=JSON.stringify({requestid:i.requestid,clients:t})
563n.publish(a.responseChannel,o)}})
564break
565case c.clientRooms:s.prototype.clientRooms.call(a,i.sid,function(e,t){if(e)a.emit("error",e)
566else if(t){var o=JSON.stringify({requestid:i.requestid,rooms:t})
567n.publish(a.responseChannel,o)}})
568break
569case c.allRooms:var o=JSON.stringify({requestid:i.requestid,rooms:Object.keys(this.rooms)})
570n.publish(a.responseChannel,o)
571break
572case c.remoteJoin:if(!(p=this.nsp.connected[i.sid]))return
573p.join(i.room,function(){var e=JSON.stringify({requestid:i.requestid})
574n.publish(a.responseChannel,e)})
575break
576case c.remoteLeave:if(!(p=this.nsp.connected[i.sid]))return
577p.leave(i.room,function(){var e=JSON.stringify({requestid:i.requestid})
578n.publish(a.responseChannel,e)})
579break
580case c.remoteDisconnect:var p
581if(!(p=this.nsp.connected[i.sid]))return
582p.disconnect(i.close),o=JSON.stringify({requestid:i.requestid}),n.publish(a.responseChannel,o)
583break
584case c.customRequest:this.customHook(i.data,function(e){var t=JSON.stringify({requestid:i.requestid,data:e})
585n.publish(a.responseChannel,t)})
586break
587default:r("ignoring unknown request type: %s",i.type)}},h.prototype.onresponse=function(e,t){var n
588try{n=JSON.parse(t)}catch(e){return void this.emit("error",e)}var i=n.requestid
589if(i&&this.requests[i]){r("received response %j",n)
590var a=this.requests[i]
591switch(a.type){case c.clients:if(a.msgCount++,!n.clients||!Array.isArray(n.clients))return
592for(var o=0;o<n.clients.length;o++)a.clients[n.clients[o]]=!0
593a.msgCount===a.numsub&&(clearTimeout(a.timeout),a.callback&&process.nextTick(a.callback.bind(null,null,Object.keys(a.clients))),delete this.requests[i])
594break
595case c.clientRooms:clearTimeout(a.timeout),a.callback&&process.nextTick(a.callback.bind(null,null,n.rooms)),delete this.requests[i]
596break
597case c.allRooms:if(a.msgCount++,!n.rooms||!Array.isArray(n.rooms))return
598for(o=0;o<n.rooms.length;o++)a.rooms[n.rooms[o]]=!0
599a.msgCount===a.numsub&&(clearTimeout(a.timeout),a.callback&&process.nextTick(a.callback.bind(null,null,Object.keys(a.rooms))),delete this.requests[i])
600break
601case c.remoteJoin:case c.remoteLeave:case c.remoteDisconnect:clearTimeout(a.timeout),a.callback&&process.nextTick(a.callback.bind(null,null)),delete this.requests[i]
602break
603case c.customRequest:a.msgCount++,a.replies.push(n.data),a.msgCount===a.numsub&&(clearTimeout(a.timeout),a.callback&&process.nextTick(a.callback.bind(null,null,a.replies)),delete this.requests[i])
604break
605default:r("ignoring unknown request type: %s",a.type)}}else r("ignoring unknown request")},h.prototype.broadcast=function(e,t,i){if(e.nsp=this.nsp.name,!(i||t&&t.flags&&t.flags.local)){var a=o.encode([f,e,t]),c=this.channel
606t.rooms&&1===t.rooms.length&&(c+=t.rooms[0]+"#"),r("publishing message to channel %s",c),n.publish(c,a)}s.prototype.broadcast.call(this,e,t)},h.prototype.clients=function(e,t){"function"==typeof e&&(t=e,e=null),e=e||[]
607var a=this,o=i(6)
608n.send_command("pubsub",["numsub",a.requestChannel],function(i,s){if(i)return a.emit("error",i),void(t&&t(i))
609s=parseInt(s[1],10),r('waiting for %d responses to "clients" request',s)
610var p=JSON.stringify({requestid:o,type:c.clients,rooms:e}),l=setTimeout(function(){var e=a.requests[o]
611t&&process.nextTick(t.bind(null,new Error("timeout reached while waiting for clients response"),Object.keys(e.clients))),delete a.requests[o]},a.requestsTimeout)
612a.requests[o]={type:c.clients,numsub:s,msgCount:0,clients:{},callback:t,timeout:l},n.publish(a.requestChannel,p)})},h.prototype.clientRooms=function(e,t){var a=this,o=i(6),s=this.sids[e]
613if(s)t&&process.nextTick(t.bind(null,null,Object.keys(s)))
614else{var r=JSON.stringify({requestid:o,type:c.clientRooms,sid:e}),p=setTimeout(function(){t&&process.nextTick(t.bind(null,new Error("timeout reached while waiting for rooms response"))),delete a.requests[o]},a.requestsTimeout)
615a.requests[o]={type:c.clientRooms,callback:t,timeout:p},n.publish(a.requestChannel,r)}},h.prototype.allRooms=function(e){var t=this,a=i(6)
616n.send_command("pubsub",["numsub",t.requestChannel],function(i,o){if(i)return t.emit("error",i),void(e&&e(i))
617o=parseInt(o[1],10),r('waiting for %d responses to "allRooms" request',o)
618var s=JSON.stringify({requestid:a,type:c.allRooms}),p=setTimeout(function(){var n=t.requests[a]
619e&&process.nextTick(e.bind(null,new Error("timeout reached while waiting for allRooms response"),Object.keys(n.rooms))),delete t.requests[a]},t.requestsTimeout)
620t.requests[a]={type:c.allRooms,numsub:o,msgCount:0,rooms:{},callback:e,timeout:p},n.publish(t.requestChannel,s)})},h.prototype.remoteJoin=function(e,t,a){var o=this,s=i(6),r=this.nsp.connected[e]
621if(r)r.join(t,a)
622else{var p=JSON.stringify({requestid:s,type:c.remoteJoin,sid:e,room:t}),l=setTimeout(function(){a&&process.nextTick(a.bind(null,new Error("timeout reached while waiting for remoteJoin response"))),delete o.requests[s]},o.requestsTimeout)
623o.requests[s]={type:c.remoteJoin,callback:a,timeout:l},n.publish(o.requestChannel,p)}},h.prototype.remoteLeave=function(e,t,a){var o=this,s=i(6),r=this.nsp.connected[e]
624if(r)r.leave(t,a)
625else{var p=JSON.stringify({requestid:s,type:c.remoteLeave,sid:e,room:t}),l=setTimeout(function(){a&&process.nextTick(a.bind(null,new Error("timeout reached while waiting for remoteLeave response"))),delete o.requests[s]},o.requestsTimeout)
626o.requests[s]={type:c.remoteLeave,callback:a,timeout:l},n.publish(o.requestChannel,p)}},h.prototype.remoteDisconnect=function(e,t,a){var o=this,s=i(6),r=this.nsp.connected[e]
627if(r)return r.disconnect(t),void(a&&process.nextTick(a.bind(null,null)))
628var p=JSON.stringify({requestid:s,type:c.remoteDisconnect,sid:e,close:t}),l=setTimeout(function(){a&&process.nextTick(a.bind(null,new Error("timeout reached while waiting for remoteDisconnect response"))),delete o.requests[s]},o.requestsTimeout)
629o.requests[s]={type:c.remoteDisconnect,callback:a,timeout:l},n.publish(o.requestChannel,p)},h.prototype.customRequest=function(e,t){"function"==typeof e&&(t=e,e=null)
630var a=this,o=i(6)
631n.send_command("pubsub",["numsub",a.requestChannel],function(i,s){if(i)return a.emit("error",i),void(t&&t(i))
632s=parseInt(s[1],10),r('waiting for %d responses to "customRequest" request',s)
633var p=JSON.stringify({requestid:o,type:c.customRequest,data:e}),l=setTimeout(function(){var e=a.requests[o]
634t&&process.nextTick(t.bind(null,new Error("timeout reached while waiting for customRequest response"),e.replies)),delete a.requests[o]},a.requestsTimeout)
635a.requests[o]={type:c.customRequest,numsub:s,msgCount:0,replies:[],callback:t,timeout:l},n.publish(a.requestChannel,p)})},h.uid=f,h.pubClient=n,h.subClient=p,h.prefix=l,h.requestsTimeout=u,h}
636var c={clients:0,clientRooms:1,allRooms:2,remoteJoin:3,remoteLeave:4,customRequest:5,remoteDisconnect:6}},function(e,t,n){"use strict";(function(t){var i=n(8),a=n(0).readFileSync,o=n(2),s=n(0).existsSync,r=n(114),c=n(80).version,p=n(79),l=n(7).EventEmitter,u=n(34),d=n(75),f=n(33),h=n(16),m=n(6)("socket.io:server"),v=n(3)
637e.exports=x
638var g=void 0,y=void 0
639function x(e,t){if(!(this instanceof x))return new x(e,t)
640"object"==typeof e&&e instanceof Object&&!e.listen&&(t=e,e=null),t=t||{},this.nsps={},this.parentNsps=new Map,this.path(t.path||"/socket.io"),this.serveClient(!1!==t.serveClient),this.parser=t.parser||h,this.encoder=new this.parser.Encoder,this.adapter(t.adapter||f),this.origins(t.origins||"*:*"),this.sockets=this.of("/"),e&&this.attach(e,t)}x.prototype.checkRequest=function(e,t){var n=e.headers.origin||e.headers.referer
641if("null"!=n&&null!=n||(n="*"),n&&"function"==typeof this._origins)return this._origins(n,t)
642if(-1!==this._origins.indexOf("*:*"))return t(null,!0)
643if(n)try{var i=v.parse(n),a="https:"==i.protocol?443:80
644i.port=null!=i.port?i.port:a
645var o=~this._origins.indexOf(i.protocol+"//"+i.hostname+":"+i.port)||~this._origins.indexOf(i.hostname+":"+i.port)||~this._origins.indexOf(i.hostname+":*")||~this._origins.indexOf("*:"+i.port)
646return m("origin %s is %svalid",n,o?"":"not "),t(null,!!o)}catch(e){}t(null,!1)},x.prototype.serveClient=function(e){if(!arguments.length)return this._serveClient
647this._serveClient=e
648var i=function(e){var i=o.resolve(t,"./../../",e)
649return s(i)?i:n(74).resolve(e)}
650if(e&&!g){g=a(i("socket.io-client/dist/socket.io.js"),"utf-8")
651try{y=a(i("socket.io-client/dist/socket.io.js.map"),"utf-8")}catch(e){m("could not load sourcemap file")}}return this}
652var b={transports:"transports","heartbeat timeout":"pingTimeout","heartbeat interval":"pingInterval","destroy buffer size":"maxHttpBufferSize"}
653x.prototype.set=function(e,t){return"authorization"==e&&t?this.use(function(e,n){t(e.request,function(e,t){return e?n(new Error(e)):t?void n():n(new Error("Not authorized"))})}):"origins"==e&&t?this.origins(t):"resource"==e?this.path(t):b[e]&&this.eio[b[e]]?this.eio[b[e]]=t:console.error("Option %s is not valid. Please refer to the README.",e),this},x.prototype.checkNamespace=function(e,t,n){if(0===this.parentNsps.size)return n(!1)
654const i=this.parentNsps.keys(),a=()=>{let o=i.next()
655if(o.done)return n(!1)
656o.value(e,t,(t,i)=>{t||!i?a():n(this.parentNsps.get(o.value).createChild(e))})}
657a()},x.prototype.path=function(e){return arguments.length?(this._path=e.replace(/\/$/,""),this):this._path},x.prototype.adapter=function(e){if(!arguments.length)return this._adapter
658for(var t in this._adapter=e,this.nsps)this.nsps.hasOwnProperty(t)&&this.nsps[t].initAdapter()
659return this},x.prototype.origins=function(e){return arguments.length?(this._origins=e,this):this._origins},x.prototype.listen=x.prototype.attach=function(e,t){if("function"==typeof e)throw new Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.")
660if(Number(e)==e&&(e=Number(e)),"number"==typeof e){m("creating http server and binding to %d",e)
661var n=e;(e=i.Server(function(e,t){t.writeHead(404),t.end()})).listen(n)}if((t=t||{}).path=t.path||this.path(),t.allowRequest=t.allowRequest||this.checkRequest.bind(this),this.sockets.fns.length>0)return this.initEngine(e,t),this
662var a=this,o={type:h.CONNECT,nsp:"/"}
663return this.encoder.encode(o,function(n){t.initialPacket=n,a.initEngine(e,t)}),this},x.prototype.initEngine=function(e,t){m("creating engine.io instance with opts %j",t),this.eio=r.attach(e,t),this._serveClient&&this.attachServe(e),this.httpServer=e,this.bind(this.eio)},x.prototype.attachServe=function(e){m("attaching client serving req handler")
664var t=this._path+"/socket.io.js",n=this._path+"/socket.io.js.map",i=e.listeners("request").slice(0),a=this
665e.removeAllListeners("request"),e.on("request",function(o,s){if(0===o.url.indexOf(n))a.serveMap(o,s)
666else if(0===o.url.indexOf(t))a.serve(o,s)
667else for(var r=0;r<i.length;r++)i[r].call(e,o,s)})},x.prototype.serve=function(e,t){var n='"'+c+'"',i=e.headers["if-none-match"]
668if(i&&n==i)return m("serve client 304"),t.writeHead(304),void t.end()
669m("serve client source"),t.setHeader("Content-Type","application/javascript"),t.setHeader("ETag",n),t.writeHead(200),t.end(g)},x.prototype.serveMap=function(e,t){var n='"'+c+'"',i=e.headers["if-none-match"]
670if(i&&n==i)return m("serve client 304"),t.writeHead(304),void t.end()
671m("serve client sourcemap"),t.setHeader("Content-Type","application/json"),t.setHeader("ETag",n),t.writeHead(200),t.end(y)},x.prototype.bind=function(e){return this.engine=e,this.engine.on("connection",this.onconnection.bind(this)),this},x.prototype.onconnection=function(e){return m("incoming connection with id %s",e.id),new p(this,e).connect("/"),this},x.prototype.of=function(e,t){if("function"==typeof e||e instanceof RegExp){const n=new d(this)
672return m("initializing parent namespace %s",n.name),"function"==typeof e?this.parentNsps.set(e,n):this.parentNsps.set((t,n,i)=>i(null,e.test(t)),n),t&&n.on("connect",t),n}"/"!==String(e)[0]&&(e="/"+e)
673var n=this.nsps[e]
674return n||(m("initializing namespace %s",e),n=new u(this,e),this.nsps[e]=n),t&&n.on("connect",t),n},x.prototype.close=function(e){for(var t in this.nsps["/"].sockets)this.nsps["/"].sockets.hasOwnProperty(t)&&this.nsps["/"].sockets[t].onclose()
675this.engine.close(),this.httpServer?this.httpServer.close(e):e&&e()},Object.keys(l.prototype).filter(function(e){return"function"==typeof l.prototype[e]}).concat(["to","in","use","send","write","clients","compress","binary"]).forEach(function(e){x.prototype[e]=function(){return this.sockets[e].apply(this.sockets,arguments)}}),u.flags.forEach(function(e){Object.defineProperty(x.prototype,e,{get:function(){return this.sockets.flags=this.sockets.flags||{},this.sockets.flags[e]=!0,this}})}),x.listen=x}).call(this,"/")},function(e,t){e.exports=require("readline")},function(e,t,n){"use strict"
676n.r(t)
677var i=n(2)
678var a=n(0),o=n(1)
679n(54)
680Object(o.promisify)(a.stat)
681const s=Object(o.promisify)(a.lstat),r=(Object(o.promisify)(a.rename),Object(o.promisify)(a.unlink),Object(o.promisify)(a.access),Object(o.promisify)(a.mkdir)),c=(Object(o.promisify)(a.rmdir),Object(o.promisify)(a.readdir),Object(o.promisify)(a.readFile)),p=Object(o.promisify)(a.writeFile),l=(a.copyFile?Object(o.promisify)(a.copyFile):(()=>{Object(o.promisify)(a.open),Object(o.promisify)(a.fstat)})(),i.sep,"File"),u="Directory",d="Error",f=e=>e.isDirectory()?u:e.isFile()?l:e.isSymbolicLink()?"SymbolicLink":"Other",h=e=>d,m=e=>s(e).then(f,h),v=async(e,t)=>{if(void 0===t&&(t=await m(e)),t===u)return
682if(t!==d)throw new Error("[createDirectory] path already taken by non-directory")
683const n=Object(i.dirname)(e),a=await m(n)
684a!==u&&await v(n,a),t!==u&&await r(e)},g=(e,t,...n)=>{try{return e[t](...n)}catch(e){}},y=(e,...t)=>{let n,i
685try{n=e(...t)}catch(e){i=e}return{result:n,error:i}},x=async(e,...t)=>{let n,i
686try{n=await e(...t)}catch(e){i=e}return{result:n,error:i}},b=({queueLengthThreshold:e,...t})=>(({outputStream:e,queueLengthThreshold:t=1024})=>{const n=[],i=()=>{n.push("")
687const e=n.join("\n")
688return n.length=0,e},a=()=>{0!==n.length&&e.write(i())}
689return{add:e=>{n.push(e),n.length>t&&a()},save:a,end:()=>{0!==n.length&&e.write(i()),e.end()}}})({outputStream:(({pathOutputFile:e,flag:t="w",mode:n=438,onError:i=(e=>{throw console.warn(e),e})})=>{let o=Object(a.openSync)(e,t,n),s=[],r=[]
690const c=e=>e?i(e):s.length=0,p=e=>o&&Object(a.write)(o,e,c)
691return{write:e=>{e&&(r.push(e),0===s.length&&([s,r]=[r,[]],process.nextTick(p,s.join(""))))},end:()=>{const e=[...s,...r]
6920!==e.length&&Object(a.writeSync)(o,e.join("")),Object(a.closeSync)(o),o=null,r.length=s.length=0}}})(t),queueLengthThreshold:e}),w=[{event:"exit",listener:e=>S({eventType:"exit",code:e})},{event:"uncaughtException",listener:e=>E({eventType:"uncaughtException",error:e})},{event:"unhandledRejection",listener:(e,t)=>E({eventType:"unhandledRejection",error:e,promise:t})},...["SIGINT","SIGHUP","SIGQUIT","SIGTERM"].map(e=>({event:e,listener:()=>E({eventType:"signal",signalEventType:e})}))],k=new Set,_=new Set,S=e=>{for(const t of Array.from(k))y(t,e)},E=async e=>{q()
693for(const t of Array.from(_))await x(t,e)
694S(e),process.exit(e.code||(e.error?-1:0))}
695let C=!1
696const O=()=>{C=!0,w.forEach(({event:e,listener:t})=>process.on(e,t))},q=()=>{C=!1,w.forEach(({event:e,listener:t})=>process.removeListener(e,t))},j=(...e)=>{e.forEach(e=>k.add(e)),!C&&O()},A=()=>{}
697var T=n(5),N=n(8),B=n(14)
698const L=(()=>"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0)(),I=(Math.floor(.001*Date.now()),(()=>{try{const e=L.performance.now
699if(e()<=e())return e}catch(e){}try{const e=L.performance.now.bind(L.performance)
700if(e()<=e())return e}catch(e){}try{const e=()=>{const[e,t]=L.process.hrtime()
701return 1e3*e+1e-6*t}
702if(e()<=e())return e}catch(e){}return Date.now})()),[R,P]=L.requestAnimationFrame?[L.requestAnimationFrame,L.cancelAnimationFrame]:[e=>setTimeout(e,1e3/60),clearTimeout]
703class z{constructor(){this.clear()}get length(){return this.nodeSet.size}clear(){this.head=z.createNode(null),this.tail=z.createNode(null),this.head.next=this.tail,this.tail.prev=this.head,this.nodeSet=new Set}insertAfter(e,t){const{next:n}=t
704t.next=n.prev=e,e.prev=t,e.next=n,this.nodeSet.add(e)}insertBefore(e,t){const{prev:n}=t
705t.prev=n.next=e,e.prev=n,e.next=t,this.nodeSet.add(e)}remove(e){const{prev:t,next:n}=e
706t.next=n,n.prev=t,e.prev=e.next=null,this.nodeSet.delete(e)}removeBetween(e,t){const{prev:n}=e,{next:i}=t
707n.next=i,i.prev=n,e.prev=t.next=null
708let a=e
709for(;a;)this.nodeSet.delete(a),a=a.next}forEach(e){let t=this.head.next,n=0
710for(;t!==this.tail;)e(t,n),t=t.next,n++}forEachReverse(e){let t=this.tail.prev,n=this.nodeSet.size-1
711for(;t!==this.head;)e(t,n),t=t.prev,n--}reverse(){let e=this.head.next
712for(;e!==this.tail;){const{prev:t,next:n}=e
713e.prev=n,e.next=t,e=n}const{next:t}=this.head,{prev:n}=this.tail
714this.head.next=n,this.tail.prev=t,n.prev=this.head,t.next=this.tail}setFirst(e){if(e===this.head.next)return
715const{prev:t,next:n}=e
716t.next=n,n.prev=t,e.prev=this.head,e.next=this.head.next,this.head.next=e}setLast(e){if(e===this.tail.prev)return
717const{prev:t,next:n}=e
718t.next=n,n.prev=t,e.prev=this.tail.prev,e.next=this.tail,this.tail.prev=e}push(e){return this.insertBefore(e,this.tail)}pop(){return this.remove(this.tail.prev)}unshift(e){return this.insertAfter(e,this.head)}shift(){return this.remove(this.head.next)}}var F,$,U
719U=((e,t=null,n=null)=>({value:e,prev:t,next:n})),($="createNode")in(F=z)?Object.defineProperty(F,$,{value:U,enumerable:!0,configurable:!0,writable:!0}):F[$]=U
720const M=(e,t,n,i)=>({...z.createNode(t),key:e,size:n,expireAt:i})
721const D=Number.isInteger,H=Array.isArray,V=e=>{const t=typeof e
722let n
723if("function"===t)n="() => { ... }"
724else try{n=JSON.stringify(e)}catch(e){n="{ ... }"}return`<${t}> ${n}`},J=e=>`${(100*e).toFixed(2)}%`,W=(Math.pow(10,-12),Math.pow(10,-9),Math.pow(10,-6),Math.pow(10,-3),Math.pow(10,0),Math.pow(10,3),Math.pow(10,6),Math.pow(10,9),Math.pow(10,12),Math.pow(10,15),Math.pow(10,18),e=>{const t=.75*Math.abs(e)
725return t<1e3?`${Math.floor(e)}ms`:t<6e4?`${(e/1e3).toFixed(2)}s`:t<36e5?`${(e/6e4).toFixed(2)}m`:t<864e5?`${(e/36e5).toFixed(2)}h`:`${(e/864e5).toFixed(2)}d`}),G=Math.pow(2,10),Y=Math.pow(2,20),K=Math.pow(2,30),Z=Math.pow(2,40),Q=e=>{const t=.75*Math.abs(e)
726return t<G?`${Math.floor(e)}`:t<Y?`${(e/G).toFixed(2)}Ki`:t<K?`${(e/Y).toFixed(2)}Mi`:t<Z?`${(e/K).toFixed(2)}Gi`:`${(e/Z).toFixed(2)}Ti`},X=(e,t=" ")=>`${t}${e.replace(/\n/g,`\n${t}`)}`,ee=(e,t,n)=>{throw new Error(`[verify|${e}]${t?` ${t};`:""} ${n}`)},te=(e,t)=>(n,i)=>t(n)||ee(e,i,`get: ${V(n)}`),ne=te("String",e=>"string"==typeof e),ie=te("Number",e=>"number"==typeof e),ae=te("Integer",D),oe=(te("BasicObject",e=>"object"==typeof e&&null!==e&&!Array.isArray(e)),te("Array",H),(e,t,n)=>((e,t)=>H(e)&&e.length===t)(e,t)||ee("ArrayLength",n,`expect length: ${t}, get: ${e.length}`))
727te("Function",e=>"function"==typeof e)
728var se=n(3)
729const re=e=>{if(e.response.finished)return e
730const{error:t}=e.getState()
731!e.response.headersSent&&e.response.writeHead(t?500:400),e.response.end()},ce=({url:e,method:t,headers:{host:n=""},socket:{remoteAddress:i,remotePort:a}})=>`[${t}] ${n}${e} (${i}:${a})`,pe={protocol:"https:",hostname:"localhost",port:443,isSecure:!0,secureOptions:T.constants.SSL_OP_NO_SSLv3|T.constants.SSL_OP_NO_SSLv2},le={protocol:"http:",hostname:"localhost",port:80,isSecure:!1},ue=new Set([pe.protocol,le.protocol]),de=re,fe=async({protocol:e="http:",hostname:t="localhost",port:n,fileSSLKey:i,fileSSLCert:a,fileSSLChain:o,fileSSLDHParam:s})=>{const r="https:"===e
732return(({protocol:e,...t})=>{if(!ue.has(e))throw new Error(`[createServer] invalid protocol: ${e}`);(t={..."https:"===e?pe:le,...t}).baseUrl=`${e}//${t.hostname}:${t.port}`
733const n=t.isSecure?Object(B.createServer)(t):Object(N.createServer)()
734return t.isSecure&&(e=>{const t=(({valueSizeSumMax:e,valueSizeSingleMax:t=Math.max(.05*e,1)})=>{const{clear:n,subscribe:i,unsubscribe:a,send:o}=(()=>{let e=new Set
735return{clear:()=>e.clear(),subscribe:t=>{e.add(t)},unsubscribe:t=>{e.delete(t)},send:t=>e.forEach(e=>e(t))}})(),s=new Map,r=new z
736let c=0
737const p=e=>{s.set(e.key,e),r.unshift(e),c+=e.size,o({type:"add",key:e.key,payload:e.value})},l=e=>{s.delete(e.key),r.remove(e),c-=e.size,o({type:"delete",key:e.key,payload:e.value})}
738return{clearHub:n,subscribe:i,unsubscribe:a,getSize:()=>s.size,clear:()=>s.forEach(l),set:(n,i,a=1,o=Date.now()+6e4)=>{const u=s.get(n)
739if(u&&l(u),!(a>t)){for(;a+c>e;)l(r.tail.prev)
740p(M(n,i,a,o))}},get:(e,t=Date.now())=>{const n=s.get(e)
741if(n)return n.expireAt<=t?l(n):(r.setFirst(n),n.value)},touch:(e,t=Date.now()+6e4)=>{const n=s.get(e)
742if(n)return n.expireAt=t,r.setFirst(n),n.value},delete:e=>{const t=s.get(e)
743return t&&l(t),t&&t.value},packList:()=>{const e=[]
744return r.forEachReverse(({key:t,value:n,size:i,expireAt:a})=>e.push({key:t,value:n,size:i,expireAt:a})),e},parseList:(e,t=Date.now())=>e.forEach(({key:e,value:n,size:i,expireAt:a})=>{const o=M(e,n,i,a)
745o.expireAt<=t?l(o):p(o)})}})({valueSizeSumMax:4096})
746e.on("newSession",(e,n,i)=>{t.set(e.toString("hex"),n,1,Date.now()+6e5),i()}),e.on("resumeSession",(e,n)=>{n(null,t.get(e.toString("hex"))||null)})})(n),{server:n,option:t,start:()=>{!n.listening&&n.listen(t.port,t.hostname)},stop:()=>{n.listening&&n.close()}}})({protocol:e,hostname:t,port:n,key:r&&i?await c(i):null,cert:r&&a?await c(a):null,ca:r&&o?await c(o):null,dhparam:r&&s?await c(s):null})},he={name:"",nameENV:"",nameJSON:"",shortName:"",aliasNameList:[],optional:!1,argumentCount:"0",argumentLengthMin:0,argumentLengthMax:0,argumentListNormalize:e=>e,argumentListVerify:e=>{},description:"",extendFormatList:[]},me=/^(\d+)(-)?(\d+)?$/,ve=()=>!0,ge=(e,t,n)=>{e={...he,...e},!ye.test(e.name)&&be(`name '${e.name}'`,e,t,n),e.shortName&&!xe.test(e.shortName)&&be(`shortName '${e.shortName}'`,e,t,n)
747{const i=e.aliasNameList.findIndex(e=>!ye.test(e));-1!==i&&be(`aliasNameList #${i} '${e.aliasNameList[i]}'`,e,t,n)}{!me.test(e.argumentCount)&&be(`argumentCount '${e.argumentCount}'`,e,t,n)
748const[,i,,a]=me.exec(e.argumentCount)
749a&&parseInt(a)<parseInt(i)&&be(`argumentCount '${e.argumentCount}'`,e,t,n)}return e.extendFormatList.length&&(e.extendFormatList=e.extendFormatList.map((t,n)=>ge(t,n,e))),e},ye=/^[A-Za-z][A-Za-z0-9-]*$/,xe=/^[A-Za-z]$/,be=(e,t,n,i)=>{throw new Error(`[Format] ${Ee(t)} #${n}${i?` of ${Ee(i)}`:""} | ${e}`)},we=/^--([A-Za-z][A-Za-z0-9-]*)(=(.*))?$/,ke=/^-([A-Za-z]+)(=(.*))?$/,_e=(e,t="invalid option")=>{throw new Error(`[ParseArgv] unexpected '${e}', ${t}`)},Se=(e,t)=>{throw new Error(`[Process] ${Ee(t)} | ${e}`)},Ee=({name:e,shortName:t,aliasNameList:n})=>`${e}${n.length?`|${n.join("|")}`:""}${t?` [-${t}]`:""}`,Ce=e=>Be(je(e,`--${e.name}${e.aliasNameList.length?` --${e.aliasNameList.join(" --")}`:""}`,e.shortName&&`-${e.shortName}`),e.description&&Le(e.description,4),Ae(e.extendFormatList,Ce,2)),Oe=e=>Be(`export ${e.nameENV}="${je(e)}"`,Ae(e.extendFormatList,Oe,0)),qe=e=>Be(`"${e.nameJSON}": [ "${je(e)}" ],`,Ae(e.extendFormatList,qe,0)),je=({optional:e,argumentLengthMin:t,argumentLengthMax:n},...i)=>[...i,e&&(e===ve?"[OPTIONAL]":"[OPTIONAL-CHECK]"),(t||n)&&`[ARGUMENT=${Te(t,n)}]`].filter(Boolean).join(" "),Ae=(e,t,n)=>e.length&&Le(Ne(e,t),n),Te=(e,t)=>`${e}${t===1/0?"+":t>e?`-${t}`:""}`,Ne=(e,t)=>Be(...e.map(t)),Be=(...e)=>e.filter(Boolean).join("\n"),Le=(e,t=2)=>t?X(e," ".repeat(t)):e,Ie=e=>oe(e,1,"single argument expected"),Re=(e,t)=>n=>{Ie(n),e(n[0],`single ${t} argument expected`)},Pe=(e,t)=>n=>{n.forEach((n,i)=>e(n,`${t} expected at #${i}`))},ze=Pe(ne,"String"),Fe=Pe(ie,"Number"),$e=Pe(ae,"Integer"),Ue=e=>e.map(String),Me=e=>e.map(Number),De=e=>e.map(parseInt),He=(e,t=(e=>e),n=(()=>{}),i="",a=!1)=>({argumentCount:e,argumentListNormalize:t,argumentListVerify:n,description:i,optional:a}),Ve=(e,t)=>n=>(t(n),He(1,e,(e=>t=>{Ie(t),((e,t,n)=>((e,t)=>t.includes(e))(e,t)||ee("OneOf",void 0,`expect one of: [${t}], get: ${V(e)}`))(t[0],e)})(n),`one of:\n ${((e,t)=>{const n=[]
750for(let t=0,i=e.length;t<i;t+=4)n.push(e.slice(t,t+4))
751return n})(n).map(e=>e.join(" ")).join("\n ")}`)),Je={SingleString:He(1,Ue,Re(ne,"String")),SingleNumber:He(1,Me,Re(ie,"Number")),SingleInteger:He(1,De,Re(ae,"Integer")),AllString:He("1-",Ue,ze),AllNumber:He("1-",Me,Fe),AllInteger:He("1-",De,$e),OneOfString:Ve(Ue,ze),OneOfNumber:Ve(Me,Fe),OneOfInteger:Ve(De,$e),BooleanFlag:He("0-",()=>[!0],void 0,"set to enable",!0),Any:He("0-",void 0,void 0,"optional",!0),Config:{...He(1,Ue,Re(ne,"String"),"# from JSON: set to 'path/to/config.json'\n# from ENV: set to 'env'",!0),name:"config",shortName:"c"}},We={...Je,SinglePath:{...Je.SingleString,isPath:!0},AllPath:{...Je.AllString,isPath:!0},Config:{...Je.SingleString,description:"# from JSON: set to 'path/to/config.json'\n# from ENV: set to 'env'",optional:!0,name:"config",shortName:"c"}},Ge=(e,t)=>(Object.values(e).forEach(({format:{isPath:e},argumentList:n})=>e&&n.forEach((e,a)=>n[a]=Object(i.resolve)(t,e))),e),{SingleString:Ye,SingleInteger:Ke,SinglePath:Ze,BooleanFlag:Qe}=We,{SingleString:Xe,SingleInteger:et,BooleanFlag:tt,Config:nt}=We,it={prefixENV:"imock-socket",formatList:[nt,{...tt,name:"help",shortName:"h"},{...tt,name:"version",shortName:"v"},((e=[])=>({...Ye,optional:!0,name:"hostname",shortName:"H",extendFormatList:[{...Ke,name:"port",shortName:"P"},{...Qe,name:"https",shortName:"S",extendFormatList:[{...Ze,name:"file-SSL-key"},{...Ze,name:"file-SSL-cert"},{...Ze,name:"file-SSL-chain"},{...Ze,name:"file-SSL-dhparam"}]},{...Ze,optional:!0,name:"path-log",extendFormatList:[{...Ye,optional:!0,name:"prefix-log-file"}]},{...Ze,optional:!0,name:"file-pid",extendFormatList:[{...Qe,name:"pid-ignore-exist"}]},...e]}))([{...et,optional:!0,name:"port-admin-server"},{...Xe,optional:!0,name:"socket-path"},{...Xe,name:"url-server-socket-action"},{...tt,name:"cluster",shortName:"r",extendFormatList:[{...Xe,optional:!0,name:"redis-host"},{...et,optional:!0,name:"redis-port"}]},{...tt,name:"dumb",description:"DUMB mode: allow client broadcast message to other client"}])]},{parseOption:at,formatUsage:ot}=(e=>{const{parseCLI:t,parseENV:n,parseJSON:a,processOptionMap:o,formatUsage:s}=(({formatList:e,prefixENV:t="",prefixJSON:n=""})=>{const i=new Map,a=new Map,o=new Map,s=new Map,r=new Set,c=new Set,p=(e,l,u)=>{const{name:d,shortName:f,aliasNameList:h,argumentCount:m}=e,[,v,g,y]=me.exec(m.toString())
752e.nameENV=(t?`${t}-${d}`:d).split("-").join("_").toUpperCase(),e.nameJSON=((e,t=1)=>e.reduce((e,n,i)=>i>=t?e+n[0].toUpperCase()+n.slice(1):e+n,""))((n?`${n}-${d}`:d).split("-")),e.optional=((e,t)=>("function"!=typeof e&&(e=!!e&&ve),t?(n,i,a)=>e&&e(n,i,a)||!i.has(t):e))(e.optional,u),e.argumentLengthMin=parseInt(v),e.argumentLengthMax=g?y?parseInt(y):1/0:e.argumentLengthMin,i.has(d)&&be(`duplicate name '${d}'`,e,l,u),i.set(d,e),f&&a.has(f)&&be(`duplicate shortName '${f}'`,e,l,u),f&&a.set(f,e)
753{const t=h.find(e=>i.has(e))
754t&&be(`duplicate aliasName '${t}'`,e,l,u),h.forEach(t=>i.set(t,e))}o.set(e.nameENV,e),s.set(e.nameJSON,e),e.optional?e.optional!==ve&&c.add({format:e,checkOptional:e.optional}):r.add(e),e.extendFormatList.forEach((t,n)=>p(t,n,e))}
755return(e=e.map((e,t)=>ge(e,t,null))).forEach((e,t)=>p(e,t,null)),{parseCLI:(e=>(t,n={})=>e(t).reduce((e,{format:t,argumentList:n})=>(e[t.name]?e[t.name].argumentList.push(...n):e[t.name]={format:t,argumentList:n,source:"CLI"},e),n))(((e,t)=>n=>{const i=[],a=()=>i[i.length-1].argumentList
756for(let o=0,s=n.length;o<s;o++){const s=n[o]
757if(we.test(s)){const[,t,,n]=we.exec(s),o=e.get(t)
758!o&&_e(t),i.push({format:o,argumentList:[]}),n&&a().push(n)}else if(ke.test(s)){const[,e,,n]=ke.exec(s)
759e.split("").forEach(n=>{const a=t.get(n)
760!a&&_e(n,`from '${e}'`),i.push({format:a,argumentList:[]})}),n&&a().push(n)}else!i.length&&_e(s,"no leading option found"),"--"===s?a().push(...n.slice(o)):a().push(s)}return i})(i,a)),parseENV:(e=>(t,n={})=>(e.forEach((e,i)=>{let a=t[i]
761if(a){try{a=JSON.parse(a)}catch(e){}n[e.name]={format:e,argumentList:Array.isArray(a)?a:[a],source:"ENV"}}}),n))(o),parseJSON:(e=>(t,n={})=>(e.forEach((e,i)=>{const a=t[i]
762a&&(n[e.name]={format:e,argumentList:Array.isArray(a)?a:[a],source:"JSON"})}),n))(s),processOptionMap:((e,t)=>(n,i)=>{const a=new Set
763return Object.entries(n).forEach(([e,t])=>{const{format:n,argumentList:o}=t
764n.argumentLengthMin>o.length&&Se(`expected ${n.argumentLengthMin-o.length} more argument`,n),n.argumentLengthMax<o.length&&Se(`expected ${o.length-n.argumentLengthMax} less argument`,n),t.argumentList=n.argumentListNormalize(o,i),n.argumentListVerify(t.argumentList,i),a.add(n)}),e.forEach(e=>!a.has(e)&&Se("non-optional option",e)),t.forEach(({format:e,checkOptional:t})=>!t(n,a,e)&&!a.has(e)&&Se("non-optional option",e)),n})(r,c),formatUsage:(t,n=!1)=>Be(t&&`Message:\n${Le(t.toString())}`,`CLI Usage:\n${Le((e=>Ne(e,Ce))(e))}`,!n&&`ENV Usage:\n${Le((e=>Be('"',Le(`#!/usr/bin/env bash\n${Ne(e,Oe)}`),'"'))(e))}`,!n&&`JSON Usage:\n${Le((e=>Be("{",Le(Ne(e,qe)),"}"))(e))}`)}})(e)
765return{parseOption:async()=>(e=>{const t=t=>e[t]?e[t].argumentList:void 0,n=(e,n)=>{const i=t(e)
766if(!i)throw new Error(`[getOption] expecting option ${e}`)
767if(void 0!==n&&i.length!==n)throw new Error(`[getOption] expecting option ${e} has ${n} value instead of ${i.length}`)
768return i}
769return{optionMap:e,getOptionOptional:t,getOption:n,getSingleOptionOptional:t=>e[t]?e[t].argumentList[0]:void 0,getSingleOption:e=>n(e,1)[0]}})(await(async({parseCLI:e,parseENV:t,parseJSON:n,processOptionMap:a})=>{const o=Ge(e(process.argv.slice(2)),process.cwd()),s=o.config&&o.config.argumentList.length&&o.config.argumentList[0]
770return a({...s?"env"===s?Ge(t(process.env),process.cwd()):Ge(n(JSON.parse(await c(s,"utf8"))),Object(i.dirname)(s)):null,...o})})({parseCLI:t,parseENV:n,parseJSON:a,processOptionMap:o})),formatUsage:s}})(it)
771var st=n(53),rt=n.n(st),ct=n(52),pt=n.n(ct),lt=n(9)
772const ut=e=>new Promise((t,n)=>{const i=[]
773e.on("error",n),e.on("data",e=>i.push(e)),e.on("end",()=>{e.removeListener("error",n),t(Buffer.concat(i))})}),dt=(e,t)=>new Promise((n,i)=>{e.on("error",i),e.write(t,()=>{e.removeListener("error",i),n()})}),ft=1e4,ht=e=>`room-${Buffer.from(e).toString("base64")}`,mt=e=>`user-${Buffer.from(e).toString("base64")}`,vt=e=>`project-${Buffer.from(e).toString("base64")}`,gt=(e,{type:t="",payload:n={},cookie:i=""})=>(async(e,t={})=>{const{method:n,headers:i,body:a,timeout:o=ft}=t,s={...(({protocol:e,hostname:t,hash:n,search:i,pathname:a,href:o,port:s,username:r,password:c})=>{const p={protocol:e,hostname:t,hash:n,search:i,pathname:a,href:o,path:`${a}${i}`}
774return""!==s&&(p.port=Number(s)),(r||c)&&(p.auth=`${r}:${c}`),p})(new se.URL(e)),method:n,headers:{"accept-encoding":"gzip",...i},timeout:o},r=await((e,t=null)=>new Promise((n,i)=>{const a=("https:"===e.protocol?B.request:N.request)(e,n),o=t=>{a.destroy(),t.option=e,i(t)}
775a.on("timeout",()=>o(new Error("request timeout"))),a.on("error",o),a.end(t)}))(s,a),c=r.statusCode,p=c>=200&&c<300
776let l,u=!1
777process.nextTick(()=>{l||(r.destroy(),u=!0)})
778const d=async()=>{if(void 0===l){if(u)throw new Error("[fetch] data already dropped, should call receive data immediately")
779l=ut("gzip"===r.headers["content-encoding"]?r.pipe(Object(lt.createGunzip)()):r)}return l},f=()=>d().then(e=>e.toString())
780return{status:c,ok:p,buffer:d,text:f,json:()=>f().then(e=>JSON.parse(e))}})(e,{method:"POST",headers:{cookie:i},body:JSON.stringify({type:t,payload:n})}).then(e=>e.ok&&e.text()).then(e=>({responseText:e,error:null})).catch(e=>({responseText:"",error:e})),yt={serveClient:!1,transports:["websocket"],pingInterval:25e3,pingTimeout:5e3,upgradeTimeout:1e4,cookie:!1},xt=({socket:e,tag:t,logger:n})=>{e.on("disconnect",e=>{n.add("disconnect",t,e)}),e.on("error",e=>{n.add("error",t,e)}),e.on("request-close",()=>{n.add("request-close",t),e.disconnect(!0)})},bt=(e,{tag:t,userId:n,isAllowRequest:i,urlServerSocketAction:a})=>{e.join(mt(n)),e.on("join-projects",async({projectCidList:t=[]},i)=>{const{error:o}=await gt(a,{type:"verify-user-project",payload:{userId:n,projectCidList:t}})
781o||(t.forEach(t=>e.join(vt(t))),i("done"))}),e.on("leave-projects",({projectCidList:t=[]},n)=>{t.forEach(t=>e.leave(vt(t))),n("done")}),i&&e.on("request-batch-save",async({batchSaveQueue:e=[]},t)=>{const{responseText:i,error:o}=await gt(a,{type:"request-batch-save",payload:{userId:n,batchSaveQueue:e}})
782t({responseText:i,error:o&&o.toString()})})},wt=(e,{tag:t,userId:n})=>{e.on("join-rooms",async({roomList:t=[]},n)=>{t.forEach(t=>e.join(ht(t))),n("done")}),e.on("leave-rooms",({roomList:t=[]},n)=>{t.forEach(t=>e.leave(ht(t))),n("done")}),e.on("emit-by-rooms",({roomList:t=[],eventName:n,eventData:i})=>{t.reduce((e,t)=>e.to(ht(t)),e).emit(n,i)})},kt=["application/javascript:js;mjs","application/json:json","application/pdf:pdf","application/xml:xml","audio/midi:mid;midi","audio/mpeg:mp3","audio/ogg:ogg","audio/wav:wav","audio/webm:weba","audio/x-flac:flac","font/ttf:ttf","font/woff:woff","font/woff2:woff2","image/bmp:bmp","image/gif:gif","image/jpeg:jpeg;jpg","image/png:png","image/svg+xml:svg","image/webp:webp","image/x-icon:ico","text/css:css","text/csv:csv","text/html:html;htm","text/plain:txt;text;conf;log;ini","text/rtf:rtf","text/xml:xml","video/mp4:mp4;mp4v;mpg4","video/mpeg:mpeg;mpg","video/webm:webm","video/x-flv:flv","video/x-ms-wmv:wmv","video/x-msvideo:avi"],_t="application/octet-stream",St=kt.reduce((e,t)=>{const[n,i]=t.split(":")
783return i.split(";").forEach(t=>e[t]=n),e},{})
784kt.reduce((e,t)=>{const[n,i]=t.split(":")
785return e[n]=i.split(";"),e},{})
786n(51)
787const Et=Object(o.promisify)(lt.gzip),Ct=(e,{object:t,entityTag:n})=>((e,{buffer:t,entityTag:n,type:i=_t,length:a=t.length})=>((e,t,n,i)=>{t&&e.response.setHeader("etag",t)
788const a=!t||!e.request.headers["if-none-match"]||!e.request.headers["if-none-match"].includes(t)
789return a?e.response.writeHead(200,{"content-type":n,"content-length":i}):e.response.writeHead(304,{"content-type":n}),a})(e,n,i,a)&&a&&dt(e.response,t))(e,{buffer:Buffer.from(JSON.stringify(t)),type:St.json,entityTag:n}),Ot=(e,t)=>void 0===e[t]?e[t]={}:e[t],qt={GET:"/GET",POST:"/POST",PUT:"/PUT",PATCH:"/PATCH",DELETE:"/DELETE",HEAD:"/HEAD",OPTIONS:"/OPTIONS",CONNECT:"/CONNECT",TRACE:"/TRACE"},jt=(e,t="/",n="GET",i)=>{if(Array.isArray(t))return t.reduce((t,a)=>jt(e,a,n,i),e)
790if(Array.isArray(n))return n.reduce((n,a)=>jt(e,t,a,i),e)
791const{routeNode:a,paramNameList:o}=((e,t)=>{const n=[]
792return{routeNode:e=t.split("/").reduce((e,i)=>{if("*"===i)return n.push("/*"),Ot(e,"/*")
793if(":"===i[0]){const a=i.slice(1)
794if(!a||n.includes(a))throw new Error(`[parseRouteToMap] invalid frag [${i}] for route: ${t}`)
795return n.push(a),Ot(e,"/:PARAM")}return Ot(e,i)},e),paramNameList:n}})(e,t)
796if(!qt[n])throw new Error(`[appendRouteMap] invalid method [${n}] for route: ${t}`)
797if(a[qt[n]])throw new Error(`[appendRouteMap] duplicate method [${n}] for route: ${t}`)
798if("function"!=typeof i)throw new Error(`[appendRouteMap] invalid routeResponder for route: ${t}`)
799return a[qt[n]]={route:t,paramNameList:o,routeResponder:i},e}
800var At=n(4)
801const Tt=()=>({platform:Object(At.platform)(),arch:Object(At.arch)(),release:Object(At.release)()}),Nt=()=>Object(At.cpus)()||[{model:"N/A",speed:"N/A",times:{user:0,nice:0,sys:0,idle:0,irq:0}}],Bt=()=>({total:Object(At.totalmem)(),free:Object(At.freemem)()}),Lt=()=>({hostname:Object(At.hostname)(),networkInterface:Object(At.networkInterfaces)()}),It=()=>({uptime:1e3*Object(At.uptime)(),loadAverageList:Object(At.loadavg)()}),Rt=()=>({platform:Tt(),processor:Nt(),memory:Bt(),network:Lt(),activity:It()}),Pt=e=>({isTTY:Boolean(process[e].isTTY)}),zt=({socketIoServerUser:e,isDumbEnabled:t=!1},{server:n,option:i,logger:a})=>{const o=e.of("/"),s=(e=>t=>{const{time:n,error:i}=t.getState()
802e(ce(t.request),"|",i?"[ERROR]":"[END]",W(I()-n),t.response.statusCode,i?i.stack||i:"")})(a.add),r=e=>async t=>(await e(JSON.parse(await ut(t.request))),((e,{statusCode:t=500,headerMap:n})=>{if(e.response.finished)return e
803!e.response.headersSent&&e.response.writeHead(t,n),e.response.end()})(t,{statusCode:200})),c=r(({userId:e,eventName:t,eventData:n})=>o.to(mt(e)).emit(t,n)),p=r(({projectCid:e,eventName:t,eventData:n})=>o.to(vt(e)).emit(t,n)),l=r(({roomList:e=[],eventName:t,eventData:n})=>{e.reduce((e,t)=>e.to(ht(t)),o).emit(t,n)}),u=async e=>{const t=(e=>Object.entries(e.connected).reduce((e,[t,n])=>(e[t]=(e=>({INFO:e.INFO,id:e.id,rooms:Object.keys(e.rooms)}))(n),e),{}))(o)
804return a.add("[request-socket-status]",t),Ct(e,{object:t})},d=(e=>e.reduce((e,[t,n,i])=>jt(e,t,n,i),{}))([["/emit-by-user","POST",c],["/emit-by-project","POST",p],t&&["/emit-by-rooms","POST",l],["/system-status","GET",async e=>{const t={...Rt(),...(()=>({title:process.title,pid:process.pid,ppid:process.ppid,uid:g(process,"getuid"),gid:g(process,"getgid"),groups:g(process,"getgroups")||[],euid:g(process,"geteuid"),egid:g(process,"getegid"),stdio:{stdin:Pt("stdin"),stdout:Pt("stdout"),stderr:Pt("stderr")},isConnectedIPC:Boolean(process.connected),execPath:process.execPath,execArgv:process.execArgv,argv:process.argv,cwd:process.cwd(),uptime:1e3*process.uptime(),cpuUsage:process.cpuUsage(),memoryUsage:process.memoryUsage()}))()}
805return a.add("[request-system-status]",t),Ct(e,{object:t})}],["/system-status-lite","GET",async e=>{const t=(({platform:e,processor:t,memory:n,network:i,activity:a}=Rt())=>Object.entries({platform:(({platform:e,arch:t,release:n}=Tt())=>`${e} ${t} [${n}]`)(e),processor:((e=Nt())=>e.map(({model:e,speed:t,times:n})=>`[${e}] speed:${t}MHz ${Object.entries(n).map(([e,t])=>`${e}:${W(t)}`).join(" ")}`).join("\n"))(t),memory:(({total:e,free:t}=Bt())=>[`Used: ${J((e-t)/e)}`,`Total: ${Q(e)}B`,`Free: ${Q(t)}B`].join("\n"))(n),network:(({hostname:e,networkInterface:t}=Lt())=>[`[hostname] ${e}`,"[interface]",...Object.entries(t).reduce((e,[t,n])=>(e.push(` ${t}`),e.concat(n.map(({address:e,netmask:t,mac:n,internal:i,family:a,cidr:o})=>` - [${a}${i?"|INTERNAL":""}] ${o||e} (${n})`))),[])].join("\n"))(i),activity:(({uptime:e,loadAverageList:t}=It())=>[`[uptime] ${W(e)}`,"win32"!==Object(At.platform)()&&`[load average] ${t.map(J).join(", ")} (1min, 5min, 15min)`].filter(Boolean).join("\n"))(a)}).map(([e,t])=>`[${e}]\n${X(t)}`).join("\n"))()
806return a.add("[request-system-status-lite]",t),(async(e,{buffer:t,bufferGzip:n,entityTag:i,type:a=_t,length:o=t.length})=>{i&&e.response.setHeader("etag",i)
807const s=!i||!e.request.headers["if-none-match"]||!e.request.headers["if-none-match"].includes(i),r=s&&o&&e.request.headers["accept-encoding"]&&e.request.headers["accept-encoding"].includes("gzip"),c=r?n||await Et(t):t
808return s?e.response.writeHead(200,r?{"content-type":a,"content-length":c.length,"content-encoding":"gzip"}:{"content-type":a,"content-length":o}):e.response.writeHead(304,{"content-type":a}),s&&o&&dt(e.response,c)})(e,{buffer:Buffer.from(t),type:St.text})}],["/socket-status","GET",u],["/","GET",u]].filter(Boolean))
809n.on("request",(({responderList:e=[],responderEnd:t=de,responderError:n=((e,t)=>e.setState({error:t}))})=>async(i,a)=>{const o=(e=>({getState:()=>e,setState:t=>e={...e,...t}}))({time:I(),error:null})
810o.request=i,o.response=a
811try{for(const t of e)await t(o)}catch(e){await n(o,e)}await t(o)})({responderList:[(({baseUrl:e="",baseUrlObject:t=new se.URL(e)})=>e=>{const{url:n,method:i}=e.request
812e.setState({url:new se.URL(n,t),method:i})})(i),(e=>t=>{e(ce(t.request),"|",t.request.headers["user-agent"]||"no-user-agent")})(a.add),e=>{e.response.setHeader("access-control-allow-origin","*")},(e=>t=>{const{url:n,method:i}=t.getState()
813if(!n||!i)throw new Error(`[responderRouter] missing state: ${JSON.stringify({url:n,method:i})}`)
814if(!qt[i])throw new Error(`[responderRouter] invalid method [${i}] from route: ${n.pathname}`)
815const{routeNode:a,paramValueList:o}=((e,t)=>{const n=[],i=t.split("/")
816for(let a=0,o=i.length;a<o;a++){const o=i[a]
817if(e[o])e=e[o]
818else{if(!e["/:PARAM"]){if(e["/*"]){n.push(i.slice(a).join("/")),e=e["/*"]
819break}throw new Error(`[findRouteFromMap] stuck at [${o}] for route: ${t}`)}n.push(o),e=e["/:PARAM"]}}return{routeNode:e,paramValueList:n}})(e,n.pathname)
820if(!a[qt[i]])throw new Error(`[responderRouter] invalid method [${i}] for route: ${n.pathname}`)
821const{route:s,paramNameList:r,routeResponder:c}=a[qt[i]],p=r.reduce((e,t,n)=>(e[t]=o[n],e),{})
822return c(t,t.setState({route:s,paramMap:p}))})(d)],responderEnd:e=>{re(e),s(e)}})),a.add(`[createAdminServer] dumb mode: ${t}`)}
823var Ft=n(26)
824const $t=async({getOptionOptional:e,getSingleOption:t,getSingleOptionOptional:n})=>{await(async({filePid:e,shouldIgnoreExistPid:t=!1})=>{e&&(!t&&y(()=>{const t=Object(a.readFileSync)(e,{encoding:"utf8"})
825if(t)return console.warn(`[FilePid] get existing pid: ${t}, exit process...`),process.exit(-1)}),await v(Object(i.dirname)(e)),await p(e,`${process.pid}`),j(t=>{y(a.unlinkSync,e)}))})({filePid:n("file-pid"),shouldIgnoreExistPid:e("pid-ignore-exist")})
826const o=await(async({pathLogDirectory:e,prefixLogFile:t})=>{const n=(({add:e,...t})=>({...t,add:(...t)=>e((new Date).toISOString(),...t)}))(e?await(async({pathLogDirectory:e,prefixLogFile:t="",getLogFileName:n=(()=>`${t}${(new Date).toISOString().replace(/\W/g,"-")}.log`),saveInterval:a=3e5,splitInterval:o=864e5,...s})=>{let r,c,p
827const l=()=>{f()
828const t=Object(i.resolve)(e,n())
829r=b({...s,pathOutputFile:t}),c=a&&setInterval(u,a),p=o&&setTimeout(d,o)},u=()=>{r&&r.save()},d=()=>{r&&l()},f=()=>{r&&r.end(),c&&clearInterval(c),p&&clearTimeout(p),r=null,c=null,p=null}
830return await v(e),l(),{add:(...e)=>{r&&r.add(e.join(" "))},save:u,split:d,end:f}})({pathLogDirectory:e,prefixLogFile:t,flags:"a"}):{add:console.log,save:A,split:A,end:A})
831return((...e)=>{e.forEach(e=>_.add(e)),!C&&O()})(e=>{n.add(`[SERVER DOWN] ${JSON.stringify(e)}`)}),j(e=>{n.add(`[SERVER EXIT] ${JSON.stringify(e)}`),n.end()}),n})({pathLogDirectory:n("path-log"),prefixLogFile:n("log-file-prefix")}),s=Boolean(e("dumb")),r=n("socket-path"),c=n("port-admin-server"),l={protocol:e("https")?"https:":"http:",hostname:t("hostname"),fileSSLKey:n("file-SSL-key"),fileSSLCert:n("file-SSL-cert"),fileSSLChain:n("file-SSL-chain"),fileSSLDHParam:n("file-SSL-dhparam")},{server:u,start:d,option:f}=await fe({...l,port:t("port")}),{socketIoServerUser:h}=(({requestAdminActionAsync:e,socketPath:t="/S",urlServerSocketAction:n,isRedisEnabled:i=!1,redisHost:a="localhost",redisPort:o=6379,isDumbEnabled:s=!1},{server:r,option:c,logger:p})=>{const l=new rt.a(r,{...yt,path:t,adapter:i?pt()({host:a,port:o}):void 0})
832return(({socketIoServerUser:e,urlServerSocketAction:t,isDumbEnabled:n,logger:i})=>{const a=e.of("/")
833a.use(async(e,a)=>{const{address:o,headers:{cookie:s=""},query:{userId:r=""}}=e.handshake
834i.add("pre-connect",o,{cookie:s,userId:r})
835let c=!1
836if(n)c=!0
837else{const{responseText:e,error:n}=await gt(t,{type:"verify-user",payload:{userId:r},cookie:s})
838if(n)throw n
839c=Boolean(JSON.parse(e).isAllowRequest)}return e.INFO={tag:`[USER|${o}|${r}]`,userId:r,isAllowRequest:c},a()}),a.on("connect",e=>{const{tag:a,userId:o,isAllowRequest:s}=e.INFO
840xt({socket:e,tag:a,logger:i}),bt(e,{tag:a,userId:o,isAllowRequest:s,urlServerSocketAction:t}),n&&wt(e,{tag:a,userId:o})})})({socketIoServerUser:l,urlServerSocketAction:n,isDumbEnabled:s,logger:p}),p.add(["[createSocketIoServer]",`socket-path: ${t}`,`url-server-socket-action: ${n}`,`${i?`with redis at: ${a}:${o}`:"without redis"}`,`dumb mode: ${s}`].join("\n - ")),{socketIoServerUser:l}})({socketPath:r,urlServerSocketAction:t("url-server-socket-action"),isRedisEnabled:Boolean(e("cluster")),redisHost:n("redis-host"),redisPort:n("redis-port"),isDumbEnabled:s},{server:u,option:f,logger:o})
841if(c){const{server:e,start:t,option:n}=await fe({...l,port:c})
842zt({socketIoServerUser:h,isDumbEnabled:s},{server:e,option:n,logger:o}),t(),o.add(`[ADMIN SERVER UP] ${n.baseUrl}`)}d(),o.add(`[USER SERVER UP] ${f.baseUrl}`)};(async()=>{const e=await at()
843e.getSingleOptionOptional("port")?await $t(e).catch(e=>{console.warn("[Error]",e.stack||e),process.exit(2)}):e.getSingleOptionOptional("version")?console.log(JSON.stringify({packageName:Ft.a,packageVersion:Ft.b},null," ")):console.log(ot())})().catch(e=>{console.warn(ot(e.stack||e,"simple")),process.exit(1)})},function(e,t,n){var i=n(44),a=n(1);(t=e.exports=n(27)).init=function(e){e.inspectOpts={}
844for(var n=Object.keys(t.inspectOpts),i=0;i<n.length;i++)e.inspectOpts[n[i]]=t.inspectOpts[n[i]]},t.log=function(){return s.write(a.format.apply(a,arguments)+"\n")},t.formatArgs=function(e){var n=this.namespace
845if(this.useColors){var i=this.color,a=" [3"+i+";1m"+n+" "
846e[0]=a+e[0].split("\n").join("\n"+a),e.push("[3"+i+"m+"+t.humanize(this.diff)+"")}else e[0]=(new Date).toUTCString()+" "+n+" "+e[0]},t.save=function(e){null==e?delete process.env.DEBUG:process.env.DEBUG=e},t.load=r,t.useColors=function(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):i.isatty(o)},t.colors=[6,2,3,4,5,1],t.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var n=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()}),i=process.env[t]
847return i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i)),e[n]=i,e},{})
848var o=parseInt(process.env.DEBUG_FD,10)||2
8491!==o&&2!==o&&a.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")()
850var s=1===o?process.stdout:2===o?process.stderr:function(e){var t
851switch(process.binding("tty_wrap").guessHandleType(e)){case"TTY":(t=new i.WriteStream(e))._type="tty",t._handle&&t._handle.unref&&t._handle.unref()
852break
853case"FILE":(t=new(n(0).SyncWriteStream)(e,{autoClose:!1}))._type="fs"
854break
855case"PIPE":case"TCP":(t=new(n(50).Socket)({fd:e,readable:!1,writable:!0})).readable=!1,t.read=null,t._type="pipe",t._handle&&t._handle.unref&&t._handle.unref()
856break
857default:throw new Error("Implement me. Unknown stream file type!")}return t.fd=e,t._isStdio=!0,t}(o)
858function r(){return process.env.DEBUG}t.formatters.o=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts).split("\n").map(function(e){return e.trim()}).join(" ")},t.formatters.O=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts)},t.enable(r())},function(e,t,n){function i(){var e
859try{e=t.storage.debug}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e}(t=e.exports=n(27)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},t.formatArgs=function(e){var n=this.useColors
860if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),n){var i="color: "+this.color
861e.splice(1,0,i,"color: inherit")
862var a=0,o=0
863e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&"%c"===e&&(o=++a)}),e.splice(o,0,i)}},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=i,t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(i())},function(e,t,n){"undefined"!=typeof process&&"renderer"===process.type?e.exports=n(57):e.exports=n(56)},function(e,t,n){"use strict"
864function i(e){this.offset=0,this.buffer=e}i.prototype.array=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=this.parse()
865return t},i.prototype.map=function(e){for(var t={},n=0;n<e;n++)t[this.parse()]=this.parse()
866return t},i.prototype.str=function(e){var t=this.buffer.toString("utf8",this.offset,this.offset+e)
867return this.offset+=e,t},i.prototype.bin=function(e){var t=this.buffer.slice(this.offset,this.offset+e)
868return this.offset+=e,t},i.prototype.arraybuffer=function(e){for(var t=new ArrayBuffer(e),n=new Uint8Array(t),i=0;i<e;i++)n[i]=this.buffer[this.offset+i]
869return this.offset+=e,t},i.prototype.parse=function(){var e,t=this.buffer[this.offset++],n=0,i=0,a=0,o=0
870if(t<192)return t<128?t:t<144?this.map(15&t):t<160?this.array(15&t):this.str(31&t)
871if(t>223)return-1*(255-t+1)
872switch(t){case 192:return null
873case 194:return!1
874case 195:return!0
875case 196:return n=this.buffer.readUInt8(this.offset),this.offset+=1,this.bin(n)
876case 197:return n=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.bin(n)
877case 198:return n=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.bin(n)
878case 199:return n=this.buffer.readUInt8(this.offset),i=this.buffer.readInt8(this.offset+1),this.offset+=2,0===i?this.arraybuffer(n):[i,this.bin(n)]
879case 200:return n=this.buffer.readUInt16BE(this.offset),i=this.buffer.readInt8(this.offset+2),this.offset+=3,0===i?this.arraybuffer(n):[i,this.bin(n)]
880case 201:return n=this.buffer.readUInt32BE(this.offset),i=this.buffer.readInt8(this.offset+4),this.offset+=5,0===i?this.arraybuffer(n):[i,this.bin(n)]
881case 202:return e=this.buffer.readFloatBE(this.offset),this.offset+=4,e
882case 203:return e=this.buffer.readDoubleBE(this.offset),this.offset+=8,e
883case 204:return e=this.buffer.readUInt8(this.offset),this.offset+=1,e
884case 205:return e=this.buffer.readUInt16BE(this.offset),this.offset+=2,e
885case 206:return e=this.buffer.readUInt32BE(this.offset),this.offset+=4,e
886case 207:return a=this.buffer.readUInt32BE(this.offset)*Math.pow(2,32),o=this.buffer.readUInt32BE(this.offset+4),this.offset+=8,a+o
887case 208:return e=this.buffer.readInt8(this.offset),this.offset+=1,e
888case 209:return e=this.buffer.readInt16BE(this.offset),this.offset+=2,e
889case 210:return e=this.buffer.readInt32BE(this.offset),this.offset+=4,e
890case 211:return a=this.buffer.readInt32BE(this.offset)*Math.pow(2,32),o=this.buffer.readUInt32BE(this.offset+4),this.offset+=8,a+o
891case 212:return i=this.buffer.readInt8(this.offset),this.offset+=1,0===i?void(this.offset+=1):[i,this.bin(1)]
892case 213:return i=this.buffer.readInt8(this.offset),this.offset+=1,[i,this.bin(2)]
893case 214:return i=this.buffer.readInt8(this.offset),this.offset+=1,[i,this.bin(4)]
894case 215:return i=this.buffer.readInt8(this.offset),this.offset+=1,0===i?(a=this.buffer.readInt32BE(this.offset)*Math.pow(2,32),o=this.buffer.readUInt32BE(this.offset+4),this.offset+=8,new Date(a+o)):[i,this.bin(8)]
895case 216:return i=this.buffer.readInt8(this.offset),this.offset+=1,[i,this.bin(16)]
896case 217:return n=this.buffer.readUInt8(this.offset),this.offset+=1,this.str(n)
897case 218:return n=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.str(n)
898case 219:return n=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.str(n)
899case 220:return n=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.array(n)
900case 221:return n=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.array(n)
901case 222:return n=this.buffer.readUInt16BE(this.offset),this.offset+=2,this.map(n)
902case 223:return n=this.buffer.readUInt32BE(this.offset),this.offset+=4,this.map(n)}throw new Error("Could not parse")},e.exports=function(e){var t=new i(e),n=t.parse()
903if(t.offset!==e.length)throw new Error(e.length-t.offset+" trailing bytes")
904return n}},function(e,t,n){"use strict"
905function i(e,t,n){for(var i=0,a=0,o=n.length;a<o;a++)(i=n.charCodeAt(a))<128?e[t++]=i:i<2048?(e[t++]=192|i>>6,e[t++]=128|63&i):i<55296||i>=57344?(e[t++]=224|i>>12,e[t++]=128|i>>6&63,e[t++]=128|63&i):(a++,i=65536+((1023&i)<<10|1023&n.charCodeAt(a)),e[t++]=240|i>>18,e[t++]=128|i>>12&63,e[t++]=128|i>>6&63,e[t++]=128|63&i)}e.exports=function(e){var t=[],n=[],a=function e(t,n,i){var a=typeof i,o=0,s=0,r=0,c=0,p=0,l=0
906if("string"===a){if((p=i.length>32?Buffer.byteLength(i):function(e){for(var t=0,n=0,i=0,a=e.length;i<a;i++)(t=e.charCodeAt(i))<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(i++,n+=4)
907return n}(i))<32)t.push(160|p),l=1
908else if(p<256)t.push(217,p),l=2
909else if(p<65536)t.push(218,p>>8,p),l=3
910else{if(!(p<4294967296))throw new Error("String too long")
911t.push(219,p>>24,p>>16,p>>8,p),l=5}return n.push({str:i,length:p,offset:t.length}),l+p}if("number"===a)return Math.floor(i)===i&&isFinite(i)?i>=0?i<128?(t.push(i),1):i<256?(t.push(204,i),2):i<65536?(t.push(205,i>>8,i),3):i<4294967296?(t.push(206,i>>24,i>>16,i>>8,i),5):(r=i/Math.pow(2,32)>>0,c=i>>>0,t.push(207,r>>24,r>>16,r>>8,r,c>>24,c>>16,c>>8,c),9):i>=-32?(t.push(i),1):i>=-128?(t.push(208,i),2):i>=-32768?(t.push(209,i>>8,i),3):i>=-2147483648?(t.push(210,i>>24,i>>16,i>>8,i),5):(r=Math.floor(i/Math.pow(2,32)),c=i>>>0,t.push(211,r>>24,r>>16,r>>8,r,c>>24,c>>16,c>>8,c),9):(t.push(203),n.push({float:i,length:8,offset:t.length}),9)
912if("object"===a){if(null===i)return t.push(192),1
913if(Array.isArray(i)){if((p=i.length)<16)t.push(144|p),l=1
914else if(p<65536)t.push(220,p>>8,p),l=3
915else{if(!(p<4294967296))throw new Error("Array too large")
916t.push(221,p>>24,p>>16,p>>8,p),l=5}for(o=0;o<p;o++)l+=e(t,n,i[o])
917return l}if(i instanceof Date){var u=i.getTime()
918return r=Math.floor(u/Math.pow(2,32)),c=u>>>0,t.push(215,0,r>>24,r>>16,r>>8,r,c>>24,c>>16,c>>8,c),10}if(i instanceof Buffer){if((p=i.length)<256)t.push(196,p),l=2
919else if(p<65536)t.push(197,p>>8,p),l=3
920else{if(!(p<4294967296))throw new Error("Buffer too large")
921t.push(198,p>>24,p>>16,p>>8,p),l=5}return n.push({bin:i,length:p,offset:t.length}),l+p}if(i instanceof ArrayBuffer||ArrayBuffer.isView(i)){var d=i.buffer||i
922if((p=d.byteLength)<256)t.push(199,p,0),l=3
923else if(p<65536)t.push(200,p>>8,p,0),l=4
924else{if(!(p<4294967296))throw new Error("ArrayBuffer too large")
925t.push(201,p>>24,p>>16,p>>8,p,0),l=6}return n.push({arraybuffer:d,length:p,offset:t.length}),l+p}if("function"==typeof i.toJSON)return e(t,n,i.toJSON())
926var f=[],h="",m=Object.keys(i)
927for(o=0,s=m.length;o<s;o++)"function"!=typeof i[h=m[o]]&&f.push(h)
928if((p=f.length)<16)t.push(128|p),l=1
929else if(p<65536)t.push(222,p>>8,p),l=3
930else{if(!(p<4294967296))throw new Error("Object too large")
931t.push(223,p>>24,p>>16,p>>8,p),l=5}for(o=0;o<p;o++)l+=e(t,n,h=f[o]),l+=e(t,n,i[h])
932return l}if("boolean"===a)return t.push(i?195:194),1
933if("undefined"===a)return t.push(212,0,0),3
934throw new Error("Could not encode")}(t,n,e),o=new Buffer(a),s=0,r=0,c=-1
935n.length>0&&(c=n[0].offset)
936for(var p,l=0,u=0,d=0,f=t.length;d<f;d++)if(o[r+d]=t[d],d+1===c){if(l=(p=n[s]).length,u=r+c,p.bin)if(l>32)p.bin.copy(o,u,0,l)
937else for(var h=p.bin,m=0;m<l;m++)o[u+m]=h[m]
938else if(p.str)l>32?o.write(p.str,u,l,"utf8"):i(o,u,p.str)
939else if(void 0!==p.float)o.writeDoubleBE(p.float,u)
940else if(p.arraybuffer)for(var v=new Uint8Array(p.arraybuffer),g=0;g<l;g++)o[u+g]=v[g]
941r+=l,n[++s]&&(c=n[s].offset)}return o}},function(e,t,n){t.encode=n(60),t.decode=n(59)},function(e,t,n){"use strict"
942var i=n(28),a=n(20),o=n(13).RedisClient,s=n(11),r=function(){try{return Object.defineProperty(function(){},"name",{value:"foobar"}),!0}catch(e){return!1}}(),c=function(e){var t=e.replace(/(?:^([0-9])|[^a-zA-Z0-9_$])/g,"_$1")
943o.prototype[e]||(o.prototype[e.toUpperCase()]=o.prototype[e]=function(){var t,n,i=arguments.length,a=0
944if(Array.isArray(arguments[0]))t=arguments[0],2===i&&(n=arguments[1])
945else if(i>1&&Array.isArray(arguments[1]))for(3===i&&(n=arguments[2]),i=arguments[1].length,(t=new Array(i+1))[0]=arguments[0];a<i;a+=1)t[a+1]=arguments[1][a]
946else for(0===i||"function"!=typeof arguments[i-1]&&void 0!==arguments[i-1]||(n=arguments[--i]),t=new Array(i);a<i;a+=1)t[a]=arguments[a]
947return this.internal_send_command(new s(e,t,n))},t!==e&&(o.prototype[t.toUpperCase()]=o.prototype[t]=o.prototype[e]),r&&Object.defineProperty(o.prototype[e],"name",{value:t})),a.prototype[e]||(a.prototype[e.toUpperCase()]=a.prototype[e]=function(){var t,n,i=arguments.length,a=0
948if(Array.isArray(arguments[0]))t=arguments[0],2===i&&(n=arguments[1])
949else if(i>1&&Array.isArray(arguments[1]))for(3===i&&(n=arguments[2]),i=arguments[1].length,(t=new Array(i+1))[0]=arguments[0];a<i;a+=1)t[a+1]=arguments[1][a]
950else for(0===i||"function"!=typeof arguments[i-1]&&void 0!==arguments[i-1]||(n=arguments[--i]),t=new Array(i);a<i;a+=1)t[a]=arguments[a]
951return this.queue.push(new s(e,t,n)),this},t!==e&&(a.prototype[t.toUpperCase()]=a.prototype[t]=a.prototype[e]),r&&Object.defineProperty(a.prototype[e],"name",{value:t}))}
952i.list.forEach(c),e.exports=c},function(e,t,n){"use strict"
953var i=n(12),a=n(21),o=n(13).RedisClient,s=n(11),r=function(){}
954o.prototype.send_command=o.prototype.sendCommand=function(e,t,n){if("string"!=typeof e)throw new TypeError('Wrong input type "'+(null!==e&&void 0!==e?e.constructor.name:e)+'" for command name')
955if(e=e.toLowerCase(),!Array.isArray(t))if(void 0===t||null===t)t=[]
956else{if("function"!=typeof t||void 0!==n)throw new TypeError('Wrong input type "'+t.constructor.name+'" for args')
957n=t,t=[]}if("function"!=typeof n&&void 0!==n)throw new TypeError('Wrong input type "'+(null!==n?n.constructor.name:"null")+'" for callback function')
958return"multi"===e||"function"!=typeof this[e]?this.internal_send_command(new s(e,t,n)):("function"==typeof n&&(t=t.concat([n])),this[e].apply(this,t))},o.prototype.end=function(e){return e?this.flush_and_error({message:"Connection forcefully ended and command aborted.",code:"NR_CLOSED"}):0===arguments.length&&this.warn("Using .end() without the flush parameter is deprecated and throws from v.3.0.0 on.\nPlease check the doku (https://github.com/NodeRedis/node_redis) and explictly use flush."),this.retry_timer&&(clearTimeout(this.retry_timer),this.retry_timer=null),this.stream.removeAllListeners(),this.stream.on("error",r),this.connected=!1,this.ready=!1,this.closing=!0,this.stream.destroySoon()},o.prototype.unref=function(){this.connected?(a("Unref'ing the socket connection"),this.stream.unref()):(a("Not connected yet, will unref later"),this.once("connect",function(){this.unref()}))},o.prototype.duplicate=function(e,t){"function"==typeof e&&(t=e,e=null)
959var n=i.clone(this.options)
960for(var a in e=i.clone(e))n[a]=e[a]
961var s=new o(n)
962if(s.selected_db=this.selected_db,"function"==typeof t){var r=function(e){t(e),s.end(!0)}
963return s.once("ready",function(){t(null,s),s.removeAllListeners(r)}),void s.once("error",r)}return s}},function(e,t,n){"use strict"
964var i=n(12),a=n(21),o=n(20),s=n(11),r=/no password is set/,c=/LOADING/,p=n(13).RedisClient
965function l(e,t,n){return function(a,o){null===a&&(e.selected_db=t),i.callback_or_emit(e,n,a,o)}}function u(e,t){return function(n,a){n&&"NR_CLOSED"===n.code&&(n=null,a="OK"),i.callback_or_emit(e,t,n,a),e.stream.writable&&e.stream.destroy()}}function d(e,t){return function(n,a){if(a){for(var o,s,r,c={},p=a.toString().split("\r\n"),l=0;l<p.length;l++)if((s=p[l].split(":"))[1])if(0===s[0].indexOf("db"))for(r=s[1].split(","),c[s[0]]={};o=r.pop();)o=o.split("="),c[s[0]][o[0]]=+o[1]
966else c[s[0]]=s[1]
967c.versions=[],c.redis_version&&c.redis_version.split(".").forEach(function(e){c.versions.push(+e)}),e.server_info=c}else e.server_info={}
968i.callback_or_emit(e,t,n,a)}}function f(e,t,n){return function(o,s){if(o)if(r.test(o.message))e.warn("Warning: Redis server does not require a password, but a password was supplied."),o=null,s="OK"
969else if(c.test(o.message))return a("Redis still loading, trying to authenticate later"),void setTimeout(function(){e.auth(t,n)},100)
970i.callback_or_emit(e,n,o,s)}}p.prototype.multi=p.prototype.MULTI=function(e){var t=new o(this,e)
971return t.exec=t.EXEC=t.exec_transaction,t},p.prototype.batch=p.prototype.BATCH=function(e){return new o(this,e)},p.prototype.select=p.prototype.SELECT=function(e,t){return this.internal_send_command(new s("select",[e],l(this,e,t)))},o.prototype.select=o.prototype.SELECT=function(e,t){return this.queue.push(new s("select",[e],l(this._client,e,t))),this},p.prototype.monitor=p.prototype.MONITOR=function(e){var t=this
972return this.internal_send_command(new s("monitor",[],e,function(){t.monitoring=!0}))},o.prototype.monitor=o.prototype.MONITOR=function(e){if(this.exec!==this.exec_transaction){var t=this
973return this.queue.push(new s("monitor",[],e,function(){t._client.monitoring=!0})),this}return this.monitoring=!0,this},p.prototype.QUIT=p.prototype.quit=function(e){var t=this.internal_send_command(new s("quit",[],u(this,e)))
974return this.closing=!0,this.ready=!1,t},o.prototype.QUIT=o.prototype.quit=function(e){var t=this._client
975return this.queue.push(new s("quit",[],u(t,e),function(){t.closing=!0,t.ready=!1})),this},p.prototype.info=p.prototype.INFO=function(e,t){var n=[]
976return"function"==typeof e?t=e:void 0!==e&&(n=Array.isArray(e)?e:[e]),this.internal_send_command(new s("info",n,d(this,t)))},o.prototype.info=o.prototype.INFO=function(e,t){var n=[]
977return"function"==typeof e?t=e:void 0!==e&&(n=Array.isArray(e)?e:[e]),this.queue.push(new s("info",n,d(this._client,t))),this},p.prototype.auth=p.prototype.AUTH=function(e,t){a("Sending auth to "+this.address+" id "+this.connection_id),this.auth_pass=e
978var n=this.ready
979this.ready=n||0===this.offline_queue.length
980var i=this.internal_send_command(new s("auth",[e],f(this,e,t)))
981return this.ready=n,i},o.prototype.auth=o.prototype.AUTH=function(e,t){return a("Sending auth to "+this.address+" id "+this.connection_id),this.auth_pass=e,this.queue.push(new s("auth",[e],f(this._client,t))),this},p.prototype.client=p.prototype.CLIENT=function(){var e,t,n=arguments.length,i=0
982if(Array.isArray(arguments[0]))e=arguments[0],t=arguments[1]
983else if(Array.isArray(arguments[1]))for(3===n&&(t=arguments[2]),n=arguments[1].length,(e=new Array(n+1))[0]=arguments[0];i<n;i+=1)e[i+1]=arguments[1][i]
984else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
985var a=this,o=void 0
986if(2===e.length&&"REPLY"===e[0].toString().toUpperCase()){var r=e[1].toString().toUpperCase()
987"ON"!==r&&"OFF"!==r&&"SKIP"!==r||(o=function(){a.reply=r})}return this.internal_send_command(new s("client",e,t,o))},o.prototype.client=o.prototype.CLIENT=function(){var e,t,n=arguments.length,i=0
988if(Array.isArray(arguments[0]))e=arguments[0],t=arguments[1]
989else if(Array.isArray(arguments[1]))for(3===n&&(t=arguments[2]),n=arguments[1].length,(e=new Array(n+1))[0]=arguments[0];i<n;i+=1)e[i+1]=arguments[1][i]
990else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
991var a=this._client,o=void 0
992if(2===e.length&&"REPLY"===e[0].toString().toUpperCase()){var r=e[1].toString().toUpperCase()
993"ON"!==r&&"OFF"!==r&&"SKIP"!==r||(o=function(){a.reply=r})}return this.queue.push(new s("client",e,t,o)),this},p.prototype.hmset=p.prototype.HMSET=function(){var e,t,n=arguments.length,i=0
994if(Array.isArray(arguments[0]))e=arguments[0],t=arguments[1]
995else if(Array.isArray(arguments[1]))for(3===n&&(t=arguments[2]),n=arguments[1].length,(e=new Array(n+1))[0]=arguments[0];i<n;i+=1)e[i+1]=arguments[1][i]
996else if("object"!=typeof arguments[1]||2!==arguments.length&&(3!==arguments.length||"function"!=typeof arguments[2]&&void 0!==arguments[2]))for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
997else{for(var a in e=[arguments[0]],arguments[1])e.push(a,arguments[1][a])
998t=arguments[2]}return this.internal_send_command(new s("hmset",e,t))},o.prototype.hmset=o.prototype.HMSET=function(){var e,t,n=arguments.length,i=0
999if(Array.isArray(arguments[0]))e=arguments[0],t=arguments[1]
1000else if(Array.isArray(arguments[1]))for(3===n&&(t=arguments[2]),n=arguments[1].length,(e=new Array(n+1))[0]=arguments[0];i<n;i+=1)e[i+1]=arguments[1][i]
1001else if("object"!=typeof arguments[1]||2!==arguments.length&&(3!==arguments.length||"function"!=typeof arguments[2]&&void 0!==arguments[2]))for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1002else{for(var a in e=[arguments[0]],arguments[1])e.push(a,arguments[1][a])
1003t=arguments[2]}return this.queue.push(new s("hmset",e,t)),this},p.prototype.subscribe=p.prototype.SUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1004if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1005else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1006var a=this
1007return this.internal_send_command(new s("subscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))},o.prototype.subscribe=o.prototype.SUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1008if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1009else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1010var a=this._client
1011return this.queue.push(new s("subscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1})),this},p.prototype.unsubscribe=p.prototype.UNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1012if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1013else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1014var a=this
1015return this.internal_send_command(new s("unsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))},o.prototype.unsubscribe=o.prototype.UNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1016if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1017else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1018var a=this._client
1019return this.queue.push(new s("unsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1})),this},p.prototype.psubscribe=p.prototype.PSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1020if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1021else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1022var a=this
1023return this.internal_send_command(new s("psubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))},o.prototype.psubscribe=o.prototype.PSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1024if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1025else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1026var a=this._client
1027return this.queue.push(new s("psubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1})),this},p.prototype.punsubscribe=p.prototype.PUNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1028if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1029else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1030var a=this
1031return this.internal_send_command(new s("punsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))},o.prototype.punsubscribe=o.prototype.PUNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
1032if(Array.isArray(arguments[0]))e=arguments[0].slice(0),t=arguments[1]
1033else for(0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n]),e=new Array(n);i<n;i+=1)e[i]=arguments[i]
1034var a=this._client
1035return this.queue.push(new s("punsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1})),this}},function(e,t,n){"use strict"
1036var i=n(12),a=n(3)
1037e.exports=function(e,t,n){if("number"==typeof e||"string"==typeof e&&/^\d+$/.test(e)){var o
1038if("string"==typeof t)o=t
1039else{if(n&&t)throw new TypeError("Unknown type of connection in createClient()")
1040n=n||t}(n=i.clone(n)).host=o||n.host,n.port=e}else if("string"==typeof e||e&&e.url){n=i.clone(e.url?e:t||n)
1041var s=e.url||e,r=a.parse(s,!0,!0)
1042if(r.slashes){var c
1043if(r.auth&&(n.password=r.auth.split(":")[1]),r.protocol&&"redis:"!==r.protocol&&console.warn('node_redis: WARNING: You passed "'+r.protocol.substring(0,r.protocol.length-1)+'" as protocol instead of the "redis" protocol!'),r.pathname&&"/"!==r.pathname&&(n.db=r.pathname.substr(1)),r.hostname&&(n.host=r.hostname),r.port&&(n.port=r.port),""!==r.search)for(c in r.query){if(c in n){if(n[c]!==r.query[c])throw new RangeError("The "+c+" option is added twice and does not match")
1044console.warn("node_redis: WARNING: You passed the "+c+" option twice!")}n[c]=r.query[c]}}else{if(r.hostname)throw new RangeError('The redis url must begin with slashes "//" or contain slashes after the redis protocol')
1045n.path=s}}else if(("object"==typeof e||void 0===e)&&((n=i.clone(e||n)).host=n.host||t,e&&1!==arguments.length))throw new TypeError("To many arguments passed to createClient. Please only pass the options object")
1046if(!n)throw new TypeError("Unknown type of connection in createClient()")
1047return n}},function(e){e.exports={append:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},asking:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},auth:{arity:2,flags:["noscript","loading","stale","fast"],keyStart:0,keyStop:0,step:0},bgrewriteaof:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},bgsave:{arity:-1,flags:["admin"],keyStart:0,keyStop:0,step:0},bitcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},bitfield:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},bitop:{arity:-4,flags:["write","denyoom"],keyStart:2,keyStop:-1,step:1},bitpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},blpop:{arity:-3,flags:["write","noscript"],keyStart:1,keyStop:-2,step:1},brpop:{arity:-3,flags:["write","noscript"],keyStart:1,keyStop:-2,step:1},brpoplpush:{arity:4,flags:["write","denyoom","noscript"],keyStart:1,keyStop:2,step:1},client:{arity:-2,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},cluster:{arity:-2,flags:["admin"],keyStart:0,keyStop:0,step:0},command:{arity:1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},config:{arity:-2,flags:["admin","loading","stale"],keyStart:0,keyStop:0,step:0},dbsize:{arity:1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},debug:{arity:-1,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},decr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},decrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},del:{arity:-2,flags:["write"],keyStart:1,keyStop:-1,step:1},discard:{arity:1,flags:["noscript","fast"],keyStart:0,keyStop:0,step:0},dump:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},echo:{arity:2,flags:["fast"],keyStart:0,keyStop:0,step:0},eval:{arity:-3,flags:["noscript","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha:{arity:-3,flags:["noscript","movablekeys"],keyStart:0,keyStop:0,step:0},exec:{arity:1,flags:["noscript","skip_monitor"],keyStart:0,keyStop:0,step:0},exists:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},expire:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expireat:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},flushall:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},flushdb:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},geoadd:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},geodist:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},geohash:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},geopos:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadius:{arity:-6,flags:["write","movablekeys"],keyStart:1,keyStop:1,step:1},georadius_ro:{arity:-6,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember:{arity:-5,flags:["write","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember_ro:{arity:-5,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},get:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getbit:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},getset:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},hdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hexists:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hget:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hgetall:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hincrbyfloat:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hkeys:{arity:2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:1,step:1},hlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmget:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},"host:":{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},hscan:{arity:-3,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},hset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetnx:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hstrlen:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hvals:{arity:2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:1,step:1},incr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrbyfloat:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},info:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},keys:{arity:2,flags:["readonly","sort_for_script"],keyStart:0,keyStop:0,step:0},lastsave:{arity:1,flags:["random","fast"],keyStart:0,keyStop:0,step:0},latency:{arity:-2,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},lindex:{arity:3,flags:["readonly"],keyStart:1,keyStop:1,step:1},linsert:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},llen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},lpop:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},lpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},lrem:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},lset:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},ltrim:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},memory:{arity:-2,flags:["readonly"],keyStart:0,keyStop:0,step:0},mget:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},migrate:{arity:-6,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},module:{arity:-2,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},monitor:{arity:1,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},move:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},mset:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},msetnx:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},multi:{arity:1,flags:["noscript","fast"],keyStart:0,keyStop:0,step:0},object:{arity:-2,flags:["readonly"],keyStart:2,keyStop:2,step:2},persist:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpire:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpireat:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pfadd:{arity:-2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},pfcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},pfdebug:{arity:-3,flags:["write"],keyStart:0,keyStop:0,step:0},pfmerge:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},pfselftest:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},ping:{arity:-1,flags:["stale","fast"],keyStart:0,keyStop:0,step:0},post:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},psetex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},psubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},psync:{arity:3,flags:["readonly","admin","noscript"],keyStart:0,keyStop:0,step:0},pttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},publish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:0,keyStop:0,step:0},pubsub:{arity:-2,flags:["pubsub","random","loading","stale"],keyStart:0,keyStop:0,step:0},punsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},quit:{arity:1,flags:["loading","stale","readonly"],keyStart:0,keyStop:0,step:0},randomkey:{arity:1,flags:["readonly","random"],keyStart:0,keyStop:0,step:0},readonly:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},readwrite:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},rename:{arity:3,flags:["write"],keyStart:1,keyStop:2,step:1},renamenx:{arity:3,flags:["write","fast"],keyStart:1,keyStop:2,step:1},replconf:{arity:-1,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},restore:{arity:-4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},"restore-asking":{arity:-4,flags:["write","denyoom","asking"],keyStart:1,keyStop:1,step:1},role:{arity:1,flags:["noscript","loading","stale"],keyStart:0,keyStop:0,step:0},rpop:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},rpoplpush:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},rpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},rpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},sadd:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},save:{arity:1,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},scan:{arity:-2,flags:["readonly","random"],keyStart:0,keyStop:0,step:0},scard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},script:{arity:-2,flags:["noscript"],keyStart:0,keyStop:0,step:0},sdiff:{arity:-2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:-1,step:1},sdiffstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},select:{arity:2,flags:["loading","fast"],keyStart:0,keyStop:0,step:0},set:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setbit:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setnx:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},setrange:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},shutdown:{arity:-1,flags:["admin","loading","stale"],keyStart:0,keyStop:0,step:0},sinter:{arity:-2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:-1,step:1},sinterstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sismember:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},slaveof:{arity:3,flags:["admin","noscript","stale"],keyStart:0,keyStop:0,step:0},slowlog:{arity:-2,flags:["admin"],keyStart:0,keyStop:0,step:0},smembers:{arity:2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:1,step:1},smove:{arity:4,flags:["write","fast"],keyStart:1,keyStop:2,step:1},sort:{arity:-2,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},spop:{arity:-2,flags:["write","random","fast"],keyStart:1,keyStop:1,step:1},srandmember:{arity:-2,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},srem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},sscan:{arity:-3,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},strlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},subscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},substr:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},sunion:{arity:-2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:-1,step:1},sunionstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},swapdb:{arity:3,flags:["write","fast"],keyStart:0,keyStop:0,step:0},sync:{arity:1,flags:["readonly","admin","noscript"],keyStart:0,keyStop:0,step:0},time:{arity:1,flags:["random","fast"],keyStart:0,keyStop:0,step:0},touch:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},ttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},type:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},unlink:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:-1,step:1},unsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},unwatch:{arity:1,flags:["noscript","fast"],keyStart:0,keyStop:0,step:0},wait:{arity:3,flags:["noscript"],keyStart:0,keyStop:0,step:0},watch:{arity:-2,flags:["noscript","fast"],keyStart:1,keyStop:-1,step:1},zadd:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zcard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zinterstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:0,keyStop:0,step:0},zlexcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zremrangebylex:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyrank:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyscore:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zscan:{arity:-3,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},zscore:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zunionstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:0,keyStop:0,step:0}}},function(e,t){e.exports=hiredis},function(e,t,n){"use strict"
1048var i=n(67),a=n(22),o=n(29)
1049function s(e,t){try{return e.reader.get()}catch(n){e.reader=new i.Reader(e.options),e.returnFatalError(new o(n.message,JSON.stringify(t),-1))}}function r(e){this.returnError=e.returnError,this.returnFatalError=e.returnFatalError||e.returnError,this.returnReply=e.returnReply,this.name="hiredis",this.options={return_buffers:!!e.returnBuffers},this.reader=new i.Reader(this.options)}r.prototype.execute=function(e){this.reader.feed(e)
1050for(var t=s(this,e);void 0!==t;)t&&"Error"===t.name?this.returnError(new a(t.message)):this.returnReply(t),t=s(this,e)},r.prototype.reset=function(){this.reader=new i.Reader(this.options)},e.exports=r},function(e,t){e.exports=require("string_decoder")},function(e,t,n){"use strict"
1051var i=new(0,n(69).StringDecoder),a=n(22),o=n(29),s=d(32768),r=0,c=null,p=0,l=0,u="function"==typeof Buffer.allocUnsafe
1052function d(e){return u?Buffer.allocUnsafe(e):new Buffer(e)}function f(e){var t=e.offset,n=e.buffer.length-1,i=0,a=1
1053for(45===e.buffer[t]&&(a=-1,t++);t<n;){var o=e.buffer[t++]
1054if(13===o)return e.offset=t+1,a*i
1055i=10*i+(o-48)}}function h(e,t,n){return e.offset=n+2,!0===e.optionReturnBuffers?e.buffer.slice(t,n):e.buffer.toString("utf-8",t,n)}function m(e){for(var t=e.offset,n=t,i=e.buffer,a=i.length-1;n<a;)if(13===i[n++])return h(e,t,n-1)}function v(e){var t=f(e)
1056if(void 0!==t)return t}function g(e,t,n){e.arrayCache.push(t),e.arrayPos.push(n)}function y(e){var t=e.arrayCache.pop(),n=e.arrayPos.pop()
1057if(e.arrayCache.length){var i=y(e)
1058if(!i)return void g(e,t,n)
1059t[n++]=i}return x(e,t,n)}function x(e,t,n){for(var i=e.buffer.length;n<t.length;){var a=e.offset
1060if(e.offset>=i)return void g(e,t,n)
1061var o=b(e,e.buffer[e.offset++])
1062if(void 0===o)return e.arrayCache.length||(e.offset=a),void g(e,t,n)
1063t[n]=o,n++}return t}function b(e,t){switch(t){case 36:return function(e){var t=v(e)
1064if(void 0!==t){if(-1===t)return null
1065var n=e.offset+t
1066return n+2>e.buffer.length?(e.bigStrSize=n+2,e.bigOffset=e.offset,e.totalChunkSize=e.buffer.length,void e.bufferCache.push(e.buffer)):h(e,e.offset,n)}}(e)
1067case 58:return function(e){return e.optionStringNumbers?function(e){var t=e.offset,n=e.buffer.length-1,i=0,a=""
1068for(45===e.buffer[t]&&(a+="-",t++);t<n;){var o=e.buffer[t++]
1069if(13===o)return e.offset=t+1,0!==i&&(a+=i),a
1070i>429496728?(a+=10*i+(o-48),i=0):48===o&&0===i?a+=0:i=10*i+(o-48)}}(e):f(e)}(e)
1071case 43:return m(e)
1072case 42:return function(e){var t=v(e)
1073if(void 0!==t)return-1===t?null:x(e,new Array(t),0)}(e)
1074case 45:return function(e){var t=m(e)
1075if(void 0!==t)return!0===e.optionReturnBuffers&&(t=t.toString()),new a(t)}(e)
1076default:return function(e,t){e.buffer=null,e.returnFatalError(t)}(e,new o("Protocol error, got "+JSON.stringify(String.fromCharCode(t))+" as reply type byte",JSON.stringify(e.buffer),e.offset))}}var w={returnError:"function",returnFatalError:"function",returnReply:"function",returnBuffers:"boolean",stringNumbers:"boolean",name:"string"}
1077function k(e){if(!(this instanceof k))return new k(e)
1078if(!e||!e.returnError||!e.returnReply)throw new TypeError("Please provide all return functions while initiating the parser")
1079for(var t in e)if(w.hasOwnProperty(t)&&typeof e[t]!==w[t])throw new TypeError('The options argument contains the property "'+t+'" that is either unknown or of a wrong type')
1080if("hiredis"===e.name)try{var i=n(68)
1081return console.error(new TypeError("Using hiredis is discouraged. Please use the faster JS parser by removing the name option.").stack.replace("Error","Warning")),new i(e)}catch(e){console.error(new TypeError("Hiredis is not installed. Please remove the `name` option. The (faster) JS parser is used instead.").stack.replace("Error","Warning"))}this.optionReturnBuffers=!!e.returnBuffers,this.optionStringNumbers=!!e.stringNumbers,this.returnError=e.returnError,this.returnFatalError=e.returnFatalError||e.returnError,this.returnReply=e.returnReply,this.name="javascript",this.reset()}function _(){if(s.length>51200)if(1===p||l>2*p){var e=Math.floor(s.length/10)
1082r<=e?r=0:r-=e,s=s.slice(e,s.length)}else l++,p--
1083else clearInterval(c),p=0,l=0,c=null}function S(e){var t=e.bufferCache,n=t.length,i=e.bigStrSize-e.bigOffset-2,a=e.bigStrSize-e.totalChunkSize
1084if(e.offset=a,a<=2){if(2===n)return t[0].slice(e.bigOffset,t[0].length+a-2)
1085n--,a=t[t.length-2].length+a}!function(e){s.length<e+r&&(r>116391936&&(r=52428800),s=d(e*(e>78643200?2:3)+r),r=0,p++,null===c&&(c=setInterval(_,50)))}(i)
1086var o=r
1087t[0].copy(s,o,e.bigOffset,t[0].length),r+=t[0].length-e.bigOffset
1088for(var l=1;l<n-1;l++)t[l].copy(s,r),r+=t[l].length
1089return t[l].copy(s,r,0,a-2),r+=a-2,s.slice(o,r)}k.prototype.reset=function(){this.offset=0,this.buffer=null,this.bigStrSize=0,this.bigOffset=0,this.totalChunkSize=0,this.bufferCache=[],this.arrayCache=[],this.arrayPos=[]},k.prototype.setReturnBuffers=function(e){if("boolean"!=typeof e)throw new TypeError("The returnBuffers argument has to be a boolean")
1090this.optionReturnBuffers=e},k.prototype.setStringNumbers=function(e){if("boolean"!=typeof e)throw new TypeError("The stringNumbers argument has to be a boolean")
1091this.optionStringNumbers=e},k.prototype.execute=function(e){if(null===this.buffer)this.buffer=e,this.offset=0
1092else if(0===this.bigStrSize){var t=this.buffer.length,n=t-this.offset,a=d(n+e.length)
1093if(this.buffer.copy(a,0,this.offset,t),e.copy(a,n,0,e.length),this.buffer=a,this.offset=0,this.arrayCache.length){var o=y(this)
1094if(!o)return
1095this.returnReply(o)}}else{if(!(this.totalChunkSize+e.length>=this.bigStrSize))return this.bufferCache.push(e),void(this.totalChunkSize+=e.length)
1096this.bufferCache.push(e)
1097var s=this.optionReturnBuffers?S(this):function(e){var t=e.bufferCache,n=t.length,a=e.bigStrSize-e.totalChunkSize
1098if(e.offset=a,a<=2){if(2===n)return t[0].toString("utf8",e.bigOffset,t[0].length+a-2)
1099n--,a=t[t.length-2].length+a}for(var o=i.write(t[0].slice(e.bigOffset)),s=1;s<n-1;s++)o+=i.write(t[s])
1100return o+i.end(t[s].slice(0,a-2))}(this)
1101if(this.bigStrSize=0,this.bufferCache=[],this.buffer=e,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=s,!(s=y(this))))return
1102this.returnReply(s)}for(;this.offset<this.buffer.length;){var r=this.offset,c=this.buffer[this.offset++],p=b(this,c)
1103if(void 0===p)return void(this.arrayCache.length||(this.offset=r))
110445===c?this.returnError(p):this.returnReply(p)}this.buffer=null},e.exports=k},function(e,t,n){"use strict"
1105var i=n(1),a=n(31),o=n(30).RedisError,s=!1
1106function r(e,t){a(e,"The options argument is required"),a.strictEqual(typeof e,"object","The options argument has to be of type object"),o.call(this,e.message,s),Object.defineProperty(this,"message",{value:e.message||"",configurable:!0,writable:!0}),(t||void 0===t)&&Error.captureStackTrace(this,r)
1107for(var n=Object.keys(e),i=n.pop();i;i=n.pop())this[i]=e[i]}function c(e){a(e,"The options argument is required"),a.strictEqual(typeof e,"object","The options argument has to be of type object"),r.call(this,e,s),Object.defineProperty(this,"message",{value:e.message||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,c)
1108for(var t=Object.keys(e),n=t.pop();n;n=t.pop())this[n]=e[n]}i.inherits(r,o),i.inherits(c,r),Object.defineProperty(r.prototype,"name",{value:"AbortError",configurable:!0,writable:!0}),Object.defineProperty(c.prototype,"name",{value:"AggregateError",configurable:!0,writable:!0}),e.exports={AbortError:r,AggregateError:c}},function(e,t){e.exports=require("tls")},function(e,t,n){var i=n(5),a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
1109function o(e){var t,n
1110for(t=[],n=0;n<e.length;n++)t.push(a[e[n]%a.length])
1111return t.join("")}e.exports=function(e,t){if(void 0===t)return o(i.pseudoRandomBytes(e))
1112i.pseudoRandomBytes(e,function(e,n){if(e)return t(e)
1113t(null,o(n))})}},function(e,t){function n(e){var t=new Error("Cannot find module '"+e+"'")
1114throw t.code="MODULE_NOT_FOUND",t}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=74},function(e,t,n){"use strict"
1115const i=n(34)
1116let a=0
1117e.exports=class extends i{constructor(e){super(e,"/_"+a++),this.children=new Set}initAdapter(){}emit(){const e=Array.prototype.slice.call(arguments)
1118this.children.forEach(t=>{t.rooms=this.rooms,t.flags=this.flags,t.emit.apply(t,e)}),this.rooms=[],this.flags={}}createChild(e){const t=new i(this.server,e)
1119return t.fns=this.fns.slice(0),this.listeners("connect").forEach(e=>t.on("connect",e)),this.listeners("connection").forEach(e=>t.on("connection",e)),this.children.add(t),this.server.nsps[e]=t,t}}},function(e,t,n){var i=n(7).EventEmitter,a=n(16),o=n(24),s=n(3),r=n(6)("socket.io:socket")
1120e.exports=t=p,t.events=["error","connect","disconnect","disconnecting","newListener","removeListener"]
1121var c=i.prototype.emit
1122function p(e,t,n){this.nsp=e,this.server=e.server,this.adapter=this.nsp.adapter,this.id="/"!==e.name?e.name+"#"+t.id:t.id,this.client=t,this.conn=t.conn,this.rooms={},this.acks={},this.connected=!0,this.disconnected=!1,this.handshake=this.buildHandshake(n),this.fns=[],this.flags={},this._rooms=[]}p.prototype.__proto__=i.prototype,["json","volatile","broadcast","local"].forEach(function(e){Object.defineProperty(p.prototype,e,{get:function(){return this.flags[e]=!0,this}})}),Object.defineProperty(p.prototype,"request",{get:function(){return this.conn.request}}),p.prototype.buildHandshake=function(e){var t
1123return{headers:this.request.headers,time:new Date+"",address:this.conn.remoteAddress,xdomain:!!this.request.headers.origin,secure:!!this.request.connection.encrypted,issued:+new Date,url:this.request.url,query:(t=s.parse(this.request.url,!0).query,Object.assign({},e,t))}},p.prototype.emit=function(e){if(~t.events.indexOf(e))return c.apply(this,arguments),this
1124var n=Array.prototype.slice.call(arguments),i={type:(void 0!==this.flags.binary?this.flags.binary:o(n))?a.BINARY_EVENT:a.EVENT,data:n}
1125if("function"==typeof n[n.length-1]){if(this._rooms.length||this.flags.broadcast)throw new Error("Callbacks are not supported when broadcasting")
1126r("emitting packet with ack id %d",this.nsp.ids),this.acks[this.nsp.ids]=n.pop(),i.id=this.nsp.ids++}var s=this._rooms.slice(0),p=Object.assign({},this.flags)
1127return this._rooms=[],this.flags={},s.length||p.broadcast?this.adapter.broadcast(i,{except:[this.id],rooms:s,flags:p}):this.packet(i,p),this},p.prototype.to=p.prototype.in=function(e){return~this._rooms.indexOf(e)||this._rooms.push(e),this},p.prototype.send=p.prototype.write=function(){var e=Array.prototype.slice.call(arguments)
1128return e.unshift("message"),this.emit.apply(this,e),this},p.prototype.packet=function(e,t){e.nsp=this.nsp.name,(t=t||{}).compress=!1!==t.compress,this.client.packet(e,t)},p.prototype.join=function(e,t){r("joining room %s",e)
1129var n=this
1130return Array.isArray(e)||(e=[e]),(e=e.filter(function(e){return!n.rooms.hasOwnProperty(e)})).length?(this.adapter.addAll(this.id,e,function(i){if(i)return t&&t(i)
1131r("joined room %s",e),e.forEach(function(e){n.rooms[e]=e}),t&&t(null)}),this):(t&&t(null),this)},p.prototype.leave=function(e,t){r("leave room %s",e)
1132var n=this
1133return this.adapter.del(this.id,e,function(i){if(i)return t&&t(i)
1134r("left room %s",e),delete n.rooms[e],t&&t(null)}),this},p.prototype.leaveAll=function(){this.adapter.delAll(this.id),this.rooms={}},p.prototype.onconnect=function(){r("socket connected - writing packet"),this.nsp.connected[this.id]=this,this.join(this.id),"/"===this.nsp.name&&0===this.nsp.fns.length?r("packet already sent in initial handshake"):this.packet({type:a.CONNECT})},p.prototype.onpacket=function(e){switch(r("got packet %j",e),e.type){case a.EVENT:case a.BINARY_EVENT:this.onevent(e)
1135break
1136case a.ACK:case a.BINARY_ACK:this.onack(e)
1137break
1138case a.DISCONNECT:this.ondisconnect()
1139break
1140case a.ERROR:this.onerror(new Error(e.data))}},p.prototype.onevent=function(e){var t=e.data||[]
1141r("emitting event %j",t),null!=e.id&&(r("attaching ack callback to event"),t.push(this.ack(e.id))),this.dispatch(t)},p.prototype.ack=function(e){var t=this,n=!1
1142return function(){if(!n){var i=Array.prototype.slice.call(arguments)
1143r("sending ack %j",i),t.packet({id:e,type:o(i)?a.BINARY_ACK:a.ACK,data:i}),n=!0}}},p.prototype.onack=function(e){var t=this.acks[e.id]
1144"function"==typeof t?(r("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):r("bad ack %s",e.id)},p.prototype.ondisconnect=function(){r("got disconnect packet"),this.onclose("client namespace disconnect")},p.prototype.onerror=function(e){this.listeners("error").length?this.emit("error",e):(console.error("Missing error handler on `socket`."),console.error(e.stack))},p.prototype.onclose=function(e){if(!this.connected)return this
1145r("closing socket - reason %s",e),this.emit("disconnecting",e),this.leaveAll(),this.nsp.remove(this),this.client.remove(this),this.connected=!1,this.disconnected=!0,delete this.nsp.connected[this.id],this.emit("disconnect",e)},p.prototype.error=function(e){this.packet({type:a.ERROR,data:e})},p.prototype.disconnect=function(e){return this.connected?(e?this.client.disconnect():(this.packet({type:a.DISCONNECT}),this.onclose("server namespace disconnect")),this):this},p.prototype.compress=function(e){return this.flags.compress=e,this},p.prototype.binary=function(e){return this.flags.binary=e,this},p.prototype.dispatch=function(e){r("dispatching an event %j",e)
1146var t=this
1147this.run(e,function(n){process.nextTick(function(){if(n)return t.error(n.data||n.message)
1148c.apply(t,e)})})},p.prototype.use=function(e){return this.fns.push(e),this},p.prototype.run=function(e,t){var n=this.fns.slice(0)
1149if(!n.length)return t(null)
1150!function i(a){n[a](e,function(e){return e?t(e):n[a+1]?void i(a+1):t(null)})}(0)}},function(e,t,n){var i=n(36),a=n(35),o=Object.prototype.toString,s="function"==typeof global.Blob||"[object BlobConstructor]"===o.call(global.Blob),r="function"==typeof global.File||"[object FileConstructor]"===o.call(global.File)
1151t.deconstructPacket=function(e){var t=[],n=e.data,o=e
1152return o.data=function e(t,n){if(!t)return t
1153if(a(t)){var o={_placeholder:!0,num:n.length}
1154return n.push(t),o}if(i(t)){for(var s=new Array(t.length),r=0;r<t.length;r++)s[r]=e(t[r],n)
1155return s}if("object"==typeof t&&!(t instanceof Date)){s={}
1156for(var c in t)s[c]=e(t[c],n)
1157return s}return t}(n,t),o.attachments=t.length,{packet:o,buffers:t}},t.reconstructPacket=function(e,t){return e.data=function e(t,n){if(!t)return t
1158if(t&&t._placeholder)return n[t.num]
1159if(i(t))for(var a=0;a<t.length;a++)t[a]=e(t[a],n)
1160else if("object"==typeof t)for(var o in t)t[o]=e(t[o],n)
1161return t}(e.data,t),e.attachments=void 0,e},t.removeBlobs=function(e,t){var n=0,o=e
1162!function e(c,p,l){if(!c)return c
1163if(s&&c instanceof Blob||r&&c instanceof File){n++
1164var u=new FileReader
1165u.onload=function(){l?l[p]=this.result:o=this.result,--n||t(o)},u.readAsArrayBuffer(c)}else if(i(c))for(var d=0;d<c.length;d++)e(c[d],d,c)
1166else if("object"==typeof c&&!a(c))for(var f in c)e(c[f],f,c)}(o),n||t(o)}},function(e,t,n){function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t]
1167return e}(e)}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},i.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this
1168var n,i=this._callbacks["$"+e]
1169if(!i)return this
1170if(1==arguments.length)return delete this._callbacks["$"+e],this
1171for(var a=0;a<i.length;a++)if((n=i[a])===t||n.fn===t){i.splice(a,1)
1172break}return this},i.prototype.emit=function(e){this._callbacks=this._callbacks||{}
1173var t=[].slice.call(arguments,1),n=this._callbacks["$"+e]
1174if(n)for(var i=0,a=(n=n.slice(0)).length;i<a;++i)n[i].apply(this,t)
1175return this},i.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,n){var i=n(16),a=n(6)("socket.io:client"),o=n(3)
1176function s(e,t){this.server=e,this.conn=t,this.encoder=e.encoder,this.decoder=new e.parser.Decoder,this.id=t.id,this.request=t.request,this.setup(),this.sockets={},this.nsps={},this.connectBuffer=[]}e.exports=s,s.prototype.setup=function(){this.onclose=this.onclose.bind(this),this.ondata=this.ondata.bind(this),this.onerror=this.onerror.bind(this),this.ondecoded=this.ondecoded.bind(this),this.decoder.on("decoded",this.ondecoded),this.conn.on("data",this.ondata),this.conn.on("error",this.onerror),this.conn.on("close",this.onclose)},s.prototype.connect=function(e,t){if(this.server.nsps[e])return a("connecting to namespace %s",e),this.doConnect(e,t)
1177this.server.checkNamespace(e,t,n=>{n?(a("dynamic namespace %s was created",n.name),this.doConnect(e,t)):(a("creation of namespace %s was denied",e),this.packet({type:i.ERROR,nsp:e,data:"Invalid namespace"}))})},s.prototype.doConnect=function(e,t){var n=this.server.of(e)
1178if("/"==e||this.nsps["/"])var i=this,a=n.add(this,t,function(){i.sockets[a.id]=a,i.nsps[n.name]=a,"/"==n.name&&i.connectBuffer.length>0&&(i.connectBuffer.forEach(i.connect,i),i.connectBuffer=[])})
1179else this.connectBuffer.push(e)},s.prototype.disconnect=function(){for(var e in this.sockets)this.sockets.hasOwnProperty(e)&&this.sockets[e].disconnect()
1180this.sockets={},this.close()},s.prototype.remove=function(e){if(this.sockets.hasOwnProperty(e.id)){var t=this.sockets[e.id].nsp.name
1181delete this.sockets[e.id],delete this.nsps[t]}else a("ignoring remove for %s",e.id)},s.prototype.close=function(){"open"==this.conn.readyState&&(a("forcing transport close"),this.conn.close(),this.onclose("forced server close"))},s.prototype.packet=function(e,t){t=t||{}
1182var n=this
1183function i(e){if(!t.volatile||n.conn.transport.writable)for(var i=0;i<e.length;i++)n.conn.write(e[i],{compress:t.compress})}"open"==this.conn.readyState?(a("writing packet %j",e),t.preEncoded?i(e):this.encoder.encode(e,i)):a("ignoring packet write %j",e)},s.prototype.ondata=function(e){try{this.decoder.add(e)}catch(e){this.onerror(e)}},s.prototype.ondecoded=function(e){if(i.CONNECT==e.type)this.connect(o.parse(e.nsp).pathname,o.parse(e.nsp,!0).query)
1184else{var t=this.nsps[e.nsp]
1185t?process.nextTick(function(){t.onpacket(e)}):a("no socket for namespace %s",e.nsp)}},s.prototype.onerror=function(e){for(var t in this.sockets)this.sockets.hasOwnProperty(t)&&this.sockets[t].onerror(e)
1186this.conn.close()},s.prototype.onclose=function(e){for(var t in a("client close with reason %s",e),this.destroy(),this.sockets)this.sockets.hasOwnProperty(t)&&this.sockets[t].onclose(e)
1187this.sockets={},this.decoder.destroy()},s.prototype.destroy=function(){this.conn.removeListener("data",this.ondata),this.conn.removeListener("error",this.onerror),this.conn.removeListener("close",this.onclose),this.decoder.removeListener("decoded",this.ondecoded)}},function(e){e.exports={_from:"socket.io-client@^2.1.1",_id:"socket.io-client@2.1.1",_inBundle:!1,_integrity:"sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",_location:"/socket.io-client",_phantomChildren:{},_requested:{type:"range",registry:!0,raw:"socket.io-client@^2.1.1",name:"socket.io-client",escapedName:"socket.io-client",rawSpec:"^2.1.1",saveSpec:null,fetchSpec:"^2.1.1"},_requiredBy:["/","/socket.io"],_resolved:"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",_shasum:"dcb38103436ab4578ddb026638ae2f21b623671f",_spec:"socket.io-client@^2.1.1",_where:"C:\\Users\\Dr\\Documents\\GitHub\\imock-socket",bugs:{url:"https://github.com/Automattic/socket.io-client/issues"},bundleDependencies:!1,contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],dependencies:{backo2:"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1",debug:"~3.1.0","engine.io-client":"~3.2.0","has-binary2":"~1.0.2","has-cors":"1.1.0",indexof:"0.0.1","object-component":"0.0.3",parseqs:"0.0.5",parseuri:"0.0.5","socket.io-parser":"~3.2.0","to-array":"0.1.4"},deprecated:!1,description:"[![Build Status](https://secure.travis-ci.org/socketio/socket.io-client.svg?branch=master)](http://travis-ci.org/socketio/socket.io-client) [![Dependency Status](https://david-dm.org/socketio/socket.io-client.svg)](https://david-dm.org/socketio/socket.io-client) [![devDependency Status](https://david-dm.org/socketio/socket.io-client/dev-status.svg)](https://david-dm.org/socketio/socket.io-client#info=devDependencies) [![NPM version](https://badge.fury.io/js/socket.io-client.svg)](https://www.npmjs.com/package/socket.io-client) ![Downloads](http://img.shields.io/npm/dm/socket.io-client.svg?style=flat) [![](http://slack.socket.io/badge.svg?)](http://slack.socket.io)",devDependencies:{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0",derequire:"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1",gulp:"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1",istanbul:"^0.4.5",mocha:"^3.3.0","socket.io":"2.1.1","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0",zuul:"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},files:["lib/","dist/"],homepage:"https://github.com/Automattic/socket.io-client#readme",keywords:["realtime","framework","websocket","tcp","events","client"],license:"MIT",main:"./lib/index",name:"socket.io-client",repository:{type:"git",url:"git+https://github.com/Automattic/socket.io-client.git"},scripts:{test:"gulp test"},version:"2.1.1"}},function(e,t,n){"use strict"
1188const i=n(10),a=n(7),o=n(5),s=n(41),r=n(8),c=n(3),p=n(18),l=n(40),u=n(17),d=n(42),f=i.Buffer
1189function h(){this.destroy()}function m(e,t,n){e.writable&&(n=n||r.STATUS_CODES[t],e.write(`HTTP/1.1 ${t} ${r.STATUS_CODES[t]}\r\n`+"Connection: close\r\nContent-type: text/html\r\n"+`Content-Length: ${f.byteLength(n)}\r\n`+"\r\n"+n)),e.removeListener("error",h),e.destroy()}e.exports=class extends a{constructor(e,t){if(super(),null==(e=Object.assign({maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null},e)).port&&!e.server&&!e.noServer)throw new TypeError("missing or invalid options")
1190null!=e.port?(this._server=r.createServer((e,t)=>{const n=r.STATUS_CODES[426]
1191t.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),t.end(n)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server&&(this._ultron=new s(this._server),this._ultron.on("listening",()=>this.emit("listening")),this._ultron.on("error",e=>this.emit("error",e)),this._ultron.on("upgrade",(e,t,n)=>{this.handleUpgrade(e,t,n,t=>{this.emit("connection",t,e)})})),!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e}close(e){if(this.clients)for(const e of this.clients)e.terminate()
1192const t=this._server
1193if(t&&(this._ultron.destroy(),this._ultron=this._server=null,null!=this.options.port))return t.close(e)
1194e&&e()}shouldHandle(e){return!this.options.path||c.parse(e.url).pathname===this.options.path}handleUpgrade(e,t,n,i){t.on("error",h)
1195const a=+e.headers["sec-websocket-version"],o={}
1196if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!e.headers["sec-websocket-key"]||8!==a&&13!==a||!this.shouldHandle(e))return m(t,400)
1197if(this.options.perMessageDeflate){const n=new p(this.options.perMessageDeflate,!0,this.options.maxPayload)
1198try{const i=l.parse(e.headers["sec-websocket-extensions"])
1199i[p.extensionName]&&(n.accept(i[p.extensionName]),o[p.extensionName]=n)}catch(e){return m(t,400)}}var s=(e.headers["sec-websocket-protocol"]||"").split(/, */)
1200if(this.options.handleProtocols){if(!1===(s=this.options.handleProtocols(s,e)))return m(t,401)}else s=s[0]
1201if(this.options.verifyClient){const r={origin:e.headers[`${8===a?"sec-websocket-origin":"origin"}`],secure:!(!e.connection.authorized&&!e.connection.encrypted),req:e}
1202if(2===this.options.verifyClient.length)return void this.options.verifyClient(r,(r,c,p)=>{if(!r)return m(t,c||401,p)
1203this.completeUpgrade(s,o,a,e,t,n,i)})
1204if(!this.options.verifyClient(r))return m(t,401)}this.completeUpgrade(s,o,a,e,t,n,i)}completeUpgrade(e,t,n,i,a,s,r){if(!a.readable||!a.writable)return a.destroy()
1205const c=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${o.createHash("sha1").update(i.headers["sec-websocket-key"]+u.GUID,"binary").digest("base64")}`]
1206if(e&&c.push(`Sec-WebSocket-Protocol: ${e}`),t[p.extensionName]){const e=t[p.extensionName].params,n=l.format({[p.extensionName]:[e]})
1207c.push(`Sec-WebSocket-Extensions: ${n}`)}this.emit("headers",c,i),a.write(c.concat("\r\n").join("\r\n"))
1208const f=new d([a,s],null,{maxPayload:this.options.maxPayload,protocolVersion:n,extensions:t,protocol:e})
1209this.clients&&(this.clients.add(f),f.on("close",()=>this.clients.delete(f))),a.removeListener("error",h),r(f)}}},function(e,t){if(typeof utf-8-validate==="undefined"){var n=new Error("Cannot find module 'utf-8-validate'")
1210throw n.code="MODULE_NOT_FOUND",n}e.exports=utf-8-validate},function(e,t,n){"use strict"
1211try{const i=n(82)
1212e.exports="object"==typeof i?i.Validation.isValidUTF8:i}catch(t){e.exports=(()=>!0)}},function(e,t,n){"use strict"
1213class i{constructor(e,t){this.target=t,this.type=e}}class a extends i{constructor(e,t){super("message",t),this.data=e}}class o extends i{constructor(e,t,n){super("close",n),this.wasClean=n._closeFrameReceived&&n._closeFrameSent,this.reason=t,this.code=e}}class s extends i{constructor(e){super("open",e)}}const r={addEventListener(e,t){function n(e){t.call(this,new a(e,this))}function i(e,n){t.call(this,new o(e,n,this))}function r(e){e.type="error",e.target=this,t.call(this,e)}function c(){t.call(this,new s(this))}"function"==typeof t&&("message"===e?(n._listener=t,this.on(e,n)):"close"===e?(i._listener=t,this.on(e,i)):"error"===e?(r._listener=t,this.on(e,r)):"open"===e?(c._listener=t,this.on(e,c)):this.on(e,t))},removeEventListener(e,t){const n=this.listeners(e)
1214for(var i=0;i<n.length;i++)n[i]!==t&&n[i]._listener!==t||this.removeListener(e,n[i])}}
1215e.exports=r},function(e,t){if("undefined"==typeof bufferutil){var n=new Error("Cannot find module 'bufferutil'")
1216throw n.code="MODULE_NOT_FOUND",n}e.exports=bufferutil},function(e,t,n){"use strict"
1217function i(e){if(!(this instanceof i))return new i(e)
1218e=e||{},this.concurrency=e.concurrency||1/0,this.pending=0,this.jobs=[],this.cbs=[],this._done=function(){this.pending--,this._run()}.bind(this)}["push","unshift","splice"].forEach(function(e){i.prototype[e]=function(){var t=Array.prototype[e].apply(this.jobs,arguments)
1219return this._run(),t}}),Object.defineProperty(i.prototype,"length",{get:function(){return this.pending+this.jobs.length}}),i.prototype._run=function(){if(this.pending!==this.concurrency){if(this.jobs.length){var e=this.jobs.shift()
1220this.pending++,e(this._done),this._run()}if(0===this.pending)for(;0!==this.cbs.length;){var t=this.cbs.pop()
1221process.nextTick(t)}}},i.prototype.onDone=function(e){"function"==typeof e&&(this.cbs.push(e),this._run())},e.exports=i},function(e,t){e.exports=require("buffer")},function(e,t,n){"use strict"
1222const i=n(42)
1223i.Server=n(81),i.Receiver=n(39),i.Sender=n(37),e.exports=i},function(e,t){e.exports=uws},function(e,t,n){"use strict"
1224t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string")
1225for(var n={},a=t||{},s=e.split(o),c=a.decode||i,p=0;p<s.length;p++){var l=s[p],u=l.indexOf("=")
1226if(!(u<0)){var d=l.substr(0,u).trim(),f=l.substr(++u,l.length).trim()
1227'"'==f[0]&&(f=f.slice(1,-1)),void 0==n[d]&&(n[d]=r(f,c))}}return n},t.serialize=function(e,t,n){var i=n||{},o=i.encode||a
1228if("function"!=typeof o)throw new TypeError("option encode is invalid")
1229if(!s.test(e))throw new TypeError("argument name is invalid")
1230var r=o(t)
1231if(r&&!s.test(r))throw new TypeError("argument val is invalid")
1232var c=e+"="+r
1233if(null!=i.maxAge){var p=i.maxAge-0
1234if(isNaN(p))throw new Error("maxAge should be a Number")
1235c+="; Max-Age="+Math.floor(p)}if(i.domain){if(!s.test(i.domain))throw new TypeError("option domain is invalid")
1236c+="; Domain="+i.domain}if(i.path){if(!s.test(i.path))throw new TypeError("option path is invalid")
1237c+="; Path="+i.path}if(i.expires){if("function"!=typeof i.expires.toUTCString)throw new TypeError("option expires is invalid")
1238c+="; Expires="+i.expires.toUTCString()}i.httpOnly&&(c+="; HttpOnly")
1239i.secure&&(c+="; Secure")
1240if(i.sameSite){switch("string"==typeof i.sameSite?i.sameSite.toLowerCase():i.sameSite){case!0:c+="; SameSite=Strict"
1241break
1242case"lax":c+="; SameSite=Lax"
1243break
1244case"strict":c+="; SameSite=Strict"
1245break
1246default:throw new TypeError("option sameSite is invalid")}}return c}
1247var i=decodeURIComponent,a=encodeURIComponent,o=/; */,s=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/
1248function r(e,t){try{return t(e)}catch(t){return e}}},function(e,t,n){var i=n(25),a=n(19),o=n(1),s=n(6)("engine:ws")
1249function r(e){i.call(this,e)
1250var t=this
1251this.socket=e.websocket,this.socket.on("message",this.onData.bind(this)),this.socket.once("close",this.onClose.bind(this)),this.socket.on("error",this.onError.bind(this)),this.socket.on("headers",function(e){t.emit("headers",e)}),this.writable=!0,this.perMessageDeflate=null}e.exports=r,o.inherits(r,i),r.prototype.name="websocket",r.prototype.handlesUpgrades=!0,r.prototype.supportsFraming=!0,r.prototype.onData=function(e){s('received "%s"',e),i.prototype.onData.call(this,e)},r.prototype.send=function(e){for(var t=this,n=0;n<e.length;n++){var i=e[n]
1252a.encodePacket(i,t.supportsBinary,o)}function o(e){s('writing "%s"',e)
1253var n={};(i.options&&(n.compress=i.options.compress),t.perMessageDeflate)&&("string"==typeof e?Buffer.byteLength(e):e.length)<t.perMessageDeflate.threshold&&(n.compress=!1)
1254t.writable=!1,t.socket.send(e,n,r)}function r(e){if(e)return t.onError("write error",e.stack)
1255t.writable=!0,t.emit("drain")}},r.prototype.doClose=function(e){s("closing"),this.socket.close(),e&&e()}},function(e,t,n){var i=n(47),a=n(49),o=/\\\\n/g,s=/(\\)?\\n/g,r=n(1)
1256function c(e){i.call(this,e),this.head="___eio["+(e._query.j||"").replace(/[^0-9]/g,"")+"](",this.foot=");"}e.exports=c,r.inherits(c,i),c.prototype.onData=function(e){"string"==typeof(e=a.parse(e).d)&&(e=e.replace(s,function(e,t){return t?e:"\n"}),i.prototype.onData.call(this,e.replace(o,"\\n")))},c.prototype.doWrite=function(e,t,n){var a=JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")
1257e=this.head+a+this.foot,i.prototype.doWrite.call(this,e,t,n)}},function(e){e.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana"},"application/3gpp-ims+xml":{source:"iana"},"application/a2l":{source:"iana"},"application/activemessage":{source:"iana"},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana"},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",extensions:["atomsvc"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana"},"application/bacnet-xdd+zip":{source:"iana"},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana"},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana"},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/cbor":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana"},"application/ccxml+xml":{source:"iana",extensions:["ccxml"]},"application/cdfx+xml":{source:"iana"},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana"},"application/cellml+xml":{source:"iana"},"application/cfw":{source:"iana"},"application/clue_info+xml":{source:"iana"},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana"},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana"},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana"},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana"},"application/cstadata+xml":{source:"iana"},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",extensions:["mpd"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana"},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana"},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/docbook+xml":{source:"apache",extensions:["dbk"]},"application/dskpp+xml":{source:"iana"},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/emergencycalldata.comment+xml":{source:"iana"},"application/emergencycalldata.control+xml":{source:"iana"},"application/emergencycalldata.deviceinfo+xml":{source:"iana"},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana"},"application/emergencycalldata.serviceinfo+xml":{source:"iana"},"application/emergencycalldata.subscriberinfo+xml":{source:"iana"},"application/emergencycalldata.veds+xml":{source:"iana"},"application/emma+xml":{source:"iana",extensions:["emma"]},"application/emotionml+xml":{source:"iana"},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana"},"application/epub+zip":{source:"iana",extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana"},"application/fhir+xml":{source:"iana"},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1,extensions:["woff"]},"application/framework-attributes+xml":{source:"iana"},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geoxacml+xml":{source:"iana"},"application/gml+xml":{source:"iana",extensions:["gml"]},"application/gpx+xml":{source:"apache",extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana"},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana"},"application/ibe-pkg-reply+xml":{source:"iana"},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana"},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana"},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana"},"application/kpml-response+xml":{source:"iana"},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana"},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana"},"application/lost+xml":{source:"iana",extensions:["lostxml"]},"application/lostsync+xml":{source:"iana"},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",extensions:["mads"]},"application/manifest+json":{charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",extensions:["mathml"]},"application/mathml-content+xml":{source:"iana"},"application/mathml-presentation+xml":{source:"iana"},"application/mbms-associated-procedure-description+xml":{source:"iana"},"application/mbms-deregister+xml":{source:"iana"},"application/mbms-envelope+xml":{source:"iana"},"application/mbms-msk+xml":{source:"iana"},"application/mbms-msk-response+xml":{source:"iana"},"application/mbms-protection-description+xml":{source:"iana"},"application/mbms-reception-report+xml":{source:"iana"},"application/mbms-register+xml":{source:"iana"},"application/mbms-register-response+xml":{source:"iana"},"application/mbms-schedule+xml":{source:"iana"},"application/mbms-user-service-description+xml":{source:"iana"},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana"},"application/media_control+xml":{source:"iana"},"application/mediaservercontrol+xml":{source:"iana",extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",extensions:["metalink"]},"application/metalink4+xml":{source:"iana",extensions:["meta4"]},"application/mets+xml":{source:"iana",extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mmt-usd+xml":{source:"iana"},"application/mods+xml":{source:"iana",extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana"},"application/mrb-publish+xml":{source:"iana"},"application/msc-ivr+xml":{source:"iana"},"application/msc-mixer+xml":{source:"iana"},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana"},"application/n-triples":{source:"iana"},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana"},"application/news-groupinfo":{source:"iana"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana"},"application/node":{source:"iana"},"application/nss":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p2p-overlay+xml":{source:"iana"},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana"},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana"},"application/pidf-diff+xml":{source:"iana"},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",extensions:["pls"]},"application/poc-settings+xml":{source:"iana"},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana"},"application/provenance+xml":{source:"iana"},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.hpub+zip":{source:"iana"},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana"},"application/pskc+xml":{source:"iana",extensions:["pskcxml"]},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf"]},"application/reginfo+xml":{source:"iana",extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",extensions:["rld"]},"application/rfc+xml":{source:"iana"},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana"},"application/rls-services+xml":{source:"iana",extensions:["rs"]},"application/route-apd+xml":{source:"iana"},"application/route-s-tsid+xml":{source:"iana"},"application/route-usd+xml":{source:"iana"},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana"},"application/samlmetadata+xml":{source:"iana"},"application/sbml+xml":{source:"iana",extensions:["sbml"]},"application/scaip+xml":{source:"iana"},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/sep+xml":{source:"iana"},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",extensions:["shf"]},"application/sieve":{source:"iana"},"application/simple-filter+xml":{source:"iana"},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",extensions:["srx"]},"application/spirits-event+xml":{source:"iana"},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",extensions:["grxml"]},"application/sru+xml":{source:"iana",extensions:["sru"]},"application/ssdl+xml":{source:"apache",extensions:["ssdl"]},"application/ssml+xml":{source:"iana",extensions:["ssml"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/tei+xml":{source:"iana",extensions:["tei","teicorpus"]},"application/thraud+xml":{source:"iana",extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tnauthlist":{source:"iana"},"application/trig":{source:"iana"},"application/ttml+xml":{source:"iana"},"application/tve-trigger":{source:"iana"},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana"},"application/urc-ressheet+xml":{source:"iana"},"application/urc-targetdesc+xml":{source:"iana"},"application/urc-uisocketdesc+xml":{source:"iana"},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana"},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana"},"application/vnd.3gpp-prose+xml":{source:"iana"},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana"},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana"},"application/vnd.3gpp.bsf+xml":{source:"iana"},"application/vnd.3gpp.gmop+xml":{source:"iana"},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana"},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana"},"application/vnd.3gpp.mcptt-info+xml":{source:"iana"},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana"},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana"},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana"},"application/vnd.3gpp.mid-call+xml":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana"},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana"},"application/vnd.3gpp.srvcc-info+xml":{source:"iana"},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana"},"application/vnd.3gpp.ussd+xml":{source:"iana"},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana"},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",extensions:["mpkg"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana"},"application/vnd.balsamiq.bmml+xml":{source:"iana"},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana"},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana"},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana"},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",extensions:["wbs"]},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana"},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana"},"application/vnd.cybank":{source:"iana"},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume-movie":{source:"iana"},"application/vnd.desmume.movie":{source:"apache"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana"},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana"},"application/vnd.dvb.notif-container+xml":{source:"iana"},"application/vnd.dvb.notif-generic+xml":{source:"iana"},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana"},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana"},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana"},"application/vnd.dvb.notif-init+xml":{source:"iana"},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana"},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana"},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana"},"application/vnd.eszigno3+xml":{source:"iana",extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana"},"application/vnd.etsi.asic-e+zip":{source:"iana"},"application/vnd.etsi.asic-s+zip":{source:"iana"},"application/vnd.etsi.cug+xml":{source:"iana"},"application/vnd.etsi.iptvcommand+xml":{source:"iana"},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana"},"application/vnd.etsi.iptvprofile+xml":{source:"iana"},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana"},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana"},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana"},"application/vnd.etsi.iptvservice+xml":{source:"iana"},"application/vnd.etsi.iptvsync+xml":{source:"iana"},"application/vnd.etsi.iptvueprofile+xml":{source:"iana"},"application/vnd.etsi.mcid+xml":{source:"iana"},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana"},"application/vnd.etsi.pstn+xml":{source:"iana"},"application/vnd.etsi.sci+xml":{source:"iana"},"application/vnd.etsi.simservs+xml":{source:"iana"},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana"},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana"},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana"},"application/vnd.gov.sk.e-form+zip":{source:"iana"},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana"},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana"},"application/vnd.imagemeter.image+zip":{source:"iana"},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana"},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana"},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana"},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana"},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana"},"application/vnd.iptc.g2.newsitem+xml":{source:"iana"},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana"},"application/vnd.iptc.g2.packageitem+xml":{source:"iana"},"application/vnd.iptc.g2.planningitem+xml":{source:"iana"},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",extensions:["lasxml"]},"application/vnd.liberty-request+xml":{source:"iana"},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",extensions:["lbe"]},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana"},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana"},"application/vnd.marlin.drm.conftoken+xml":{source:"iana"},"application/vnd.marlin.drm.license+xml":{source:"iana"},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana"},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana"},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana"},"application/vnd.ms-printing.printticket+xml":{source:"apache"},"application/vnd.ms-printschematicket+xml":{source:"iana"},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana"},"application/vnd.nokia.iptv.config+xml":{source:"iana"},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana"},"application/vnd.nokia.landmarkcollection+xml":{source:"iana"},"application/vnd.nokia.n-gage.ac+xml":{source:"iana"},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana"},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana"},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana"},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana"},"application/vnd.oipf.dae.xhtml+xml":{source:"iana"},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana"},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana"},"application/vnd.oipf.spdlist+xml":{source:"iana"},"application/vnd.oipf.ueprofile+xml":{source:"iana"},"application/vnd.oipf.userprofile+xml":{source:"iana"},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana"},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana"},"application/vnd.oma.bcast.imd+xml":{source:"iana"},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana"},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana"},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana"},"application/vnd.oma.bcast.sprov+xml":{source:"iana"},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana"},"application/vnd.oma.cab-feature-handler+xml":{source:"iana"},"application/vnd.oma.cab-pcc+xml":{source:"iana"},"application/vnd.oma.cab-subs-invite+xml":{source:"iana"},"application/vnd.oma.cab-user-prefs+xml":{source:"iana"},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana"},"application/vnd.oma.group-usage-list+xml":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana"},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana"},"application/vnd.oma.poc.final-report+xml":{source:"iana"},"application/vnd.oma.poc.groups+xml":{source:"iana"},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana"},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana"},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana"},"application/vnd.oma.xcap-directory+xml":{source:"iana"},"application/vnd.omads-email+xml":{source:"iana"},"application/vnd.omads-file+xml":{source:"iana"},"application/vnd.omads-folder+xml":{source:"iana"},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana"},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana"},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana"},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana"},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana"},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana"},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos+xml":{source:"iana"},"application/vnd.paos.xml":{source:"apache"},"application/vnd.patentdive":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana"},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana"},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana"},"application/vnd.radisys.msml+xml":{source:"iana"},"application/vnd.radisys.msml-audit+xml":{source:"iana"},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana"},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana"},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana"},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana"},"application/vnd.radisys.msml-conf+xml":{source:"iana"},"application/vnd.radisys.msml-dialog+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana"},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana"},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.software602.filler.form+xml":{source:"iana"},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana"},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana"},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.tmd.mediaflex.api+xml":{source:"iana"},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana"},"application/vnd.wv.ssp+xml":{source:"iana"},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana"},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",extensions:["zaz"]},"application/voicexml+xml":{source:"iana",extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana"},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"apache",extensions:["der","crt","pem"]},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana"},"application/xaml+xml":{source:"apache",extensions:["xaml"]},"application/xcap-att+xml":{source:"iana"},"application/xcap-caps+xml":{source:"iana"},"application/xcap-diff+xml":{source:"iana",extensions:["xdf"]},"application/xcap-el+xml":{source:"iana"},"application/xcap-error+xml":{source:"iana"},"application/xcap-ns+xml":{source:"iana"},"application/xcon-conference-info+xml":{source:"iana"},"application/xcon-conference-info-diff+xml":{source:"iana"},"application/xenc+xml":{source:"iana",extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache"},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana"},"application/xmpp+xml":{source:"iana"},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",extensions:["xpl"]},"application/xslt+xml":{source:"iana",extensions:["xslt"]},"application/xspf+xml":{source:"apache",extensions:["xspf"]},"application/xv+xml":{source:"iana",extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana"},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana"},"application/yin+xml":{source:"iana",extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana"},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana"},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tone":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana"},"image/apng":{compressible:!1,extensions:["apng"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana"},"image/emf":{source:"iana"},"image/fits":{source:"iana"},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana"},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana"},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana"},"image/tiff":{source:"iana",compressible:!1,extensions:["tiff","tif"]},"image/tiff-fx":{source:"iana"},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana"},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana"},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana"},"image/vnd.valve.source.texture":{source:"iana"},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana"},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana"},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/vnd.collada+xml":{source:"iana",extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana"},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana"},"model/vnd.parasolid.transmit.binary":{source:"iana"},"model/vnd.parasolid.transmit.text":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.valve.source.compiled-map":{source:"iana"},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana"},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana"},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana",compressible:!1},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fwdred":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shex":{extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana"},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vp8":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}},function(e,t,n){e.exports=n(93)},function(e,t,n){"use strict"
1258var i,a,o,s=n(94),r=n(2).extname,c=/^\s*([^;\s]*)(?:;|\s|$)/,p=/^text\//i
1259function l(e){if(!e||"string"!=typeof e)return!1
1260var t=c.exec(e),n=t&&s[t[1].toLowerCase()]
1261return n&&n.charset?n.charset:!(!t||!p.test(t[1]))&&"UTF-8"}t.charset=l,t.charsets={lookup:l},t.contentType=function(e){if(!e||"string"!=typeof e)return!1
1262var n=-1===e.indexOf("/")?t.lookup(e):e
1263if(!n)return!1
1264if(-1===n.indexOf("charset")){var i=t.charset(n)
1265i&&(n+="; charset="+i.toLowerCase())}return n},t.extension=function(e){if(!e||"string"!=typeof e)return!1
1266var n=c.exec(e),i=n&&t.extensions[n[1].toLowerCase()]
1267return!(!i||!i.length)&&i[0]},t.extensions=Object.create(null),t.lookup=function(e){if(!e||"string"!=typeof e)return!1
1268var n=r("x."+e).toLowerCase().substr(1)
1269return n&&t.types[n]||!1},t.types=Object.create(null),i=t.extensions,a=t.types,o=["nginx","apache",void 0,"iana"],Object.keys(s).forEach(function(e){var t=s[e],n=t.extensions
1270if(n&&n.length){i[e]=n
1271for(var r=0;r<n.length;r++){var c=n[r]
1272if(a[c]){var p=o.indexOf(s[a[c]].source),l=o.indexOf(t.source)
1273if("application/octet-stream"!==a[c]&&(p>l||p===l&&"application/"===a[c].substr(0,12)))continue}a[c]=e}}})},function(e,t,n){"use strict"
1274e.exports=s,e.exports.preferredMediaTypes=s
1275var i=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/
1276function a(e,t){var n=i.exec(e)
1277if(!n)return null
1278var a=Object.create(null),o=1,s=n[2],r=n[1]
1279if(n[3])for(var c=function(e){for(var t=e.split(";"),n=1,i=0;n<t.length;n++)l(t[i])%2==0?t[++i]=t[n]:t[i]+=";"+t[n]
1280t.length=i+1
1281for(n=0;n<t.length;n++)t[n]=t[n].trim()
1282return t}(n[3]).map(u),p=0;p<c.length;p++){var d=c[p],f=d[0].toLowerCase(),h=d[1],m=h&&'"'===h[0]&&'"'===h[h.length-1]?h.substr(1,h.length-2):h
1283if("q"===f){o=parseFloat(m)
1284break}a[f]=m}return{type:r,subtype:s,params:a,q:o,i:t}}function o(e,t,n){var i=a(e),o=0
1285if(!i)return null
1286if(t.type.toLowerCase()==i.type.toLowerCase())o|=4
1287else if("*"!=t.type)return null
1288if(t.subtype.toLowerCase()==i.subtype.toLowerCase())o|=2
1289else if("*"!=t.subtype)return null
1290var s=Object.keys(t.params)
1291if(s.length>0){if(!s.every(function(e){return"*"==t.params[e]||(t.params[e]||"").toLowerCase()==(i.params[e]||"").toLowerCase()}))return null
1292o|=1}return{i:n,o:t.i,q:t.q,s:o}}function s(e,t){var n=function(e){for(var t=function(e){for(var t=e.split(","),n=1,i=0;n<t.length;n++)l(t[i])%2==0?t[++i]=t[n]:t[i]+=","+t[n]
1293return t.length=i+1,t}(e),n=0,i=0;n<t.length;n++){var o=a(t[n].trim(),n)
1294o&&(t[i++]=o)}return t.length=i,t}(void 0===e?"*/*":e||"")
1295if(!t)return n.filter(p).sort(r).map(c)
1296var i=t.map(function(e,t){return function(e,t,n){for(var i={o:-1,q:0,s:0},a=0;a<t.length;a++){var s=o(e,t[a],n)
1297s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
1298return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.type+"/"+e.subtype}function p(e){return e.q>0}function l(e){for(var t=0,n=0;-1!==(n=e.indexOf('"',n));)t++,n++
1299return t}function u(e){var t,n,i=e.indexOf("=")
1300return-1===i?t=e:(t=e.substr(0,i),n=e.substr(i+1)),[t,n]}},function(e,t,n){"use strict"
1301e.exports=s,e.exports.preferredLanguages=s
1302var i=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/
1303function a(e,t){var n=i.exec(e)
1304if(!n)return null
1305var a=n[1],o=n[2],s=a
1306o&&(s+="-"+o)
1307var r=1
1308if(n[3]){var c=n[3].split(";")
1309for(t=0;t<c.length;t++){var p=c[t].split("=")
1310"q"===p[0]&&(r=parseFloat(p[1]))}}return{prefix:a,suffix:o,q:r,i:t,full:s}}function o(e,t,n){var i=a(e)
1311if(!i)return null
1312var o=0
1313if(t.full.toLowerCase()===i.full.toLowerCase())o|=4
1314else if(t.prefix.toLowerCase()===i.full.toLowerCase())o|=2
1315else if(t.full.toLowerCase()===i.prefix.toLowerCase())o|=1
1316else if("*"!==t.full)return null
1317return{i:n,o:t.i,q:t.q,s:o}}function s(e,t){var n=function(e){for(var t=e.split(","),n=0,i=0;n<t.length;n++){var o=a(t[n].trim(),n)
1318o&&(t[i++]=o)}return t.length=i,t}(void 0===e?"*":e||"")
1319if(!t)return n.filter(p).sort(r).map(c)
1320var i=t.map(function(e,t){return function(e,t,n){for(var i={o:-1,q:0,s:0},a=0;a<t.length;a++){var s=o(e,t[a],n)
1321s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
1322return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.full}function p(e){return e.q>0}},function(e,t,n){"use strict"
1323e.exports=s,e.exports.preferredEncodings=s
1324var i=/^\s*([^\s;]+)\s*(?:;(.*))?$/
1325function a(e,t){var n=i.exec(e)
1326if(!n)return null
1327var a=n[1],o=1
1328if(n[2]){var s=n[2].split(";")
1329for(t=0;t<s.length;t++){var r=s[t].trim().split("=")
1330if("q"===r[0]){o=parseFloat(r[1])
1331break}}}return{encoding:a,q:o,i:t}}function o(e,t,n){var i=0
1332if(t.encoding.toLowerCase()===e.toLowerCase())i|=1
1333else if("*"!==t.encoding)return null
1334return{i:n,o:t.i,q:t.q,s:i}}function s(e,t){var n=function(e){for(var t=e.split(","),n=!1,i=1,s=0,r=0;s<t.length;s++){var c=a(t[s].trim(),s)
1335c&&(t[r++]=c,n=n||o("identity",c),i=Math.min(i,c.q||1))}return n||(t[r++]={encoding:"identity",q:i,i:s}),t.length=r,t}(e||"")
1336if(!t)return n.filter(p).sort(r).map(c)
1337var i=t.map(function(e,t){return function(e,t,n){for(var i={o:-1,q:0,s:0},a=0;a<t.length;a++){var s=o(e,t[a],n)
1338s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
1339return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.encoding}function p(e){return e.q>0}},function(e,t,n){"use strict"
1340e.exports=s,e.exports.preferredCharsets=s
1341var i=/^\s*([^\s;]+)\s*(?:;(.*))?$/
1342function a(e,t){var n=i.exec(e)
1343if(!n)return null
1344var a=n[1],o=1
1345if(n[2]){var s=n[2].split(";")
1346for(t=0;t<s.length;t++){var r=s[t].trim().split("=")
1347if("q"===r[0]){o=parseFloat(r[1])
1348break}}}return{charset:a,q:o,i:t}}function o(e,t,n){var i=0
1349if(t.charset.toLowerCase()===e.toLowerCase())i|=1
1350else if("*"!==t.charset)return null
1351return{i:n,o:t.i,q:t.q,s:i}}function s(e,t){var n=function(e){for(var t=e.split(","),n=0,i=0;n<t.length;n++){var o=a(t[n].trim(),n)
1352o&&(t[i++]=o)}return t.length=i,t}(void 0===e?"*":e||"")
1353if(!t)return n.filter(p).sort(r).map(c)
1354var i=t.map(function(e,t){return function(e,t,n){for(var i={o:-1,q:0,s:0},a=0;a<t.length;a++){var s=o(e,t[a],n)
1355s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
1356return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.charset}function p(e){return e.q>0}},function(e,t,n){"use strict"
1357var i=Object.create(null)
1358function a(e){if(!(this instanceof a))return new a(e)
1359this.request=e}function o(e){var t=i[e]
1360if(void 0!==t)return t
1361switch(e){case"charset":t=n(99)
1362break
1363case"encoding":t=n(98)
1364break
1365case"language":t=n(97)
1366break
1367case"mediaType":t=n(96)
1368break
1369default:throw new Error("Cannot find module '"+e+"'")}return i[e]=t,t}e.exports=a,e.exports.Negotiator=a,a.prototype.charset=function(e){var t=this.charsets(e)
1370return t&&t[0]},a.prototype.charsets=function(e){return(0,o("charset").preferredCharsets)(this.request.headers["accept-charset"],e)},a.prototype.encoding=function(e){var t=this.encodings(e)
1371return t&&t[0]},a.prototype.encodings=function(e){return(0,o("encoding").preferredEncodings)(this.request.headers["accept-encoding"],e)},a.prototype.language=function(e){var t=this.languages(e)
1372return t&&t[0]},a.prototype.languages=function(e){return(0,o("language").preferredLanguages)(this.request.headers["accept-language"],e)},a.prototype.mediaType=function(e){var t=this.mediaTypes(e)
1373return t&&t[0]},a.prototype.mediaTypes=function(e){return(0,o("mediaType").preferredMediaTypes)(this.request.headers.accept,e)},a.prototype.preferredCharset=a.prototype.charset,a.prototype.preferredCharsets=a.prototype.charsets,a.prototype.preferredEncoding=a.prototype.encoding,a.prototype.preferredEncodings=a.prototype.encodings,a.prototype.preferredLanguage=a.prototype.language,a.prototype.preferredLanguages=a.prototype.languages,a.prototype.preferredMediaType=a.prototype.mediaType,a.prototype.preferredMediaTypes=a.prototype.mediaTypes},function(e,t,n){"use strict"
1374var i=n(100),a=n(95)
1375function o(e){if(!(this instanceof o))return new o(e)
1376this.headers=e.headers,this.negotiator=new i(e)}function s(e){return-1===e.indexOf("/")?a.lookup(e):e}function r(e){return"string"==typeof e}e.exports=o,o.prototype.type=o.prototype.types=function(e){var t=e
1377if(t&&!Array.isArray(t)){t=new Array(arguments.length)
1378for(var n=0;n<t.length;n++)t[n]=arguments[n]}if(!t||0===t.length)return this.negotiator.mediaTypes()
1379if(!this.headers.accept)return t[0]
1380var i=t.map(s),a=this.negotiator.mediaTypes(i.filter(r))[0]
1381return!!a&&t[i.indexOf(a)]},o.prototype.encoding=o.prototype.encodings=function(e){var t=e
1382if(t&&!Array.isArray(t)){t=new Array(arguments.length)
1383for(var n=0;n<t.length;n++)t[n]=arguments[n]}return t&&0!==t.length?this.negotiator.encodings(t)[0]||!1:this.negotiator.encodings()},o.prototype.charset=o.prototype.charsets=function(e){var t=e
1384if(t&&!Array.isArray(t)){t=new Array(arguments.length)
1385for(var n=0;n<t.length;n++)t[n]=arguments[n]}return t&&0!==t.length?this.negotiator.charsets(t)[0]||!1:this.negotiator.charsets()},o.prototype.lang=o.prototype.langs=o.prototype.language=o.prototype.languages=function(e){var t=e
1386if(t&&!Array.isArray(t)){t=new Array(arguments.length)
1387for(var n=0;n<t.length;n++)t[n]=arguments[n]}return t&&0!==t.length?this.negotiator.languages(t)[0]||!1:this.negotiator.languages()}},function(e,t,n){"use strict"
1388e.exports=((e,t)=>{t=t||process.argv
1389const n=e.startsWith("-")?"":1===e.length?"-":"--",i=t.indexOf(n+e),a=t.indexOf("--")
1390return-1!==i&&(-1===a||i<a)})},function(e,t,n){"use strict"
1391const i=n(4),a=n(102),o=process.env
1392let s
1393function r(e){return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(function(e){if(!1===s)return 0
1394if(a("color=16m")||a("color=full")||a("color=truecolor"))return 3
1395if(a("color=256"))return 2
1396if(e&&!e.isTTY&&!0!==s)return 0
1397const t=s?1:0
1398if("win32"===process.platform){const e=i.release().split(".")
1399return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in o)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in o)||"codeship"===o.CI_NAME?1:t
1400if("TEAMCITY_VERSION"in o)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(o.TEAMCITY_VERSION)?1:0
1401if("truecolor"===o.COLORTERM)return 3
1402if("TERM_PROGRAM"in o){const e=parseInt((o.TERM_PROGRAM_VERSION||"").split(".")[0],10)
1403switch(o.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2
1404case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(o.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(o.TERM)?1:"COLORTERM"in o?1:(o.TERM,t)}(e))}a("no-color")||a("no-colors")||a("color=false")?s=!1:(a("color")||a("colors")||a("color=true")||a("color=always"))&&(s=!0),"FORCE_COLOR"in o&&(s=0===o.FORCE_COLOR.length||0!==parseInt(o.FORCE_COLOR,10)),e.exports={supportsColor:r,stdout:r(process.stdout),stderr:r(process.stderr)}},function(e,t,n){var i=n(44),a=n(1);(t=e.exports=n(46)).init=function(e){e.inspectOpts={}
1405for(var n=Object.keys(t.inspectOpts),i=0;i<n.length;i++)e.inspectOpts[n[i]]=t.inspectOpts[n[i]]},t.log=function(){return process.stderr.write(a.format.apply(a,arguments)+"\n")},t.formatArgs=function(e){var n=this.namespace
1406if(this.useColors){var i=this.color,a="[3"+(i<8?i:"8;5;"+i),o=" "+a+";1m"+n+" "
1407e[0]=o+e[0].split("\n").join("\n"+o),e.push(a+"m+"+t.humanize(this.diff)+"")}else e[0]=(t.inspectOpts.hideDate?"":(new Date).toISOString()+" ")+n+" "+e[0]},t.save=function(e){null==e?delete process.env.DEBUG:process.env.DEBUG=e},t.load=s,t.useColors=function(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):i.isatty(process.stderr.fd)},t.colors=[6,2,3,4,5,1]
1408try{var o=n(103)
1409o&&o.level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}function s(){return process.env.DEBUG}t.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var n=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()}),i=process.env[t]
1410return i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i)),e[n]=i,e},{}),t.formatters.o=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts).split("\n").map(function(e){return e.trim()}).join(" ")},t.formatters.O=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts)},t.enable(s())},function(e,t,n){function i(){var e
1411try{e=t.storage.debug}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e}(t=e.exports=n(46)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},t.formatArgs=function(e){var n=this.useColors
1412if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),n){var i="color: "+this.color
1413e.splice(1,0,i,"color: inherit")
1414var a=0,o=0
1415e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&"%c"===e&&(o=++a)}),e.splice(o,0,i)}},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=i,t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(i())},function(e,t){e.exports=Object.keys||function(e){var t=[],n=Object.prototype.hasOwnProperty
1416for(var i in e)n.call(e,i)&&t.push(i)
1417return t}},function(e,t){function n(){}e.exports=function(e,t,i){var a=!1
1418return i=i||n,o.count=e,0===e?t():o
1419function o(e,n){if(o.count<=0)throw new Error("after called too many times");--o.count,e?(a=!0,t(e),t=i):0!==o.count||a||t(null,n)}}},function(e,t){var n={}.toString
1420e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){(function(e){var i
1421!function(a){var o=("object"==typeof e&&e&&e.exports,"object"==typeof global&&global)
1422o.global!==o&&o.window
1423var s,r,c,p=String.fromCharCode
1424function l(e){for(var t,n,i=[],a=0,o=e.length;a<o;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<o?56320==(64512&(n=e.charCodeAt(a++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),a--):i.push(t)
1425return i}function u(e,t){if(e>=55296&&e<=57343){if(t)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")
1426return!1}return!0}function d(e,t){return p(e>>t&63|128)}function f(e,t){if(0==(4294967168&e))return p(e)
1427var n=""
1428return 0==(4294965248&e)?n=p(e>>6&31|192):0==(4294901760&e)?(u(e,t)||(e=65533),n=p(e>>12&15|224),n+=d(e,6)):0==(4292870144&e)&&(n=p(e>>18&7|240),n+=d(e,12),n+=d(e,6)),n+p(63&e|128)}function h(){if(c>=r)throw Error("Invalid byte index")
1429var e=255&s[c]
1430if(c++,128==(192&e))return 63&e
1431throw Error("Invalid continuation byte")}function m(e){var t,n
1432if(c>r)throw Error("Invalid byte index")
1433if(c==r)return!1
1434if(t=255&s[c],c++,0==(128&t))return t
1435if(192==(224&t)){if((n=(31&t)<<6|h())>=128)return n
1436throw Error("Invalid continuation byte")}if(224==(240&t)){if((n=(15&t)<<12|h()<<6|h())>=2048)return u(n,e)?n:65533
1437throw Error("Invalid continuation byte")}if(240==(248&t)&&(n=(7&t)<<18|h()<<12|h()<<6|h())>=65536&&n<=1114111)return n
1438throw Error("Invalid UTF-8 detected")}var v={version:"2.1.2",encode:function(e,t){for(var n=!1!==(t=t||{}).strict,i=l(e),a=i.length,o=-1,s="";++o<a;)s+=f(i[o],n)
1439return s},decode:function(e,t){var n=!1!==(t=t||{}).strict
1440s=l(e),r=s.length,c=0
1441for(var i,a=[];!1!==(i=m(n));)a.push(i)
1442return function(e){for(var t,n=e.length,i=-1,a="";++i<n;)(t=e[i])>65535&&(a+=p((t-=65536)>>>10&1023|55296),t=56320|1023&t),a+=p(t)
1443return a}(a)}}
1444void 0===(i=function(){return v}.call(t,n,t,e))||(e.exports=i)}()}).call(this,n(109)(e))},function(e,t,n){var i=n(47),a=n(1)
1445function o(e){i.call(this,e)}e.exports=o,a.inherits(o,i),o.prototype.onRequest=function(e){if("OPTIONS"===e.method){var t=e.res,n=this.headers(e)
1446n["Access-Control-Allow-Headers"]="Content-Type",t.writeHead(200,n),t.end()}else i.prototype.onRequest.call(this,e)},o.prototype.headers=function(e,t){return t=t||{},e.headers.origin?(t["Access-Control-Allow-Credentials"]="true",t["Access-Control-Allow-Origin"]=e.headers.origin):t["Access-Control-Allow-Origin"]="*",i.prototype.headers.call(this,e,t)}},function(e,t,n){var i=n(5),a=function(){}
1447a.prototype.getRandomBytes=function(e){var t=this
1448if((e=e||12)>4096)return i.randomBytes(e)
1449var n=parseInt(4096/e),a=parseInt(.85*n)
1450if(!a)return i.randomBytes(e)
1451if(null==this.bytesBufferIndex&&(this.bytesBufferIndex=-1),this.bytesBufferIndex==n&&(this.bytesBuffer=null,this.bytesBufferIndex=-1),(-1==this.bytesBufferIndex||this.bytesBufferIndex>a)&&(this.isGeneratingBytes||(this.isGeneratingBytes=!0,i.randomBytes(4096,function(e,n){t.bytesBuffer=n,t.bytesBufferIndex=0,t.isGeneratingBytes=!1})),-1==this.bytesBufferIndex))return i.randomBytes(e)
1452var o=this.bytesBuffer.slice(e*this.bytesBufferIndex,e*(this.bytesBufferIndex+1))
1453return this.bytesBufferIndex++,o},a.prototype.generateId=function(){var e=new Buffer(15)
1454return e.writeInt32BE?(this.sequenceNumber=this.sequenceNumber+1|0,e.writeInt32BE(this.sequenceNumber,11),i.randomBytes?this.getRandomBytes(12).copy(e):[0,4,8].forEach(function(t){e.writeInt32BE(Math.random()*Math.pow(2,32)|0,t)}),e.toString("base64").replace(/\//g,"_").replace(/\+/g,"-")):Math.abs(Math.random()*Math.random()*Date.now()|0).toString()+Math.abs(Math.random()*Math.random()*Date.now()|0).toString()},e.exports=new a},function(e,t,n){var i=n(49),a=n(3).parse,o=n(112),s=n(48),r=n(7).EventEmitter,c=n(43),p=n(1),l=n(6)("engine"),u=n(90)
1455function d(e){if(!(this instanceof d))return new d(e)
1456this.clients={},this.clientsCount=0,e=e||{},this.wsEngine=e.wsEngine||process.env.EIO_WS_ENGINE||"ws",this.pingTimeout=e.pingTimeout||5e3,this.pingInterval=e.pingInterval||25e3,this.upgradeTimeout=e.upgradeTimeout||1e4,this.maxHttpBufferSize=e.maxHttpBufferSize||1e8,this.transports=e.transports||Object.keys(s),this.allowUpgrades=!1!==e.allowUpgrades,this.allowRequest=e.allowRequest,this.cookie=!1!==e.cookie&&(e.cookie||"io"),this.cookiePath=!1!==e.cookiePath&&(e.cookiePath||"/"),this.cookieHttpOnly=!1!==e.cookieHttpOnly,this.perMessageDeflate=!1!==e.perMessageDeflate&&(e.perMessageDeflate||!0),this.httpCompression=!1!==e.httpCompression&&(e.httpCompression||{}),this.initialPacket=e.initialPacket
1457var t=this;["perMessageDeflate","httpCompression"].forEach(function(e){var n=t[e]
1458!0===n&&(t[e]=n={}),n&&null==n.threshold&&(n.threshold=1024)}),this.init()}function f(e,t,n){var i={"Content-Type":"application/json"}
1459if(!d.errorMessages.hasOwnProperty(n))return t.writeHead(403,i),void t.end(JSON.stringify({code:d.errors.FORBIDDEN,message:n||d.errorMessages[d.errors.FORBIDDEN]}))
1460e.headers.origin?(i["Access-Control-Allow-Credentials"]="true",i["Access-Control-Allow-Origin"]=e.headers.origin):i["Access-Control-Allow-Origin"]="*",void 0!==t&&(t.writeHead(400,i),t.end(JSON.stringify({code:n,message:d.errorMessages[n]})))}e.exports=d,d.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4},d.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden"},p.inherits(d,r),d.prototype.init=function(){if(~this.transports.indexOf("websocket")){var e
1461switch(this.ws&&this.ws.close(),this.wsEngine){case"uws":e=n(89)
1462break
1463case"ws":e=n(88)
1464break
1465default:throw new Error("unknown wsEngine")}this.ws=new e.Server({noServer:!0,clientTracking:!1,perMessageDeflate:this.perMessageDeflate,maxPayload:this.maxHttpBufferSize})}},d.prototype.upgrades=function(e){return this.allowUpgrades&&s[e].upgradesTo||[]},d.prototype.verify=function(e,t,n){var i=e._query.transport
1466if(!~this.transports.indexOf(i))return l('unknown transport "%s"',i),n(d.errors.UNKNOWN_TRANSPORT,!1)
1467if(function(e){if((e+="").length<1)return!1
1468if(!h[e.charCodeAt(0)])return!0
1469if(e.length<2)return!1
1470if(!h[e.charCodeAt(1)])return!0
1471if(e.length<3)return!1
1472if(!h[e.charCodeAt(2)])return!0
1473if(e.length<4)return!1
1474if(!h[e.charCodeAt(3)])return!0
1475for(var t=4;t<e.length;++t)if(!h[e.charCodeAt(t)])return!0
1476return!1}(e.headers.origin))return e.headers.origin=null,n(d.errors.BAD_REQUEST,!1)
1477var a=e._query.sid
1478return a?this.clients.hasOwnProperty(a)?t||this.clients[a].transport.name===i?void n(null,!0):(l("bad request: unexpected transport without upgrade"),n(d.errors.BAD_REQUEST,!1)):n(d.errors.UNKNOWN_SID,!1):"GET"!==e.method?n(d.errors.BAD_HANDSHAKE_METHOD,!1):this.allowRequest?this.allowRequest(e,n):n(null,!0)},d.prototype.prepare=function(e){e._query||(e._query=~e.url.indexOf("?")?i.parse(a(e.url).query):{})},d.prototype.close=function(){for(var e in l("closing all open clients"),this.clients)this.clients.hasOwnProperty(e)&&this.clients[e].close(!0)
1479return this.ws&&(l("closing webSocketServer"),this.ws.close()),this},d.prototype.handleRequest=function(e,t){l('handling "%s" http request "%s"',e.method,e.url),this.prepare(e),e.res=t
1480var n=this
1481this.verify(e,!1,function(i,a){a?e._query.sid?(l("setting new request for existing client"),n.clients[e._query.sid].transport.onRequest(e)):n.handshake(e._query.transport,e):f(e,t,i)})},d.prototype.generateId=function(e){return o.generateId()},d.prototype.handshake=function(e,t){var n=this.generateId(t)
1482l('handshaking client "%s"',n)
1483try{var i=new s[e](t)
1484"polling"===e?(i.maxHttpBufferSize=this.maxHttpBufferSize,i.httpCompression=this.httpCompression):"websocket"===e&&(i.perMessageDeflate=this.perMessageDeflate),t._query&&t._query.b64?i.supportsBinary=!1:i.supportsBinary=!0}catch(e){return void f(t,t.res,d.errors.BAD_REQUEST)}var a=new c(n,this,i,t),o=this
1485!1!==this.cookie&&i.on("headers",function(e){e["Set-Cookie"]=u.serialize(o.cookie,n,{path:o.cookiePath,httpOnly:!!o.cookiePath&&o.cookieHttpOnly})}),i.onRequest(t),this.clients[n]=a,this.clientsCount++,a.once("close",function(){delete o.clients[n],o.clientsCount--}),this.emit("connection",a)},d.prototype.handleUpgrade=function(e,t,n){this.prepare(e)
1486var i=this
1487this.verify(e,!0,function(a,o){if(o){var s=new Buffer(n.length)
1488n.copy(s),n=null,i.ws.handleUpgrade(e,t,s,function(t){i.onWebSocket(e,t)})}else!function(e,t){if(e.writable){var n=d.errorMessages.hasOwnProperty(t)?d.errorMessages[t]:t||"",i=Buffer.byteLength(n)
1489e.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-type: text/html\r\nContent-Length: "+i+"\r\n\r\n"+n)}e.destroy()}(t,a)})},d.prototype.onWebSocket=function(e,t){if(t.on("error",o),void 0!==s[e._query.transport]&&!s[e._query.transport].prototype.handlesUpgrades)return l("transport doesnt handle upgraded requests"),void t.close()
1490var n=e._query.sid
1491if(e.websocket=t,n){var i=this.clients[n]
1492if(i)if(i.upgrading)l("transport has already been trying to upgrade"),t.close()
1493else if(i.upgraded)l("transport had already been upgraded"),t.close()
1494else{l("upgrading existing transport"),t.removeListener("error",o)
1495var a=new s[e._query.transport](e)
1496e._query&&e._query.b64?a.supportsBinary=!1:a.supportsBinary=!0,a.perMessageDeflate=this.perMessageDeflate,i.maybeUpgrade(a)}else l("upgrade attempt for closed client"),t.close()}else t.removeListener("error",o),this.handshake(e._query.transport,e)
1497function o(){l("websocket error before upgrade")}},d.prototype.attach=function(e,t){var n=this,i=((t=t||{}).path||"/engine.io").replace(/\/$/,""),a=t.destroyUpgradeTimeout||1e3
1498function o(e){return("OPTIONS"!==e.method||!1!==t.handlePreflightRequest)&&i===e.url.substr(0,i.length)}i+="/"
1499var s=e.listeners("request").slice(0)
1500e.removeAllListeners("request"),e.on("close",n.close.bind(n)),e.on("listening",n.init.bind(n)),e.on("request",function(a,r){if(o(a))l('intercepting request for path "%s"',i),"OPTIONS"===a.method&&"function"==typeof t.handlePreflightRequest?t.handlePreflightRequest.call(e,a,r):n.handleRequest(a,r)
1501else for(var c=0,p=s.length;c<p;c++)s[c].call(e,a,r)}),~n.transports.indexOf("websocket")&&e.on("upgrade",function(e,i,s){o(e)?n.handleUpgrade(e,i,s):!1!==t.destroyUpgrade&&setTimeout(function(){if(i.writable&&i.bytesWritten<=0)return i.end()},a)})}
1502var h=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},function(e,t,n){var i=n(8)
1503function a(e,n){var i=new t.Server(n)
1504return i.attach(e,n),i}(t=e.exports=function(){return arguments.length&&arguments[0]instanceof i.Server?a.apply(this,arguments):t.Server.apply(null,arguments)}).protocol=1,t.Server=n(113),t.Socket=n(43),t.Transport=n(25),t.transports=n(48),t.parser=n(19),t.listen=function(e,n,a){"function"==typeof n&&(a=n,n={})
1505var o=i.createServer(function(e,t){t.writeHead(501),t.end("Not Implemented")}),s=t.attach(o,n)
1506return s.httpServer=o,o.listen(e,a),s},t.attach=a}])