diff --git a/5570637a84db2587cb4d.worker.js b/5570637a84db2587cb4d.worker.js deleted file mode 100644 index cad8c70..0000000 --- a/5570637a84db2587cb4d.worker.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(n){var t={};function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"===typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)e.d(r,o,function(t){return n[t]}.bind(null,o));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="/diabloweb/",e(e.s=35)}([function(n,t,e){"use strict";var r=e(5),o=e(20),a=Object.prototype.toString;function i(n){return"[object Array]"===a.call(n)}function u(n){return null!==n&&"object"===typeof n}function s(n){return"[object Function]"===a.call(n)}function c(n,t){if(null!==n&&"undefined"!==typeof n)if("object"!==typeof n&&(n=[n]),i(n))for(var e=0,r=n.length;e1)for(var e=1;e=0;r--){var o=n[r];"."===o?n.splice(r,1):".."===o?(n.splice(r,1),e++):e&&(n.splice(r,1),e--)}if(t)for(;e--;e)n.unshift("..");return n}function r(n,t){if(n.filter)return n.filter(t);for(var e=[],r=0;r=-1&&!o;a--){var i=a>=0?arguments[a]:n.cwd();if("string"!==typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(t=i+"/"+t,o="/"===i.charAt(0))}return(o?"/":"")+(t=e(r(t.split("/"),function(n){return!!n}),!o).join("/"))||"."},t.normalize=function(n){var a=t.isAbsolute(n),i="/"===o(n,-1);return(n=e(r(n.split("/"),function(n){return!!n}),!a).join("/"))||a||(n="."),n&&i&&(n+="/"),(a?"/":"")+n},t.isAbsolute=function(n){return"/"===n.charAt(0)},t.join=function(){var n=Array.prototype.slice.call(arguments,0);return t.normalize(r(n,function(n,t){if("string"!==typeof n)throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))},t.relative=function(n,e){function r(n){for(var t=0;t=0&&""===n[e];e--);return t>e?[]:n.slice(t,e-t+1)}n=t.resolve(n).substr(1),e=t.resolve(e).substr(1);for(var o=r(n.split("/")),a=r(e.split("/")),i=Math.min(o.length,a.length),u=i,s=0;s=1;--a)if(47===(t=n.charCodeAt(a))){if(!o){r=a;break}}else o=!1;return-1===r?e?"/":".":e&&1===r?"/":n.slice(0,r)},t.basename=function(n,t){var e=function(n){"string"!==typeof n&&(n+="");var t,e=0,r=-1,o=!0;for(t=n.length-1;t>=0;--t)if(47===n.charCodeAt(t)){if(!o){e=t+1;break}}else-1===r&&(o=!1,r=t+1);return-1===r?"":n.slice(e,r)}(n);return t&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},t.extname=function(n){"string"!==typeof n&&(n+="");for(var t=-1,e=0,r=-1,o=!0,a=0,i=n.length-1;i>=0;--i){var u=n.charCodeAt(i);if(47!==u)-1===r&&(o=!1,r=i+1),46===u?-1===t?t=i:1!==a&&(a=1):-1!==t&&(a=-1);else if(!o){e=i+1;break}}return-1===t||-1===r||0===a||1===a&&t===r-1&&t===e+1?"":n.slice(t,r)};var o="b"==="ab".substr(-1)?function(n,t,e){return n.substr(t,e)}:function(n,t,e){return t<0&&(t=n.length+t),n.substr(t,e)}}).call(this,e(2))},function(n,t,e){"use strict";n.exports=function(n,t){return function(){for(var e=new Array(arguments.length),r=0;r=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(n){u.headers[n]={}}),r.forEach(["post","put","patch"],function(n){u.headers[n]=r.merge(a)}),n.exports=u}).call(this,e(2))},function(n,t,e){"use strict";var r=e(0),o=e(26),a=e(6),i=e(28),u=e(29),s=e(10);n.exports=function(n){return new Promise(function(t,c){var f=n.data,l=n.headers;r.isFormData(f)&&delete l["Content-Type"];var p=new XMLHttpRequest;if(n.auth){var d=n.auth.username||"",h=n.auth.password||"";l.Authorization="Basic "+btoa(d+":"+h)}if(p.open(n.method.toUpperCase(),a(n.url,n.params,n.paramsSerializer),!0),p.timeout=n.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in p?i(p.getAllResponseHeaders()):null,r={data:n.responseType&&"text"!==n.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:e,config:n,request:p};o(t,c,r),p=null}},p.onabort=function(){p&&(c(s("Request aborted",n,"ECONNABORTED",p)),p=null)},p.onerror=function(){c(s("Network Error",n,null,p)),p=null},p.ontimeout=function(){c(s("timeout of "+n.timeout+"ms exceeded",n,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var _=e(30),y=(n.withCredentials||u(n.url))&&n.xsrfCookieName?_.read(n.xsrfCookieName):void 0;y&&(l[n.xsrfHeaderName]=y)}if("setRequestHeader"in p&&r.forEach(l,function(n,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete l[t]:p.setRequestHeader(t,n)}),n.withCredentials&&(p.withCredentials=!0),n.responseType)try{p.responseType=n.responseType}catch(m){if("json"!==n.responseType)throw m}"function"===typeof n.onDownloadProgress&&p.addEventListener("progress",n.onDownloadProgress),"function"===typeof n.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",n.onUploadProgress),n.cancelToken&&n.cancelToken.promise.then(function(n){p&&(p.abort(),c(n),p=null)}),void 0===f&&(f=null),p.send(f)})}},function(n,t,e){"use strict";var r=e(27);n.exports=function(n,t,e,o,a){var i=new Error(n);return r(i,t,e,o,a)}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){t=t||{};var e={};return r.forEach(["url","method","params","data"],function(n){"undefined"!==typeof t[n]&&(e[n]=t[n])}),r.forEach(["headers","auth","proxy"],function(o){r.isObject(t[o])?e[o]=r.deepMerge(n[o],t[o]):"undefined"!==typeof t[o]?e[o]=t[o]:r.isObject(n[o])?e[o]=r.deepMerge(n[o]):"undefined"!==typeof n[o]&&(e[o]=n[o])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?e[r]=t[r]:"undefined"!==typeof n[r]&&(e[r]=n[r])}),e}},function(n,t,e){"use strict";function r(n){this.message=n}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,n.exports=r},function(n,t,e){n.exports=e.p+"static/media/Diablo.85de21cc.wasm"},function(n,t,e){(function(t,r){var o=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(o){var a,i="undefined"!==typeof(o=o||{})?o:{},u={};for(a in i)i.hasOwnProperty(a)&&(u[a]=i[a]);i.arguments=[],i.thisProgram="./this.program",i.quit=function(n,t){throw t},i.preRun=[],i.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!f&&!l,c=!f&&!s&&!l;var p,d,h,_,y="";s?(y=r+"/",p=function(n,t){var r;return h||(h=e(3)),_||(_=e(4)),n=_.normalize(n),r=h.readFileSync(n),t?r:r.toString()},d=function(n){var t=p(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(i.thisProgram=t.argv[1].replace(/\\/g,"/")),i.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof On))throw n}),t.on("unhandledRejection",Pn),i.quit=function(n){t.exit(n)},i.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(p=function(n){return read(n)}),d=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?i.arguments=scriptArgs:"undefined"!=typeof arguments&&(i.arguments=arguments),"function"===typeof quit&&(i.quit=function(n){quit(n)})):(f||l)&&(l?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},l&&(d=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var m=i.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),g=i.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(a in u)u.hasOwnProperty(a)&&(i[a]=u[a]);u=void 0;var v,b={"f64-rem":function(n,t){return n%t},debugger:function(){}},w=(new Array(0),0),A=function(n){w=n};"object"!==typeof WebAssembly&&g("no native wasm support detected");var x=!1;function j(n,t){n||Pn("Assertion failed: "+t)}var S="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(n,t,e){for(var r=t+e,o=t;n[o]&&!(o>=r);)++o;if(o-t>16&&n.subarray&&S)return S.decode(n.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|u)}else a+=String.fromCharCode(i)}return a}function C(n,t){return n?E(T,n,t):""}var R,D,T,k,L;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function O(n,t){return n%t>0&&(n+=t-n%t),n}function M(){i.HEAP8=D=new Int8Array(R),i.HEAP16=new Int16Array(R),i.HEAP32=k=new Int32Array(R),i.HEAPU8=T=new Uint8Array(R),i.HEAPU16=new Uint16Array(R),i.HEAPU32=new Uint32Array(R),i.HEAPF32=L=new Float32Array(R),i.HEAPF64=new Float64Array(R)}var P=i.TOTAL_MEMORY||134217728;function I(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?i.dynCall_v(e):i.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}P<5242880&&g("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+P+"! (TOTAL_STACK=5242880)"),(v=i.wasmMemory?i.wasmMemory:new WebAssembly.Memory({initial:P/65536}))&&(R=v.buffer),P=R.byteLength,M(),k[468704]=7117728;var F=[],N=[],U=[],q=[];function B(n){q.unshift(n)}var H=0,z=null,W=null;i.preloadedImages={},i.preloadedAudios={};var G="data:application/octet-stream;base64,";function X(n){return String.prototype.startsWith?n.startsWith(G):0===n.indexOf(G)}var K,Y="Diablo.wasm";function J(){try{if(i.wasmBinary)return new Uint8Array(i.wasmBinary);if(d)return d(Y);throw"both async and sync fetching of the wasm failed"}catch(g){Pn(g)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:b};function e(n,t){var e=n.exports;i.asm=e,function(n){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}()}function r(n){e(n.instance)}function o(n){return(i.wasmBinary||!f&&!l||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Y,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Y+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){g("failed to asynchronously prepare wasm: "+n),Pn(n)})}if(H++,i.monitorRunDependencies&&i.monitorRunDependencies(H),i.instantiateWasm)try{return i.instantiateWasm(t,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}return function(){if(i.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||X(Y)||"function"!==typeof fetch)return o(r);fetch(Y,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){g("wasm streaming compile failed: "+n),g("falling back to ArrayBuffer instantiation"),o(r)})})}(),{}}X(Y)||(K=Y,Y=i.locateFile?i.locateFile(K,y):y+K),i.asm=function(n,t,e){return t.memory=v,t.table=new WebAssembly.Table({initial:1114,maximum:1114,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var Z=[function(n){self.DApi.current_save_id(n)}];N.push({func:function(){_n()}});var $={},Q=[];function nn(n){if(!n||$[n])return n;for(var t in $)for(var e=+t,r=$[e].adjusted,o=r.length,a=0;a>2],t.adjusted.push(n),0|(A(r[o]),n);return n=k[n>>2],0|(A(e),n)}i.___cxa_find_matching_catch=rn;var on={buffers:[null,[],[]],printChar:function(n,t){var e=on.buffers[n];0===t||10===t?((1===n?m:g)(E(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return on.varargs+=4,k[on.varargs-4>>2]},getStr:function(){return C(on.get())},get64:function(){var n=on.get();on.get();return n},getZero:function(){on.get()}};function an(){return D.length}var un={n:Pn,L:A,b:function(){return w},ra:function(n){var t=mn();try{return gn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},g:function(n,t){var e=mn();try{return vn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},l:function(n,t,e){var r=mn();try{return bn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},o:function(n,t,e,r){var o=mn();try{return wn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},s:function(n,t,e,r,o){var a=mn();try{return An(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},t:function(n,t,e,r,o,a){var i=mn();try{return xn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},K:function(n,t){var e=mn();try{return jn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},u:function(n){var t=mn();try{Sn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},f:function(n,t){var e=mn();try{En(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},e:function(n,t,e){var r=mn();try{Cn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},j:function(n,t,e,r){var o=mn();try{Rn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},q:function(n,t,e,r,o){var a=mn();try{Dn(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},r:function(n,t,e,r,o,a){var i=mn();try{Tn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},A:function(n,t,e,r,o,a,i,u){var s=mn();try{kn(n,t,e,r,o,a,i,u)}catch(c){if(yn(s),c!==c+0&&"longjmp"!==c)throw c;hn(1,0)}},J:function(n,t,e,r,o){var a=mn();try{Ln(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},z:function(n,t,e,r){Pn("Assertion failed: "+C(n)+", at: "+[t?C(t):"unknown filename",e,r?C(r):"unknown function"])},i:function(n){return dn(n)},y:function(n){var t=$[n];return t&&!t.caught&&(t.caught=!0,cn.uncaught_exceptions--),t&&(t.rethrown=!1),Q.push(n),function(n){n&&$[n].refcount++}(nn(n)),n},I:function(){hn(0);var n=Q.pop();n&&(function(n){if(n){var t=$[n];t.refcount--,0!==t.refcount||t.rethrown||(t.destructor&&i.dynCall_vi(t.destructor,n),delete $[n],en(n))}}(nn(n)),tn=0)},c:function(n,t){return rn(n,t)},h:function(n,t,e){return rn(n,t,e)},m:en,qa:function(n){return n},pa:function(){throw x=!0,"Pure virtual function called!"},k:function(n,t,e){throw $[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},tn=n,"uncaught_exception"in cn?cn.uncaught_exceptions++:cn.uncaught_exceptions=1,n},oa:function(){return cn.uncaught_exceptions},na:function(){},d:function(n){throw tn||(tn=n),n},H:function(n){return i.___errno_location&&(k[i.___errno_location()>>2]=n),n},ma:function(n,t){on.varargs=t;try{return on.getStreamFromFD(),on.get(),on.get(),on.get(),on.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Pn(e),-e.errno}},G:function(n,t){on.varargs=t;try{for(var e=on.get(),r=on.get(),o=on.get(),a=0,i=0;i>2],s=k[r+(8*i+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},M:function(n){Pn("OOM")},a:1874816},sn=i.asm({},un,R);i.asm=sn;i._DApi_AllocPacket=function(){return i.asm.sa.apply(null,arguments)},i._DApi_Char=function(){return i.asm.ta.apply(null,arguments)},i._DApi_Init=function(){return i.asm.ua.apply(null,arguments)},i._DApi_Key=function(){return i.asm.va.apply(null,arguments)},i._DApi_Mouse=function(){return i.asm.wa.apply(null,arguments)},i._DApi_Render=function(){return i.asm.xa.apply(null,arguments)},i._DApi_SyncText=function(){return i.asm.ya.apply(null,arguments)},i._SNet_InitWebsocket=function(){return i.asm.za.apply(null,arguments)};var cn=i.__ZSt18uncaught_exceptionv=function(){return i.asm.Aa.apply(null,arguments)},fn=i.___cxa_can_catch=function(){return i.asm.Ba.apply(null,arguments)},ln=i.___cxa_is_pointer_type=function(){return i.asm.Ca.apply(null,arguments)},pn=(i.___em_js__api_close_keyboard=function(){return i.asm.Da.apply(null,arguments)},i.___em_js__api_create_sound=function(){return i.asm.Ea.apply(null,arguments)},i.___em_js__api_create_sound_float=function(){return i.asm.Fa.apply(null,arguments)},i.___em_js__api_delete_sound=function(){return i.asm.Ga.apply(null,arguments)},i.___em_js__api_draw_begin=function(){return i.asm.Ha.apply(null,arguments)},i.___em_js__api_draw_belt=function(){return i.asm.Ia.apply(null,arguments)},i.___em_js__api_draw_blit=function(){return i.asm.Ja.apply(null,arguments)},i.___em_js__api_draw_clip_text=function(){return i.asm.Ka.apply(null,arguments)},i.___em_js__api_draw_end=function(){return i.asm.La.apply(null,arguments)},i.___em_js__api_draw_text=function(){return i.asm.Ma.apply(null,arguments)},i.___em_js__api_duplicate_sound=function(){return i.asm.Na.apply(null,arguments)},i.___em_js__api_exit_game=function(){return i.asm.Oa.apply(null,arguments)},i.___em_js__api_open_keyboard=function(){return i.asm.Pa.apply(null,arguments)},i.___em_js__api_play_sound=function(){return i.asm.Qa.apply(null,arguments)},i.___em_js__api_set_cursor=function(){return i.asm.Ra.apply(null,arguments)},i.___em_js__api_set_volume=function(){return i.asm.Sa.apply(null,arguments)},i.___em_js__api_stop_sound=function(){return i.asm.Ta.apply(null,arguments)},i.___em_js__api_websocket_closed=function(){return i.asm.Ua.apply(null,arguments)},i.___em_js__api_websocket_send=function(){return i.asm.Va.apply(null,arguments)},i.___em_js__exit_error=function(){return i.asm.Wa.apply(null,arguments)},i.___em_js__get_file_contents=function(){return i.asm.Xa.apply(null,arguments)},i.___em_js__get_file_size=function(){return i.asm.Ya.apply(null,arguments)},i.___em_js__put_file_contents=function(){return i.asm.Za.apply(null,arguments)},i.___em_js__remove_file=function(){return i.asm._a.apply(null,arguments)},i.___em_js__show_alert=function(){return i.asm.$a.apply(null,arguments)},i.___em_js__trace_pop=function(){return i.asm.ab.apply(null,arguments)},i.___em_js__trace_push=function(){return i.asm.bb.apply(null,arguments)},i._free=function(){return i.asm.cb.apply(null,arguments)}),dn=i._malloc=function(){return i.asm.db.apply(null,arguments)},hn=i._setThrew=function(){return i.asm.eb.apply(null,arguments)},_n=i.globalCtors=function(){return i.asm.ub.apply(null,arguments)},yn=i.stackRestore=function(){return i.asm.vb.apply(null,arguments)},mn=i.stackSave=function(){return i.asm.wb.apply(null,arguments)},gn=i.dynCall_i=function(){return i.asm.fb.apply(null,arguments)},vn=i.dynCall_ii=function(){return i.asm.gb.apply(null,arguments)},bn=i.dynCall_iii=function(){return i.asm.hb.apply(null,arguments)},wn=i.dynCall_iiii=function(){return i.asm.ib.apply(null,arguments)},An=i.dynCall_iiiii=function(){return i.asm.jb.apply(null,arguments)},xn=i.dynCall_iiiiii=function(){return i.asm.kb.apply(null,arguments)},jn=i.dynCall_ji=function(){return i.asm.lb.apply(null,arguments)},Sn=i.dynCall_v=function(){return i.asm.mb.apply(null,arguments)},En=i.dynCall_vi=function(){return i.asm.nb.apply(null,arguments)},Cn=i.dynCall_vii=function(){return i.asm.ob.apply(null,arguments)},Rn=i.dynCall_viii=function(){return i.asm.pb.apply(null,arguments)},Dn=i.dynCall_viiii=function(){return i.asm.qb.apply(null,arguments)},Tn=i.dynCall_viiiii=function(){return i.asm.rb.apply(null,arguments)},kn=i.dynCall_viiiiiii=function(){return i.asm.sb.apply(null,arguments)},Ln=i.dynCall_viji=function(){return i.asm.tb.apply(null,arguments)};function On(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Mn(n){function t(){i.calledRun||(i.calledRun=!0,x||(!0,I(N),I(U),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)B(i.postRun.shift());I(q)}()))}n=n||i.arguments,H>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)n=i.preRun.shift(),F.unshift(n);var n;I(F)}(),H>0||i.calledRun||(i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),t()},1)):t()))}function Pn(n){throw i.onAbort&&i.onAbort(n),m(n+=""),g(n),x=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(i.asm=sn,i.then=function(n){if(i.calledRun)n(i);else{var t=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){t&&t(),n(i)}}return i},On.prototype=new Error,On.prototype.constructor=On,W=function n(){i.calledRun||Mn(),i.calledRun||(W=n)},i.run=Mn,i.abort=Pn,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return i.noExitRuntime=!0,Mn(),i.ready=new Promise(function(n,t){delete i.then,i.onAbort=function(n){t(n)},B(function(){n(i)})}),o}}();n.exports=o}).call(this,e(2),"/")},function(n,t,e){n.exports=e.p+"static/media/DiabloSpawn.5292efdb.wasm"},function(n,t,e){(function(t,r){var o=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(o){var a,i="undefined"!==typeof(o=o||{})?o:{},u={};for(a in i)i.hasOwnProperty(a)&&(u[a]=i[a]);i.arguments=[],i.thisProgram="./this.program",i.quit=function(n,t){throw t},i.preRun=[],i.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof t&&"object"===typeof t.versions&&"string"===typeof t.versions.node&&!f&&!l,c=!f&&!s&&!l;var p,d,h,_,y="";s?(y=r+"/",p=function(n,t){var r;return h||(h=e(3)),_||(_=e(4)),n=_.normalize(n),r=h.readFileSync(n),t?r:r.toString()},d=function(n){var t=p(n,!0);return t.buffer||(t=new Uint8Array(t)),j(t.buffer),t},t.argv.length>1&&(i.thisProgram=t.argv[1].replace(/\\/g,"/")),i.arguments=t.argv.slice(2),t.on("uncaughtException",function(n){if(!(n instanceof On))throw n}),t.on("unhandledRejection",Pn),i.quit=function(n){t.exit(n)},i.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(p=function(n){return read(n)}),d=function(n){var t;return"function"===typeof readbuffer?new Uint8Array(readbuffer(n)):(j("object"===typeof(t=read(n,"binary"))),t)},"undefined"!=typeof scriptArgs?i.arguments=scriptArgs:"undefined"!=typeof arguments&&(i.arguments=arguments),"function"===typeof quit&&(i.quit=function(n){quit(n)})):(f||l)&&(l?y=self.location.href:document.currentScript&&(y=document.currentScript.src),n&&(y=n),y=0!==y.indexOf("blob:")?y.substr(0,y.lastIndexOf("/")+1):"",p=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.send(null),t.responseText},l&&(d=function(n){var t=new XMLHttpRequest;return t.open("GET",n,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),function(n,t,e){var r=new XMLHttpRequest;r.open("GET",n,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):e()},r.onerror=e,r.send(null)});var m=i.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),g=i.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(a in u)u.hasOwnProperty(a)&&(i[a]=u[a]);u=void 0;var v,b={"f64-rem":function(n,t){return n%t},debugger:function(){}},w=(new Array(0),0),A=function(n){w=n};"object"!==typeof WebAssembly&&g("no native wasm support detected");var x=!1;function j(n,t){n||Pn("Assertion failed: "+t)}var S="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(n,t,e){for(var r=t+e,o=t;n[o]&&!(o>=r);)++o;if(o-t>16&&n.subarray&&S)return S.decode(n.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|u)}else a+=String.fromCharCode(i)}return a}function C(n,t){return n?E(T,n,t):""}var R,D,T,k,L;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function O(n,t){return n%t>0&&(n+=t-n%t),n}function M(){i.HEAP8=D=new Int8Array(R),i.HEAP16=new Int16Array(R),i.HEAP32=k=new Int32Array(R),i.HEAPU8=T=new Uint8Array(R),i.HEAPU16=new Uint16Array(R),i.HEAPU32=new Uint32Array(R),i.HEAPF32=L=new Float32Array(R),i.HEAPF64=new Float64Array(R)}var P=i.TOTAL_MEMORY||134217728;function I(n){for(;n.length>0;){var t=n.shift();if("function"!=typeof t){var e=t.func;"number"===typeof e?void 0===t.arg?i.dynCall_v(e):i.dynCall_vi(e,t.arg):e(void 0===t.arg?null:t.arg)}else t()}}P<5242880&&g("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+P+"! (TOTAL_STACK=5242880)"),(v=i.wasmMemory?i.wasmMemory:new WebAssembly.Memory({initial:P/65536}))&&(R=v.buffer),P=R.byteLength,M(),k[462504]=7092928;var F=[],N=[],U=[],q=[];function B(n){q.unshift(n)}var H=0,z=null,W=null;i.preloadedImages={},i.preloadedAudios={};var G="data:application/octet-stream;base64,";function X(n){return String.prototype.startsWith?n.startsWith(G):0===n.indexOf(G)}var K,Y="DiabloSpawn.wasm";function J(){try{if(i.wasmBinary)return new Uint8Array(i.wasmBinary);if(d)return d(Y);throw"both async and sync fetching of the wasm failed"}catch(g){Pn(g)}}function V(n){var t={env:n,global:{NaN:NaN,Infinity:1/0},"global.Math":Math,asm2wasm:b};function e(n,t){var e=n.exports;i.asm=e,function(n){if(H--,i.monitorRunDependencies&&i.monitorRunDependencies(H),0==H&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}()}function r(n){e(n.instance)}function o(n){return(i.wasmBinary||!f&&!l||"function"!==typeof fetch?new Promise(function(n,t){n(J())}):fetch(Y,{credentials:"same-origin"}).then(function(n){if(!n.ok)throw"failed to load wasm binary file at '"+Y+"'";return n.arrayBuffer()}).catch(function(){return J()})).then(function(n){return WebAssembly.instantiate(n,t)}).then(n,function(n){g("failed to asynchronously prepare wasm: "+n),Pn(n)})}if(H++,i.monitorRunDependencies&&i.monitorRunDependencies(H),i.instantiateWasm)try{return i.instantiateWasm(t,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}return function(){if(i.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||X(Y)||"function"!==typeof fetch)return o(r);fetch(Y,{credentials:"same-origin"}).then(function(n){return WebAssembly.instantiateStreaming(n,t).then(r,function(n){g("wasm streaming compile failed: "+n),g("falling back to ArrayBuffer instantiation"),o(r)})})}(),{}}X(Y)||(K=Y,Y=i.locateFile?i.locateFile(K,y):y+K),i.asm=function(n,t,e){return t.memory=v,t.table=new WebAssembly.Table({initial:1114,maximum:1114,element:"anyfunc"}),t.__memory_base=1024,t.__table_base=0,V(t)};var Z=[function(n){self.DApi.current_save_id(n)}];N.push({func:function(){_n()}});var $={},Q=[];function nn(n){if(!n||$[n])return n;for(var t in $)for(var e=+t,r=$[e].adjusted,o=r.length,a=0;a>2],t.adjusted.push(n),0|(A(r[o]),n);return n=k[n>>2],0|(A(e),n)}i.___cxa_find_matching_catch=rn;var on={buffers:[null,[],[]],printChar:function(n,t){var e=on.buffers[n];0===t||10===t?((1===n?m:g)(E(e,0)),e.length=0):e.push(t)},varargs:0,get:function(n){return on.varargs+=4,k[on.varargs-4>>2]},getStr:function(){return C(on.get())},get64:function(){var n=on.get();on.get();return n},getZero:function(){on.get()}};function an(){return D.length}var un={n:Pn,L:A,b:function(){return w},ra:function(n){var t=mn();try{return gn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},g:function(n,t){var e=mn();try{return vn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},m:function(n,t,e){var r=mn();try{return bn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},o:function(n,t,e,r){var o=mn();try{return wn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},s:function(n,t,e,r,o){var a=mn();try{return An(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},t:function(n,t,e,r,o,a){var i=mn();try{return xn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},K:function(n,t){var e=mn();try{return jn(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},u:function(n){var t=mn();try{Sn(n)}catch(e){if(yn(t),e!==e+0&&"longjmp"!==e)throw e;hn(1,0)}},f:function(n,t){var e=mn();try{En(n,t)}catch(r){if(yn(e),r!==r+0&&"longjmp"!==r)throw r;hn(1,0)}},e:function(n,t,e){var r=mn();try{Cn(n,t,e)}catch(o){if(yn(r),o!==o+0&&"longjmp"!==o)throw o;hn(1,0)}},j:function(n,t,e,r){var o=mn();try{Rn(n,t,e,r)}catch(a){if(yn(o),a!==a+0&&"longjmp"!==a)throw a;hn(1,0)}},q:function(n,t,e,r,o){var a=mn();try{Dn(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},r:function(n,t,e,r,o,a){var i=mn();try{Tn(n,t,e,r,o,a)}catch(u){if(yn(i),u!==u+0&&"longjmp"!==u)throw u;hn(1,0)}},A:function(n,t,e,r,o,a,i,u){var s=mn();try{kn(n,t,e,r,o,a,i,u)}catch(c){if(yn(s),c!==c+0&&"longjmp"!==c)throw c;hn(1,0)}},J:function(n,t,e,r,o){var a=mn();try{Ln(n,t,e,r,o)}catch(i){if(yn(a),i!==i+0&&"longjmp"!==i)throw i;hn(1,0)}},z:function(n,t,e,r){Pn("Assertion failed: "+C(n)+", at: "+[t?C(t):"unknown filename",e,r?C(r):"unknown function"])},i:function(n){return dn(n)},y:function(n){var t=$[n];return t&&!t.caught&&(t.caught=!0,cn.uncaught_exceptions--),t&&(t.rethrown=!1),Q.push(n),function(n){n&&$[n].refcount++}(nn(n)),n},I:function(){hn(0);var n=Q.pop();n&&(function(n){if(n){var t=$[n];t.refcount--,0!==t.refcount||t.rethrown||(t.destructor&&i.dynCall_vi(t.destructor,n),delete $[n],en(n))}}(nn(n)),tn=0)},c:function(n,t){return rn(n,t)},h:function(n,t,e){return rn(n,t,e)},l:en,qa:function(n){return n},pa:function(){throw x=!0,"Pure virtual function called!"},k:function(n,t,e){throw $[n]={ptr:n,adjusted:[n],type:t,destructor:e,refcount:0,caught:!1,rethrown:!1},tn=n,"uncaught_exception"in cn?cn.uncaught_exceptions++:cn.uncaught_exceptions=1,n},oa:function(){return cn.uncaught_exceptions},na:function(){},d:function(n){throw tn||(tn=n),n},H:function(n){return i.___errno_location&&(k[i.___errno_location()>>2]=n),n},ma:function(n,t){on.varargs=t;try{return on.getStreamFromFD(),on.get(),on.get(),on.get(),on.get(),0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.ErrnoError||Pn(e),-e.errno}},G:function(n,t){on.varargs=t;try{for(var e=on.get(),r=on.get(),o=on.get(),a=0,i=0;i>2],s=k[r+(8*i+4)>>2],c=0;c2147418112)return!1;for(var e=Math.max(t,16777216);e>2]=t),t},M:function(n){Pn("OOM")},a:1850016},sn=i.asm({},un,R);i.asm=sn;i._DApi_AllocPacket=function(){return i.asm.sa.apply(null,arguments)},i._DApi_Char=function(){return i.asm.ta.apply(null,arguments)},i._DApi_Init=function(){return i.asm.ua.apply(null,arguments)},i._DApi_Key=function(){return i.asm.va.apply(null,arguments)},i._DApi_Mouse=function(){return i.asm.wa.apply(null,arguments)},i._DApi_Render=function(){return i.asm.xa.apply(null,arguments)},i._DApi_SyncText=function(){return i.asm.ya.apply(null,arguments)},i._SNet_InitWebsocket=function(){return i.asm.za.apply(null,arguments)};var cn=i.__ZSt18uncaught_exceptionv=function(){return i.asm.Aa.apply(null,arguments)},fn=i.___cxa_can_catch=function(){return i.asm.Ba.apply(null,arguments)},ln=i.___cxa_is_pointer_type=function(){return i.asm.Ca.apply(null,arguments)},pn=(i.___em_js__api_close_keyboard=function(){return i.asm.Da.apply(null,arguments)},i.___em_js__api_create_sound=function(){return i.asm.Ea.apply(null,arguments)},i.___em_js__api_create_sound_float=function(){return i.asm.Fa.apply(null,arguments)},i.___em_js__api_delete_sound=function(){return i.asm.Ga.apply(null,arguments)},i.___em_js__api_draw_begin=function(){return i.asm.Ha.apply(null,arguments)},i.___em_js__api_draw_belt=function(){return i.asm.Ia.apply(null,arguments)},i.___em_js__api_draw_blit=function(){return i.asm.Ja.apply(null,arguments)},i.___em_js__api_draw_clip_text=function(){return i.asm.Ka.apply(null,arguments)},i.___em_js__api_draw_end=function(){return i.asm.La.apply(null,arguments)},i.___em_js__api_draw_text=function(){return i.asm.Ma.apply(null,arguments)},i.___em_js__api_duplicate_sound=function(){return i.asm.Na.apply(null,arguments)},i.___em_js__api_exit_game=function(){return i.asm.Oa.apply(null,arguments)},i.___em_js__api_open_keyboard=function(){return i.asm.Pa.apply(null,arguments)},i.___em_js__api_play_sound=function(){return i.asm.Qa.apply(null,arguments)},i.___em_js__api_set_cursor=function(){return i.asm.Ra.apply(null,arguments)},i.___em_js__api_set_volume=function(){return i.asm.Sa.apply(null,arguments)},i.___em_js__api_stop_sound=function(){return i.asm.Ta.apply(null,arguments)},i.___em_js__api_websocket_closed=function(){return i.asm.Ua.apply(null,arguments)},i.___em_js__api_websocket_send=function(){return i.asm.Va.apply(null,arguments)},i.___em_js__exit_error=function(){return i.asm.Wa.apply(null,arguments)},i.___em_js__get_file_contents=function(){return i.asm.Xa.apply(null,arguments)},i.___em_js__get_file_size=function(){return i.asm.Ya.apply(null,arguments)},i.___em_js__put_file_contents=function(){return i.asm.Za.apply(null,arguments)},i.___em_js__remove_file=function(){return i.asm._a.apply(null,arguments)},i.___em_js__show_alert=function(){return i.asm.$a.apply(null,arguments)},i.___em_js__trace_pop=function(){return i.asm.ab.apply(null,arguments)},i.___em_js__trace_push=function(){return i.asm.bb.apply(null,arguments)},i._free=function(){return i.asm.cb.apply(null,arguments)}),dn=i._malloc=function(){return i.asm.db.apply(null,arguments)},hn=i._setThrew=function(){return i.asm.eb.apply(null,arguments)},_n=i.globalCtors=function(){return i.asm.ub.apply(null,arguments)},yn=i.stackRestore=function(){return i.asm.vb.apply(null,arguments)},mn=i.stackSave=function(){return i.asm.wb.apply(null,arguments)},gn=i.dynCall_i=function(){return i.asm.fb.apply(null,arguments)},vn=i.dynCall_ii=function(){return i.asm.gb.apply(null,arguments)},bn=i.dynCall_iii=function(){return i.asm.hb.apply(null,arguments)},wn=i.dynCall_iiii=function(){return i.asm.ib.apply(null,arguments)},An=i.dynCall_iiiii=function(){return i.asm.jb.apply(null,arguments)},xn=i.dynCall_iiiiii=function(){return i.asm.kb.apply(null,arguments)},jn=i.dynCall_ji=function(){return i.asm.lb.apply(null,arguments)},Sn=i.dynCall_v=function(){return i.asm.mb.apply(null,arguments)},En=i.dynCall_vi=function(){return i.asm.nb.apply(null,arguments)},Cn=i.dynCall_vii=function(){return i.asm.ob.apply(null,arguments)},Rn=i.dynCall_viii=function(){return i.asm.pb.apply(null,arguments)},Dn=i.dynCall_viiii=function(){return i.asm.qb.apply(null,arguments)},Tn=i.dynCall_viiiii=function(){return i.asm.rb.apply(null,arguments)},kn=i.dynCall_viiiiiii=function(){return i.asm.sb.apply(null,arguments)},Ln=i.dynCall_viji=function(){return i.asm.tb.apply(null,arguments)};function On(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Mn(n){function t(){i.calledRun||(i.calledRun=!0,x||(!0,I(N),I(U),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)B(i.postRun.shift());I(q)}()))}n=n||i.arguments,H>0||(!function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)n=i.preRun.shift(),F.unshift(n);var n;I(F)}(),H>0||i.calledRun||(i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),t()},1)):t()))}function Pn(n){throw i.onAbort&&i.onAbort(n),m(n+=""),g(n),x=!0,1,"abort("+n+"). Build with -s ASSERTIONS=1 for more info."}if(i.asm=sn,i.then=function(n){if(i.calledRun)n(i);else{var t=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){t&&t(),n(i)}}return i},On.prototype=new Error,On.prototype.constructor=On,W=function n(){i.calledRun||Mn(),i.calledRun||(W=n)},i.run=Mn,i.abort=Pn,i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return i.noExitRuntime=!0,Mn(),i.ready=new Promise(function(n,t){delete i.then,i.onAbort=function(n){t(n)},B(function(){n(i)})}),o}}();n.exports=o}).call(this,e(2),"/")},function(n,t,e){n.exports=e(19)},function(n,t,e){var r=function(n){"use strict";var t,e=Object.prototype,r=e.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(n,t,e,r){var o=t&&t.prototype instanceof _?t:_,a=Object.create(o.prototype),i=new C(r||[]);return a._invoke=function(n,t,e){var r=f;return function(o,a){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===o)throw a;return D()}for(e.method=o,e.arg=a;;){var i=e.delegate;if(i){var u=j(i,e);if(u){if(u===h)continue;return u}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(r===f)throw r=d,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r=p;var s=c(n,t,e);if("normal"===s.type){if(r=e.done?d:l,s.arg===h)continue;return{value:s.arg,done:e.done}}"throw"===s.type&&(r=d,e.method="throw",e.arg=s.arg)}}}(n,e,i),a}function c(n,t,e){try{return{type:"normal",arg:n.call(t,e)}}catch(r){return{type:"throw",arg:r}}}n.wrap=s;var f="suspendedStart",l="suspendedYield",p="executing",d="completed",h={};function _(){}function y(){}function m(){}var g={};g[a]=function(){return this};var v=Object.getPrototypeOf,b=v&&v(v(R([])));b&&b!==e&&r.call(b,a)&&(g=b);var w=m.prototype=_.prototype=Object.create(g);function A(n){["next","throw","return"].forEach(function(t){n[t]=function(n){return this._invoke(t,n)}})}function x(n){var t;this._invoke=function(e,o){function a(){return new Promise(function(t,a){!function t(e,o,a,i){var u=c(n[e],n,o);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(n){t("next",n,a,i)},function(n){t("throw",n,a,i)}):Promise.resolve(f).then(function(n){s.value=n,a(s)},function(n){return t("throw",n,a,i)})}i(u.arg)}(e,o,t,a)})}return t=t?t.then(a,a):a()}}function j(n,e){var r=n.iterator[e.method];if(r===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=t,j(n,e),"throw"===e.method))return h;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=c(r,n.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var a=o.arg;return a?a.done?(e[n.resultName]=a.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,h):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(n){var t={tryLoc:n[0]};1 in n&&(t.catchLoc=n[1]),2 in n&&(t.finallyLoc=n[2],t.afterLoc=n[3]),this.tryEntries.push(t)}function E(n){var t=n.completion||{};t.type="normal",delete t.arg,n.completion=t}function C(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(S,this),this.reset(!0)}function R(n){if(n){var e=n[a];if(e)return e.call(n);if("function"===typeof n.next)return n;if(!isNaN(n.length)){var o=-1,i=function e(){for(;++o=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(s&&c){if(this.prev=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===n)return this.complete(e.completion,e.afterLoc),E(e),h}},catch:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===n){var r=e.completion;if("throw"===r.type){var o=r.arg;E(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,r){return this.delegate={iterator:R(n),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=t),h}},n}(n.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(n,t,e){"use strict";var r=e(0),o=e(5),a=e(21),i=e(11);function u(n){var t=new a(n),e=o(a.prototype.request,t);return r.extend(e,a.prototype,t),r.extend(e,t),e}var s=u(e(8));s.Axios=a,s.create=function(n){return u(i(s.defaults,n))},s.Cancel=e(12),s.CancelToken=e(33),s.isCancel=e(7),s.all=function(n){return Promise.all(n)},s.spread=e(34),n.exports=s,n.exports.default=s},function(n,t){n.exports=function(n){return null!=n&&null!=n.constructor&&"function"===typeof n.constructor.isBuffer&&n.constructor.isBuffer(n)}},function(n,t,e){"use strict";var r=e(0),o=e(6),a=e(22),i=e(23),u=e(11);function s(n){this.defaults=n,this.interceptors={request:new a,response:new a}}s.prototype.request=function(n){"string"===typeof n?(n=arguments[1]||{}).url=arguments[0]:n=n||{},(n=u(this.defaults,n)).method=n.method?n.method.toLowerCase():"get";var t=[i,void 0],e=Promise.resolve(n);for(this.interceptors.request.forEach(function(n){t.unshift(n.fulfilled,n.rejected)}),this.interceptors.response.forEach(function(n){t.push(n.fulfilled,n.rejected)});t.length;)e=e.then(t.shift(),t.shift());return e},s.prototype.getUri=function(n){return n=u(this.defaults,n),o(n.url,n.params,n.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(n){s.prototype[n]=function(t,e){return this.request(r.merge(e||{},{method:n,url:t}))}}),r.forEach(["post","put","patch"],function(n){s.prototype[n]=function(t,e,o){return this.request(r.merge(o||{},{method:n,url:t,data:e}))}}),n.exports=s},function(n,t,e){"use strict";var r=e(0);function o(){this.handlers=[]}o.prototype.use=function(n,t){return this.handlers.push({fulfilled:n,rejected:t}),this.handlers.length-1},o.prototype.eject=function(n){this.handlers[n]&&(this.handlers[n]=null)},o.prototype.forEach=function(n){r.forEach(this.handlers,function(t){null!==t&&n(t)})},n.exports=o},function(n,t,e){"use strict";var r=e(0),o=e(24),a=e(7),i=e(8),u=e(31),s=e(32);function c(n){n.cancelToken&&n.cancelToken.throwIfRequested()}n.exports=function(n){return c(n),n.baseURL&&!u(n.url)&&(n.url=s(n.baseURL,n.url)),n.headers=n.headers||{},n.data=o(n.data,n.headers,n.transformRequest),n.headers=r.merge(n.headers.common||{},n.headers[n.method]||{},n.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete n.headers[t]}),(n.adapter||i.adapter)(n).then(function(t){return c(n),t.data=o(t.data,t.headers,n.transformResponse),t},function(t){return a(t)||(c(n),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,n.transformResponse))),Promise.reject(t)})}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t,e){return r.forEach(e,function(e){n=e(n,t)}),n}},function(n,t,e){"use strict";var r=e(0);n.exports=function(n,t){r.forEach(n,function(e,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(n[t]=e,delete n[r])})}},function(n,t,e){"use strict";var r=e(10);n.exports=function(n,t,e){var o=e.config.validateStatus;!o||o(e.status)?n(e):t(r("Request failed with status code "+e.status,e.config,null,e.request,e))}},function(n,t,e){"use strict";n.exports=function(n,t,e,r,o){return n.config=t,e&&(n.code=e),n.request=r,n.response=o,n.isAxiosError=!0,n.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},n}},function(n,t,e){"use strict";var r=e(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];n.exports=function(n){var t,e,a,i={};return n?(r.forEach(n.split("\n"),function(n){if(a=n.indexOf(":"),t=r.trim(n.substr(0,a)).toLowerCase(),e=r.trim(n.substr(a+1)),t){if(i[t]&&o.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([e]):i[t]?i[t]+", "+e:e}}),i):i}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?function(){var n,t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function o(n){var r=n;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return n=o(window.location.href),function(t){var e=r.isString(t)?o(t):t;return e.protocol===n.protocol&&e.host===n.host}}():function(){return!0}},function(n,t,e){"use strict";var r=e(0);n.exports=r.isStandardBrowserEnv()?{write:function(n,t,e,o,a,i){var u=[];u.push(n+"="+encodeURIComponent(t)),r.isNumber(e)&&u.push("expires="+new Date(e).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(a)&&u.push("domain="+a),!0===i&&u.push("secure"),document.cookie=u.join("; ")},read:function(n){var t=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(n,t,e){"use strict";n.exports=function(n){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(n)}},function(n,t,e){"use strict";n.exports=function(n,t){return t?n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):n}},function(n,t,e){"use strict";var r=e(12);function o(n){if("function"!==typeof n)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(n){t=n});var e=this;n(function(n){e.reason||(e.reason=new r(n),t(e.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var n;return{token:new o(function(t){n=t}),cancel:n}},n.exports=o},function(n,t,e){"use strict";n.exports=function(n){return function(t){return n.apply(null,t)}}},function(n,t,e){"use strict";function r(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=[],r=!0,o=!1,a=void 0;try{for(var i,u=n[Symbol.iterator]();!(r=(i=u.next()).done)&&(e.push(i.value),!t||e.length!==t);r=!0);}catch(s){o=!0,a=s}finally{try{r||null==u.return||u.return()}finally{if(o)throw a}}return e}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}e.r(t);var o=e(1),a=e.n(o);function i(n){return function(n){if(Array.isArray(n)){for(var t=0,e=new Array(n.length);t=300)&&A.postMessage({action:"error",error:"Failed to load remote file"}),this.byteLength=parseInt(e.getResponseHeader("Content-Length")),this.url=t,this.buffer=new Uint8Array(this.byteLength),this.chunks=new Uint8Array(this.byteLength+T-1>>20|0)}var t,e,r;return t=n,(e=[{key:"subarray",value:function(n,t){for(var e=n/T|0,r=(t+T-1)/T|0,o=r,a=e,i=e;i=300)A.postMessage({action:"error",error:"Failed to load remote file"});else{var s,c=u.getResponseHeader("Content-Range"),f=0;c&&(s=c.match(/bytes (\d+)-(\d+)\/(\d+)/))&&(f=parseInt(s[1])),this.buffer.set(new Uint8Array(u.response),f),e=(f+T-1)/T|0,r=(f+u.response.byteLength+T-1)/T|0;for(var l=e;l=0?D?"spawn".concat(n,".sv"):"single_".concat(n,".sv"):null})},get_file_size:function(n){var t=E.get(n.toLowerCase());return t?t.byteLength:0},get_file_contents:function(n,t,e){var r=E.get(n.toLowerCase());r&&t.set(r.subarray(e,e+t.byteLength))},put_file_contents:function(n,t){n=n.toLowerCase(),E.set(n,t),A.postMessage({action:"fs",func:"update",params:[n,t]})},remove_file:function(n){n=n.toLowerCase(),E.delete(n),A.postMessage({action:"fs",func:"delete",params:[n]})},set_cursor:function(n,t){A.postMessage({action:"cursor",x:n,y:t})},open_keyboard:function(){for(var n=arguments.length,t=new Array(n),e=0;e>16&255,a=r>>8&255,i=255&r;j.fillStyle="rgb(".concat(o,", ").concat(a,", ").concat(i,")"),j.fillText(e,n,t+22)},draw_end:function(){j.restore();var n=x.transferToImageBitmap(),t=[n];R&&t.push(R.buffer),A.postMessage({action:"render",batch:{bitmap:n,belt:R}},t),R=null},draw_belt:function(n){R=n.slice()}},P=null,I=null,F=0,N=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(n){L[n]=function(){for(var t=arguments.length,e=new Array(t),r=0;r=F?P.push({func:n,params:e}):A.postMessage({action:"audio",func:n,params:e})}});var U=null;L.websocket_send=function(n){U?U.push(n.slice().buffer):A.postMessage({action:"packet",buffer:n})},A.DApi=L;var q=null;function B(n){try{n()}catch(t){"string"===typeof t&&A.postMessage({action:""}),A.postMessage({action:"error",error:t.toString(),stack:t.stack})}}function H(n){for(var t=arguments.length,e=new Array(t>1?t-1:0),r=1;r undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.85de21cc.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=function(status,toThrow){throw toThrow};Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_HAS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);Module[\"quit\"]=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={\"f64-rem\":function(x,y){return x%y},\"debugger\":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=7117728,DYNAMICTOP_PTR=1874816;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile=\"Diablo.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module[\"wasmBinary\"]){return new Uint8Array(Module[\"wasmBinary\"])}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module[\"wasmBinary\"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={\"env\":env,\"global\":{\"NaN\":NaN,Infinity:Infinity},\"global.Math\":Math,\"asm2wasm\":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!Module[\"wasmBinary\"]&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}Module[\"asm\"]=function(global,env,providedBuffer){env[\"memory\"]=wasmMemory;env[\"table\"]=wasmTable=new WebAssembly.Table({\"initial\":1114,\"maximum\":1114,\"element\":\"anyfunc\"});env[\"__memory_base\"]=1024;env[\"__table_base\"]=0;var exports=createWasm(env);return exports};var ASM_CONSTS=[function($0){self.DApi.current_save_id($0)}];function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _api_close_keyboard(){self.DApi.close_keyboard()}function _api_create_sound(id,ptr,size){self.DApi.create_sound(id,HEAPU8.slice(ptr,ptr+size))}function _api_create_sound_float(id,ptr,samples,channels,rate){self.DApi.create_sound_raw(id,HEAPF32.slice(ptr/4,ptr/4+samples*channels),samples,channels,rate)}function _api_delete_sound(id){self.DApi.delete_sound(id)}function _api_draw_begin(){self.DApi.draw_begin()}function _api_draw_belt(items){self.DApi.draw_belt(HEAP32.subarray(items/4,items/4+8))}function _api_draw_blit(x,y,w,h,ptr){self.DApi.draw_blit(x,y,w,h,HEAPU8.subarray(ptr,ptr+w*h*4))}function _api_draw_clip_text(x0,y0,x1,y1){self.DApi.draw_clip_text(x0,y0,x1,y1)}function _api_draw_end(){self.DApi.draw_end()}function _api_draw_text(x,y,ptr,color){var end=HEAPU8.indexOf(0,ptr);var text=String.fromCharCode.apply(null,HEAPU8.subarray(ptr,end));self.DApi.draw_text(x,y,text,color)}function _api_duplicate_sound(id,srcId){self.DApi.duplicate_sound(id,srcId)}function _api_exit_game(){self.DApi.exit_game()}function _api_open_keyboard(x0,y0,x1,y1){self.DApi.open_keyboard(x0,y0,x1,y1)}function _api_play_sound(id,volume,pan,loop){self.DApi.play_sound(id,volume,pan,loop)}function _api_set_cursor(x,y){self.DApi.set_cursor(x,y)}function _api_set_volume(id,volume){self.DApi.set_volume(id,volume)}function _api_stop_sound(id){self.DApi.stop_sound(id)}function _api_websocket_closed(){return self.DApi.websocket_closed()}function _api_websocket_send(ptr,size){self.DApi.websocket_send(HEAPU8.subarray(ptr,ptr+size))}function _exit_error(err){var end=HEAPU8.indexOf(0,err);var text=String.fromCharCode.apply(null,HEAPU8.subarray(err,end));self.DApi.exit_error(text)}function _get_file_contents(path,ptr,offset,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.get_file_contents(text,HEAPU8.subarray(ptr,ptr+size),offset)}function _get_file_size(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));return self.DApi.get_file_size(text)}function _put_file_contents(path,ptr,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.put_file_contents(text,HEAPU8.slice(ptr,ptr+size))}function _remove_file(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.remove_file(text)}__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}Module[\"___cxa_find_matching_catch\"]=___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1){return ___cxa_find_matching_catch(a0,a1)}function ___cxa_find_matching_catch_3(a0,a1,a2){return ___cxa_find_matching_catch(a0,a1,a2)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=ret}return ret}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var asmGlobalArg={};var asmLibraryArg={\"n\":abort,\"L\":setTempRet0,\"b\":getTempRet0,\"ra\":invoke_i,\"g\":invoke_ii,\"l\":invoke_iii,\"o\":invoke_iiii,\"s\":invoke_iiiii,\"t\":invoke_iiiiii,\"K\":invoke_ji,\"u\":invoke_v,\"f\":invoke_vi,\"e\":invoke_vii,\"j\":invoke_viii,\"q\":invoke_viiii,\"r\":invoke_viiiii,\"A\":invoke_viiiiiii,\"J\":invoke_viji,\"z\":___assert_fail,\"i\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"I\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"h\":___cxa_find_matching_catch_3,\"m\":___cxa_free_exception,\"qa\":___cxa_get_exception_ptr,\"pa\":___cxa_pure_virtual,\"k\":___cxa_throw,\"oa\":___cxa_uncaught_exceptions,\"na\":___lock,\"d\":___resumeException,\"H\":___setErrNo,\"ma\":___syscall140,\"G\":___syscall146,\"la\":___syscall54,\"ka\":___syscall6,\"F\":___unlock,\"E\":_abort,\"ja\":_api_close_keyboard,\"ia\":_api_create_sound,\"ha\":_api_create_sound_float,\"ga\":_api_delete_sound,\"fa\":_api_draw_begin,\"ea\":_api_draw_belt,\"D\":_api_draw_blit,\"da\":_api_draw_clip_text,\"w\":_api_draw_end,\"ca\":_api_draw_text,\"ba\":_api_duplicate_sound,\"aa\":_api_exit_game,\"C\":_api_open_keyboard,\"B\":_api_play_sound,\"$\":_api_set_cursor,\"_\":_api_set_volume,\"Z\":_api_stop_sound,\"Y\":_api_websocket_closed,\"X\":_api_websocket_send,\"W\":_emscripten_asm_const_ii,\"V\":_emscripten_get_heap_size,\"U\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"p\":_exit,\"S\":_exit_error,\"v\":_get_file_contents,\"R\":_get_file_size,\"Q\":_llvm_eh_typeid_for,\"P\":_llvm_trap,\"O\":_put_file_contents,\"N\":_remove_file,\"x\":_time,\"M\":abortOnCannotGrowMemory,\"a\":DYNAMICTOP_PTR};var asm=Module[\"asm\"](asmGlobalArg,asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=function(){return Module[\"asm\"][\"sa\"].apply(null,arguments)};var _DApi_Char=Module[\"_DApi_Char\"]=function(){return Module[\"asm\"][\"ta\"].apply(null,arguments)};var _DApi_Init=Module[\"_DApi_Init\"]=function(){return Module[\"asm\"][\"ua\"].apply(null,arguments)};var _DApi_Key=Module[\"_DApi_Key\"]=function(){return Module[\"asm\"][\"va\"].apply(null,arguments)};var _DApi_Mouse=Module[\"_DApi_Mouse\"]=function(){return Module[\"asm\"][\"wa\"].apply(null,arguments)};var _DApi_Render=Module[\"_DApi_Render\"]=function(){return Module[\"asm\"][\"xa\"].apply(null,arguments)};var _DApi_SyncText=Module[\"_DApi_SyncText\"]=function(){return Module[\"asm\"][\"ya\"].apply(null,arguments)};var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=function(){return Module[\"asm\"][\"za\"].apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return Module[\"asm\"][\"Aa\"].apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return Module[\"asm\"][\"Ba\"].apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return Module[\"asm\"][\"Ca\"].apply(null,arguments)};var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=function(){return Module[\"asm\"][\"Da\"].apply(null,arguments)};var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=function(){return Module[\"asm\"][\"Ea\"].apply(null,arguments)};var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=function(){return Module[\"asm\"][\"Fa\"].apply(null,arguments)};var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=function(){return Module[\"asm\"][\"Ga\"].apply(null,arguments)};var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=function(){return Module[\"asm\"][\"Ha\"].apply(null,arguments)};var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=function(){return Module[\"asm\"][\"Ia\"].apply(null,arguments)};var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=function(){return Module[\"asm\"][\"Ja\"].apply(null,arguments)};var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=function(){return Module[\"asm\"][\"Ka\"].apply(null,arguments)};var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=function(){return Module[\"asm\"][\"La\"].apply(null,arguments)};var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=function(){return Module[\"asm\"][\"Ma\"].apply(null,arguments)};var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=function(){return Module[\"asm\"][\"Na\"].apply(null,arguments)};var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=function(){return Module[\"asm\"][\"Oa\"].apply(null,arguments)};var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=function(){return Module[\"asm\"][\"Pa\"].apply(null,arguments)};var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=function(){return Module[\"asm\"][\"Qa\"].apply(null,arguments)};var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=function(){return Module[\"asm\"][\"Ra\"].apply(null,arguments)};var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=function(){return Module[\"asm\"][\"Sa\"].apply(null,arguments)};var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=function(){return Module[\"asm\"][\"Ta\"].apply(null,arguments)};var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=function(){return Module[\"asm\"][\"Ua\"].apply(null,arguments)};var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=function(){return Module[\"asm\"][\"Va\"].apply(null,arguments)};var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=function(){return Module[\"asm\"][\"Wa\"].apply(null,arguments)};var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=function(){return Module[\"asm\"][\"Xa\"].apply(null,arguments)};var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=function(){return Module[\"asm\"][\"Ya\"].apply(null,arguments)};var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=function(){return Module[\"asm\"][\"Za\"].apply(null,arguments)};var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=function(){return Module[\"asm\"][\"_a\"].apply(null,arguments)};var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=function(){return Module[\"asm\"][\"$a\"].apply(null,arguments)};var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=function(){return Module[\"asm\"][\"ab\"].apply(null,arguments)};var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=function(){return Module[\"asm\"][\"bb\"].apply(null,arguments)};var _free=Module[\"_free\"]=function(){return Module[\"asm\"][\"cb\"].apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return Module[\"asm\"][\"db\"].apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return Module[\"asm\"][\"eb\"].apply(null,arguments)};var globalCtors=Module[\"globalCtors\"]=function(){return Module[\"asm\"][\"ub\"].apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return Module[\"asm\"][\"vb\"].apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return Module[\"asm\"][\"wb\"].apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return Module[\"asm\"][\"fb\"].apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return Module[\"asm\"][\"gb\"].apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return Module[\"asm\"][\"hb\"].apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return Module[\"asm\"][\"ib\"].apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return Module[\"asm\"][\"jb\"].apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return Module[\"asm\"][\"kb\"].apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return Module[\"asm\"][\"lb\"].apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return Module[\"asm\"][\"mb\"].apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return Module[\"asm\"][\"nb\"].apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return Module[\"asm\"][\"ob\"].apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return Module[\"asm\"][\"pb\"].apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return Module[\"asm\"][\"qb\"].apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return Module[\"asm\"][\"rb\"].apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return Module[\"asm\"][\"sb\"].apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return Module[\"asm\"][\"tb\"].apply(null,arguments)};Module[\"asm\"]=asm;Module[\"then\"]=function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise(function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=function(what){reject(what)};addOnPostRun(function(){resolve(Module)})});\r\n\r\n\r\n return Diablo\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.5292efdb.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=function(status,toThrow){throw toThrow};Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_HAS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);Module[\"quit\"]=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={\"f64-rem\":function(x,y){return x%y},\"debugger\":function(){debugger}};var functionPointers=new Array(0);var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=7092928,DYNAMICTOP_PTR=1850016;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(INITIAL_TOTAL_MEMORY>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile=\"DiabloSpawn.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module[\"wasmBinary\"]){return new Uint8Array(Module[\"wasmBinary\"])}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module[\"wasmBinary\"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={\"env\":env,\"global\":{\"NaN\":NaN,Infinity:Infinity},\"global.Math\":Math,\"asm2wasm\":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!Module[\"wasmBinary\"]&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}Module[\"asm\"]=function(global,env,providedBuffer){env[\"memory\"]=wasmMemory;env[\"table\"]=wasmTable=new WebAssembly.Table({\"initial\":1114,\"maximum\":1114,\"element\":\"anyfunc\"});env[\"__memory_base\"]=1024;env[\"__table_base\"]=0;var exports=createWasm(env);return exports};var ASM_CONSTS=[function($0){self.DApi.current_save_id($0)}];function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _api_close_keyboard(){self.DApi.close_keyboard()}function _api_create_sound(id,ptr,size){self.DApi.create_sound(id,HEAPU8.slice(ptr,ptr+size))}function _api_create_sound_float(id,ptr,samples,channels,rate){self.DApi.create_sound_raw(id,HEAPF32.slice(ptr/4,ptr/4+samples*channels),samples,channels,rate)}function _api_delete_sound(id){self.DApi.delete_sound(id)}function _api_draw_begin(){self.DApi.draw_begin()}function _api_draw_belt(items){self.DApi.draw_belt(HEAP32.subarray(items/4,items/4+8))}function _api_draw_blit(x,y,w,h,ptr){self.DApi.draw_blit(x,y,w,h,HEAPU8.subarray(ptr,ptr+w*h*4))}function _api_draw_clip_text(x0,y0,x1,y1){self.DApi.draw_clip_text(x0,y0,x1,y1)}function _api_draw_end(){self.DApi.draw_end()}function _api_draw_text(x,y,ptr,color){var end=HEAPU8.indexOf(0,ptr);var text=String.fromCharCode.apply(null,HEAPU8.subarray(ptr,end));self.DApi.draw_text(x,y,text,color)}function _api_duplicate_sound(id,srcId){self.DApi.duplicate_sound(id,srcId)}function _api_exit_game(){self.DApi.exit_game()}function _api_open_keyboard(x0,y0,x1,y1){self.DApi.open_keyboard(x0,y0,x1,y1)}function _api_play_sound(id,volume,pan,loop){self.DApi.play_sound(id,volume,pan,loop)}function _api_set_cursor(x,y){self.DApi.set_cursor(x,y)}function _api_set_volume(id,volume){self.DApi.set_volume(id,volume)}function _api_stop_sound(id){self.DApi.stop_sound(id)}function _api_websocket_closed(){return self.DApi.websocket_closed()}function _api_websocket_send(ptr,size){self.DApi.websocket_send(HEAPU8.subarray(ptr,ptr+size))}function _exit_error(err){var end=HEAPU8.indexOf(0,err);var text=String.fromCharCode.apply(null,HEAPU8.subarray(err,end));self.DApi.exit_error(text)}function _get_file_contents(path,ptr,offset,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.get_file_contents(text,HEAPU8.subarray(ptr,ptr+size),offset)}function _get_file_size(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));return self.DApi.get_file_size(text)}function _put_file_contents(path,ptr,size){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.put_file_contents(text,HEAPU8.slice(ptr,ptr+size))}function _remove_file(path){var end=HEAPU8.indexOf(0,path);var text=String.fromCharCode.apply(null,HEAPU8.subarray(path,end));self.DApi.remove_file(text)}__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}Module[\"___cxa_find_matching_catch\"]=___cxa_find_matching_catch;function ___cxa_find_matching_catch_2(a0,a1){return ___cxa_find_matching_catch(a0,a1)}function ___cxa_find_matching_catch_3(a0,a1,a2){return ___cxa_find_matching_catch(a0,a1,a2)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function ___lock(){}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=ret}return ret}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viji(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var asmGlobalArg={};var asmLibraryArg={\"n\":abort,\"L\":setTempRet0,\"b\":getTempRet0,\"ra\":invoke_i,\"g\":invoke_ii,\"m\":invoke_iii,\"o\":invoke_iiii,\"s\":invoke_iiiii,\"t\":invoke_iiiiii,\"K\":invoke_ji,\"u\":invoke_v,\"f\":invoke_vi,\"e\":invoke_vii,\"j\":invoke_viii,\"q\":invoke_viiii,\"r\":invoke_viiiii,\"A\":invoke_viiiiiii,\"J\":invoke_viji,\"z\":___assert_fail,\"i\":___cxa_allocate_exception,\"y\":___cxa_begin_catch,\"I\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"h\":___cxa_find_matching_catch_3,\"l\":___cxa_free_exception,\"qa\":___cxa_get_exception_ptr,\"pa\":___cxa_pure_virtual,\"k\":___cxa_throw,\"oa\":___cxa_uncaught_exceptions,\"na\":___lock,\"d\":___resumeException,\"H\":___setErrNo,\"ma\":___syscall140,\"G\":___syscall146,\"la\":___syscall54,\"ka\":___syscall6,\"F\":___unlock,\"E\":_abort,\"ja\":_api_close_keyboard,\"ia\":_api_create_sound,\"ha\":_api_create_sound_float,\"ga\":_api_delete_sound,\"fa\":_api_draw_begin,\"ea\":_api_draw_belt,\"D\":_api_draw_blit,\"da\":_api_draw_clip_text,\"w\":_api_draw_end,\"ca\":_api_draw_text,\"ba\":_api_duplicate_sound,\"aa\":_api_exit_game,\"C\":_api_open_keyboard,\"B\":_api_play_sound,\"$\":_api_set_cursor,\"_\":_api_set_volume,\"Z\":_api_stop_sound,\"Y\":_api_websocket_closed,\"X\":_api_websocket_send,\"W\":_emscripten_asm_const_ii,\"V\":_emscripten_get_heap_size,\"U\":_emscripten_memcpy_big,\"T\":_emscripten_resize_heap,\"p\":_exit,\"S\":_exit_error,\"v\":_get_file_contents,\"R\":_get_file_size,\"Q\":_llvm_eh_typeid_for,\"P\":_llvm_trap,\"O\":_put_file_contents,\"N\":_remove_file,\"x\":_time,\"M\":abortOnCannotGrowMemory,\"a\":DYNAMICTOP_PTR};var asm=Module[\"asm\"](asmGlobalArg,asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=function(){return Module[\"asm\"][\"sa\"].apply(null,arguments)};var _DApi_Char=Module[\"_DApi_Char\"]=function(){return Module[\"asm\"][\"ta\"].apply(null,arguments)};var _DApi_Init=Module[\"_DApi_Init\"]=function(){return Module[\"asm\"][\"ua\"].apply(null,arguments)};var _DApi_Key=Module[\"_DApi_Key\"]=function(){return Module[\"asm\"][\"va\"].apply(null,arguments)};var _DApi_Mouse=Module[\"_DApi_Mouse\"]=function(){return Module[\"asm\"][\"wa\"].apply(null,arguments)};var _DApi_Render=Module[\"_DApi_Render\"]=function(){return Module[\"asm\"][\"xa\"].apply(null,arguments)};var _DApi_SyncText=Module[\"_DApi_SyncText\"]=function(){return Module[\"asm\"][\"ya\"].apply(null,arguments)};var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=function(){return Module[\"asm\"][\"za\"].apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return Module[\"asm\"][\"Aa\"].apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return Module[\"asm\"][\"Ba\"].apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return Module[\"asm\"][\"Ca\"].apply(null,arguments)};var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=function(){return Module[\"asm\"][\"Da\"].apply(null,arguments)};var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=function(){return Module[\"asm\"][\"Ea\"].apply(null,arguments)};var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=function(){return Module[\"asm\"][\"Fa\"].apply(null,arguments)};var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=function(){return Module[\"asm\"][\"Ga\"].apply(null,arguments)};var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=function(){return Module[\"asm\"][\"Ha\"].apply(null,arguments)};var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=function(){return Module[\"asm\"][\"Ia\"].apply(null,arguments)};var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=function(){return Module[\"asm\"][\"Ja\"].apply(null,arguments)};var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=function(){return Module[\"asm\"][\"Ka\"].apply(null,arguments)};var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=function(){return Module[\"asm\"][\"La\"].apply(null,arguments)};var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=function(){return Module[\"asm\"][\"Ma\"].apply(null,arguments)};var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=function(){return Module[\"asm\"][\"Na\"].apply(null,arguments)};var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=function(){return Module[\"asm\"][\"Oa\"].apply(null,arguments)};var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=function(){return Module[\"asm\"][\"Pa\"].apply(null,arguments)};var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=function(){return Module[\"asm\"][\"Qa\"].apply(null,arguments)};var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=function(){return Module[\"asm\"][\"Ra\"].apply(null,arguments)};var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=function(){return Module[\"asm\"][\"Sa\"].apply(null,arguments)};var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=function(){return Module[\"asm\"][\"Ta\"].apply(null,arguments)};var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=function(){return Module[\"asm\"][\"Ua\"].apply(null,arguments)};var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=function(){return Module[\"asm\"][\"Va\"].apply(null,arguments)};var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=function(){return Module[\"asm\"][\"Wa\"].apply(null,arguments)};var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=function(){return Module[\"asm\"][\"Xa\"].apply(null,arguments)};var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=function(){return Module[\"asm\"][\"Ya\"].apply(null,arguments)};var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=function(){return Module[\"asm\"][\"Za\"].apply(null,arguments)};var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=function(){return Module[\"asm\"][\"_a\"].apply(null,arguments)};var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=function(){return Module[\"asm\"][\"$a\"].apply(null,arguments)};var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=function(){return Module[\"asm\"][\"ab\"].apply(null,arguments)};var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=function(){return Module[\"asm\"][\"bb\"].apply(null,arguments)};var _free=Module[\"_free\"]=function(){return Module[\"asm\"][\"cb\"].apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return Module[\"asm\"][\"db\"].apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return Module[\"asm\"][\"eb\"].apply(null,arguments)};var globalCtors=Module[\"globalCtors\"]=function(){return Module[\"asm\"][\"ub\"].apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return Module[\"asm\"][\"vb\"].apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return Module[\"asm\"][\"wb\"].apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return Module[\"asm\"][\"fb\"].apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return Module[\"asm\"][\"gb\"].apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return Module[\"asm\"][\"hb\"].apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return Module[\"asm\"][\"ib\"].apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return Module[\"asm\"][\"jb\"].apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return Module[\"asm\"][\"kb\"].apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return Module[\"asm\"][\"lb\"].apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return Module[\"asm\"][\"mb\"].apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return Module[\"asm\"][\"nb\"].apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return Module[\"asm\"][\"ob\"].apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return Module[\"asm\"][\"pb\"].apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return Module[\"asm\"][\"qb\"].apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return Module[\"asm\"][\"rb\"].apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return Module[\"asm\"][\"sb\"].apply(null,arguments)};var dynCall_viji=Module[\"dynCall_viji\"]=function(){return Module[\"asm\"][\"tb\"].apply(null,arguments)};Module[\"asm\"]=asm;Module[\"then\"]=function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise(function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=function(what){reject(what)};addOnPostRun(function(){resolve(Module)})});\r\n\r\n\r\n return DiabloSpawn\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1316452;\r\nconst SpawnSize = 1196648;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\n\r\nconst ChunkSize = 1 << 20;\r\nclass RemoteFile {\r\n constructor(url) {\r\n const request = new XMLHttpRequest();\r\n request.open('HEAD', url, false);\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n }\r\n this.byteLength = parseInt(request.getResponseHeader('Content-Length'));\r\n\r\n this.url = url;\r\n\r\n this.buffer = new Uint8Array(this.byteLength);\r\n this.chunks = new Uint8Array(((this.byteLength + ChunkSize - 1) >> 20) | 0);\r\n }\r\n\r\n subarray(start, end) {\r\n let chunk0 = (start / ChunkSize) | 0;\r\n let chunk1 = ((end + ChunkSize - 1) / ChunkSize) | 0;\r\n let missing0 = chunk1, missing1 = chunk0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n if (!this.chunks[i]) {\r\n missing0 = Math.min(missing0, i);\r\n missing1 = Math.max(missing1, i);\r\n }\r\n }\r\n if (missing0 <= missing1) {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', this.url, false);\r\n request.setRequestHeader('Range', `bytes=${missing0 * ChunkSize}-${Math.min(missing1 * ChunkSize + ChunkSize - 1, this.byteLength - 1)}`);\r\n request.responseType = 'arraybuffer';\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n } else {\r\n const header = request.getResponseHeader('Content-Range');\r\n let m, start = 0;\r\n if (header && (m = header.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/))) {\r\n start = parseInt(m[1]);\r\n }\r\n this.buffer.set(new Uint8Array(request.response), start);\r\n chunk0 = ((start + ChunkSize - 1) / ChunkSize) | 0;\r\n chunk1 = ((start + request.response.byteLength + ChunkSize - 1) / ChunkSize) | 0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n this.chunks[i] = 1;\r\n }\r\n }\r\n }\r\n return this.buffer.subarray(start, end);\r\n }\r\n}\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.byteLength));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard(...args) {\r\n worker.postMessage({action: \"keyboard\", rect: [...args]});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", rect: null});\r\n },\r\n\r\n websocket_closed() {\r\n return false;\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound_raw\", \"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func !== \"duplicate_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func !== \"duplicate_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nlet packetBatch = null;\r\nDApi.websocket_send = function(data) {\r\n if (packetBatch) {\r\n packetBatch.push(data.slice().buffer);\r\n } else {\r\n worker.postMessage({action: \"packet\", buffer: data});\r\n }\r\n};\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction try_api(func) {\r\n try {\r\n func();\r\n } catch (e) {\r\n if (typeof e === \"string\") {\r\n worker.postMessage({action: \"\"})\r\n }\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction call_api(func, ...params) {\r\n try_api(() => {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n packetBatch = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n }\r\n if (packetBatch.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetBatch}, packetBatch);\r\n }\r\n audioBatch = null;\r\n audioTransfer = null;\r\n packetBatch = null;\r\n });\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n if (!mpq) {\r\n const name = (spawn ? 'spawn.mpq' : 'diabdat.mpq');\r\n if (!files.has(name)) {\r\n // This should never happen, but we do support remote loading\r\n files.set(name, new RemoteFile(`${process.env.PUBLIC_URL}/${name}`));\r\n }\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._SNet_InitWebsocket();\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n case \"packet\":\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.buffer.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data.buffer), ptr);\r\n });\r\n break;\r\n case \"packetBatch\":\r\n try_api(() => {\r\n for (let packet of data.batch) {\r\n const ptr = wasm._DApi_AllocPacket(packet.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(packet), ptr);\r\n }\r\n });\r\n break;\r\n default:\r\n }\r\n});\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json index e4b812f..91ee451 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,26 +1,26 @@ { "files": { - "static/js/0.44a402c1.chunk.js": "/diabloweb/static/js/0.44a402c1.chunk.js", - "static/js/0.44a402c1.chunk.js.map": "/diabloweb/static/js/0.44a402c1.chunk.js.map", - "main.css": "/diabloweb/static/css/main.e49ccae7.chunk.css", - "main.js": "/diabloweb/static/js/main.5218c077.chunk.js", - "main.js.map": "/diabloweb/static/js/main.5218c077.chunk.js.map", + "static/js/0.59ece602.chunk.js": "/diabloweb/static/js/0.59ece602.chunk.js", + "static/js/0.59ece602.chunk.js.map": "/diabloweb/static/js/0.59ece602.chunk.js.map", + "main.css": "/diabloweb/static/css/main.23365a12.chunk.css", + "main.js": "/diabloweb/static/js/main.7cab8a01.chunk.js", + "main.js.map": "/diabloweb/static/js/main.7cab8a01.chunk.js.map", "runtime~main.js": "/diabloweb/static/js/runtime~main.bf17ce54.js", "runtime~main.js.map": "/diabloweb/static/js/runtime~main.bf17ce54.js.map", "runtime~storage.js": "/diabloweb/static/js/runtime~storage.83a78cef.js", "runtime~storage.js.map": "/diabloweb/static/js/runtime~storage.83a78cef.js.map", - "storage.js": "/diabloweb/static/js/storage.89e2ac50.chunk.js", - "storage.js.map": "/diabloweb/static/js/storage.89e2ac50.chunk.js.map", - "static/js/5.79c615e0.chunk.js": "/diabloweb/static/js/5.79c615e0.chunk.js", - "static/js/5.79c615e0.chunk.js.map": "/diabloweb/static/js/5.79c615e0.chunk.js.map", - "5570637a84db2587cb4d.worker.js": "/diabloweb/5570637a84db2587cb4d.worker.js", - "5570637a84db2587cb4d.worker.js.map": "/diabloweb/5570637a84db2587cb4d.worker.js.map", + "storage.js": "/diabloweb/static/js/storage.96fdea8b.chunk.js", + "storage.js.map": "/diabloweb/static/js/storage.96fdea8b.chunk.js.map", + "static/js/5.356be092.chunk.js": "/diabloweb/static/js/5.356be092.chunk.js", + "static/js/5.356be092.chunk.js.map": "/diabloweb/static/js/5.356be092.chunk.js.map", + "c35eead49d6ec2ebde70.worker.js": "/diabloweb/c35eead49d6ec2ebde70.worker.js", + "c35eead49d6ec2ebde70.worker.js.map": "/diabloweb/c35eead49d6ec2ebde70.worker.js.map", "index.html": "/diabloweb/index.html", - "precache-manifest.ab9a649b4c2f90ae61a19774a3fc687e.js": "/diabloweb/precache-manifest.ab9a649b4c2f90ae61a19774a3fc687e.js", + "precache-manifest.2de6133ecdcacdfff2221e0c76abb588.js": "/diabloweb/precache-manifest.2de6133ecdcacdfff2221e0c76abb588.js", "service-worker.js": "/diabloweb/service-worker.js", - "static/css/main.e49ccae7.chunk.css.map": "/diabloweb/static/css/main.e49ccae7.chunk.css.map", - "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.85de21cc.wasm", - "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.5292efdb.wasm", + "static/css/main.23365a12.chunk.css.map": "/diabloweb/static/css/main.23365a12.chunk.css.map", + "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.4a6435cb.wasm", + "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.ef6314a9.wasm", "static/media/App.scss": "/diabloweb/static/media/shift.b40e4a63.svg", "storage.html": "/diabloweb/storage.html" } diff --git a/c35eead49d6ec2ebde70.worker.js b/c35eead49d6ec2ebde70.worker.js new file mode 100644 index 0000000..a09d19b --- /dev/null +++ b/c35eead49d6ec2ebde70.worker.js @@ -0,0 +1,2 @@ +!function(e){var n={};function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(r,i,function(n){return e[n]}.bind(null,i));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/diabloweb/",t(t.s=35)}([function(e,n,t){"use strict";var r=t(5),i=t(20),a=Object.prototype.toString;function o(e){return"[object Array]"===a.call(e)}function u(e){return null!==e&&"object"===typeof e}function s(e){return"[object Function]"===a.call(e)}function c(e,n){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var t=0,r=e.length;t1)for(var t=1;t=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function r(e,n){if(e.filter)return e.filter(n);for(var t=[],r=0;r=-1&&!i;a--){var o=a>=0?arguments[a]:e.cwd();if("string"!==typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var a=n.isAbsolute(e),o="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!a).join("/"))||a||(e="."),e&&o&&(e+="/"),(a?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,n){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var n=0;n=0&&""===e[t];t--);return n>t?[]:e.slice(n,t-n+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),a=r(t.split("/")),o=Math.min(i.length,a.length),u=o,s=0;s=1;--a)if(47===(n=e.charCodeAt(a))){if(!i){r=a;break}}else i=!1;return-1===r?t?"/":".":t&&1===r?"/":e.slice(0,r)},n.basename=function(e,n){var t=function(e){"string"!==typeof e&&(e+="");var n,t=0,r=-1,i=!0;for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!i){t=n+1;break}}else-1===r&&(i=!1,r=n+1);return-1===r?"":e.slice(t,r)}(e);return n&&t.substr(-1*n.length)===n&&(t=t.substr(0,t.length-n.length)),t},n.extname=function(e){"string"!==typeof e&&(e+="");for(var n=-1,t=0,r=-1,i=!0,a=0,o=e.length-1;o>=0;--o){var u=e.charCodeAt(o);if(47!==u)-1===r&&(i=!1,r=o+1),46===u?-1===n?n=o:1!==a&&(a=1):-1!==n&&(a=-1);else if(!i){t=o+1;break}}return-1===n||-1===r||0===a||1===a&&n===r-1&&n===t+1?"":e.slice(n,r)};var i="b"==="ab".substr(-1)?function(e,n,t){return e.substr(n,t)}:function(e,n,t){return n<0&&(n=e.length+n),e.substr(n,t)}}).call(this,t(2))},function(e,n,t){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),r=0;r=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(a)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),a=t(6),o=t(28),u=t(29),s=t(10);e.exports=function(e){return new Promise(function(n,c){var l=e.data,f=e.headers;r.isFormData(l)&&delete f["Content-Type"];var _=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",d=e.auth.password||"";f.Authorization="Basic "+btoa(p+":"+d)}if(_.open(e.method.toUpperCase(),a(e.url,e.params,e.paramsSerializer),!0),_.timeout=e.timeout,_.onreadystatechange=function(){if(_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in _?o(_.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:t,config:e,request:_};i(n,c,r),_=null}},_.onabort=function(){_&&(c(s("Request aborted",e,"ECONNABORTED",_)),_=null)},_.onerror=function(){c(s("Network Error",e,null,_)),_=null},_.ontimeout=function(){c(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",_)),_=null},r.isStandardBrowserEnv()){var m=t(30),y=(e.withCredentials||u(e.url))&&e.xsrfCookieName?m.read(e.xsrfCookieName):void 0;y&&(f[e.xsrfHeaderName]=y)}if("setRequestHeader"in _&&r.forEach(f,function(e,n){"undefined"===typeof l&&"content-type"===n.toLowerCase()?delete f[n]:_.setRequestHeader(n,e)}),e.withCredentials&&(_.withCredentials=!0),e.responseType)try{_.responseType=e.responseType}catch(h){if("json"!==e.responseType)throw h}"function"===typeof e.onDownloadProgress&&_.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){_&&(_.abort(),c(e),_=null)}),void 0===l&&(l=null),_.send(l)})}},function(e,n,t){"use strict";var r=t(27);e.exports=function(e,n,t,i,a){var o=new Error(e);return r(o,n,t,i,a)}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){n=n||{};var t={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof n[e]&&(t[e]=n[e])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(n[i])?t[i]=r.deepMerge(e[i],n[i]):"undefined"!==typeof n[i]?t[i]=n[i]:r.isObject(e[i])?t[i]=r.deepMerge(e[i]):"undefined"!==typeof e[i]&&(t[i]=e[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof n[r]?t[r]=n[r]:"undefined"!==typeof e[r]&&(t[r]=e[r])}),t}},function(e,n,t){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,n,t){e.exports=t.p+"static/media/Diablo.4a6435cb.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var a,o="undefined"!==typeof(i=i||{})?i:{},u={};for(a in o)o.hasOwnProperty(a)&&(u[a]=o[a]);o.arguments=[],o.thisProgram="./this.program",o.quit=function(e,n){throw n},o.preRun=[],o.postRun=[];var s,c,l=!1,f=!1;l="object"===typeof window,f="function"===typeof importScripts,s="object"===typeof n&&!l&&!f,c=!l&&!s&&!f;var _,p,d="";function m(e){return o.locateFile?o.locateFile(e,d):d+e}s?(d=r+"/",o.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},o.readBinary=function(e){var n=o.read(e,!0);return n.buffer||(n=new Uint8Array(n)),A(n.buffer),n},n.argv.length>1&&(o.thisProgram=n.argv[1].replace(/\\/g,"/")),o.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof Re))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),o.quit=function(e){n.exit(e)},o.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(o.read=function(e){return read(e)}),o.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(A("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?o.arguments=scriptArgs:"undefined"!=typeof arguments&&(o.arguments=arguments),"function"===typeof quit&&(o.quit=function(e){quit(e)})):(l||f)&&(l?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",o.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},f&&(o.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),o.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},o.setWindowTitle=function(e){document.title=e});var y=o.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=o.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(a in u)u.hasOwnProperty(a)&&(o[a]=u[a]);u=void 0;var v=16;function g(e){var n=N;return N=N+e+15&-16,n}function b(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}};new Array(0);var w=0;function A(e,n){e||Ne("Assertion failed: "+n)}function T(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=j[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var a="";if(r<128){for(var o;n>0;)o=String.fromCharCode.apply(String,j.subarray(e,e+Math.min(n,1024))),a=a?a+o:o,e+=1024,n-=1024;return a}return function(e){return S(j,e)}(e)}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&C)return C.decode(e.subarray(n,t));for(var r,i,a,o,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(a=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|a:(o=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|a<<6|o:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|a<<12|o<<6|u:(1&r)<<30|i<<24|a<<18|o<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var O,x,j,R,D,N,M,L,k,I,P,B=65536,U=16777216,F=16777216;function W(e,n){return e%n>0&&(e+=n-e%n),e}function H(e){o.buffer=O=e}function G(){o.HEAP8=x=new Int8Array(O),o.HEAP16=new Int16Array(O),o.HEAP32=R=new Int32Array(O),o.HEAPU8=j=new Uint8Array(O),o.HEAPU16=new Uint16Array(O),o.HEAPU32=new Uint32Array(O),o.HEAPF32=D=new Float32Array(O),o.HEAPF64=new Float64Array(O)}function q(){var e=o.usingWasm?B:U,n=2147483648-e;if(R[P>>2]>n)return!1;var t=K;for(K=Math.max(K,F);K>2];)K=K<=536870912?W(2*K,e):Math.min(W((3*K+2147483648)/4,e),n);var r=o.reallocBuffer(K);return r&&r.byteLength==K?(H(r),G(),!0):(K=t,!1)}N=L=P=0,o.reallocBuffer||(o.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(O,e);else{var t=x;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!Te(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Me){(function(e){return e.byteLength})}var z=o.TOTAL_STACK||5242880,K=o.TOTAL_MEMORY||134217728;function X(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?o.dynCall_v(t):o.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}K0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&o.dynCall_vi(n.destructor,e),delete le.infos[e],fe(e))}},clearRef:function(e){e&&(le.infos[e].refcount=0)}};function fe(e){try{return Ce(e)}catch(Me){}}function _e(){var e=le.last;if(!e)return 0|(Oe(0),0);var n=le.infos[e],t=n.type;if(!t)return 0|(Oe(0),e);var r=Array.prototype.slice.call(arguments);o.___cxa_is_pointer_type(t);_e.buffer||(_e.buffer=Se(4)),R[_e.buffer>>2]=e,e=_e.buffer;for(var i=0;i>2],n.adjusted=e,0|(Oe(r[i]),e);return e=R[e>>2],0|(Oe(t),e)}var pe={varargs:0,get:function(e){return pe.varargs+=4,R[pe.varargs-4>>2]},getStr:function(){return T(pe.get())},get64:function(){var e=pe.get(),n=pe.get();return A(e>=0?0===n:-1===n),e},getZero:function(){A(0===pe.get())}};function de(e,n){pe.varargs=n;try{var t=pe.get(),r=pe.get(),i=pe.get(),a=0;de.buffers||(de.buffers=[null,[],[]],de.printChar=function(e,n){var t=de.buffers[e];A(t),0===n||10===n?((1===e?y:h)(S(t,0)),t.length=0):t.push(n)});for(var o=0;o>2],s=R[r+(8*o+4)>>2],c=0;c>2]=I;o.wasmTableSize=1114,o.wasmMaxTableSize=1114,o.asmGlobalArg={},o.asmLibraryArg={abort:Ne,assert:A,enlargeMemory:q,getTotalMemory:function(){return K},abortOnCannotGrowMemory:function(){Ne("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+K+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_i:function(e){var n=je();try{return o.dynCall_i(e)}catch(Me){if(xe(n),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_ii:function(e,n){var t=je();try{return o.dynCall_ii(e,n)}catch(Me){if(xe(t),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=je();try{return o.dynCall_iii(e,n,t)}catch(Me){if(xe(r),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=je();try{return o.dynCall_iiii(e,n,t,r)}catch(Me){if(xe(i),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var a=je();try{return o.dynCall_iiiii(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,a){var u=je();try{return o.dynCall_iiiiii(e,n,t,r,i,a)}catch(Me){if(xe(u),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_ji:function(e,n){var t=je();try{return o.dynCall_ji(e,n)}catch(Me){if(xe(t),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_v:function(e){var n=je();try{o.dynCall_v(e)}catch(Me){if(xe(n),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_vi:function(e,n){var t=je();try{o.dynCall_vi(e,n)}catch(Me){if(xe(t),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=je();try{o.dynCall_vii(e,n,t)}catch(Me){if(xe(r),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=je();try{o.dynCall_viii(e,n,t,r)}catch(Me){if(xe(i),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var a=je();try{o.dynCall_viiii(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,a){var u=je();try{o.dynCall_viiiii(e,n,t,r,i,a)}catch(Me){if(xe(u),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiii:function(e,n,t,r,i,a,u){var s=je();try{o.dynCall_viiiiii(e,n,t,r,i,a,u)}catch(Me){if(xe(s),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiiii:function(e,n,t,r,i,a,u,s){var c=je();try{o.dynCall_viiiiiii(e,n,t,r,i,a,u,s)}catch(Me){if(xe(c),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiiiiii:function(e,n,t,r,i,a,u,s,c,l){var f=je();try{o.dynCall_viiiiiiiii(e,n,t,r,i,a,u,s,c,l)}catch(Me){if(xe(f),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiiiiiii:function(e,n,t,r,i,a,u,s,c,l,f){var _=je();try{o.dynCall_viiiiiiiiii(e,n,t,r,i,a,u,s,c,l,f)}catch(Me){if(xe(_),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viij:function(e,n,t,r,i){var a=je();try{o.dynCall_viij(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var a=je();try{o.dynCall_viji(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},__ZSt18uncaught_exceptionv:ce,___assert_fail:function(e,n,t,r){Ne("Assertion failed: "+T(e)+", at: "+[n?T(n):"unknown filename",t,r?T(r):"unknown function"])},___cxa_allocate_exception:function(e){return Se(e)},___cxa_begin_catch:function(e){var n=le.infos[e];return n&&!n.caught&&(n.caught=!0,ce.uncaught_exception--),n&&(n.rethrown=!1),le.caught.push(e),le.addRef(le.deAdjust(e)),e},___cxa_end_catch:function(){o.setThrew(0);var e=le.caught.pop();e&&(le.decRef(le.deAdjust(e)),le.last=0)},___cxa_find_matching_catch:_e,___cxa_find_matching_catch_2:function(){return _e.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return _e.apply(null,arguments)},___cxa_free_exception:fe,___cxa_get_exception_ptr:function(e){return e},___cxa_pure_virtual:function(){throw w=!0,"Pure virtual function called!"},___cxa_throw:function(e,n,t){throw le.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},le.last=e,"uncaught_exception"in ce?ce.uncaught_exception++:ce.uncaught_exception=1,e},___gxx_personality_v0:function(){},___lock:function(){},___resumeException:function(e){throw le.last||(le.last=e),e},___setErrNo:function(e){return o.___errno_location&&(R[o.___errno_location()>>2]=e),e},___syscall140:function(e,n){pe.varargs=n;try{var t=pe.getStreamFromFD(),r=(pe.get(),pe.get()),i=pe.get(),a=pe.get(),o=r;return FS.llseek(t,o,a),R[i>>2]=t.position,t.getdents&&0===o&&0===a&&(t.getdents=null),0}catch(Me){return"undefined"!==typeof FS&&Me instanceof FS.ErrnoError||Ne(Me),-Me.errno}},___syscall146:de,___syscall54:function(e,n){pe.varargs=n;try{return 0}catch(Me){return"undefined"!==typeof FS&&Me instanceof FS.ErrnoError||Ne(Me),-Me.errno}},___syscall6:function(e,n){pe.varargs=n;try{var t=pe.getStreamFromFD();return FS.close(t),0}catch(Me){return"undefined"!==typeof FS&&Me instanceof FS.ErrnoError||Ne(Me),-Me.errno}},___unlock:function(){},__api_close_keyboard:function(){self.DApi.close_keyboard()},__api_open_keyboard:function(e,n,t,r,i){self.DApi.open_keyboard(e,n,t,r,i)},__exit:me,_abort:function(){o.abort()},_api_create_sound:function(e,n,t){self.DApi.create_sound(e,j.slice(n,n+t))},_api_create_sound_float:function(e,n,t,r,i){self.DApi.create_sound_raw(e,D.slice(n/4,n/4+t*r),t,r,i)},_api_delete_sound:function(e){self.DApi.delete_sound(e)},_api_draw_begin:function(){self.DApi.draw_begin()},_api_draw_belt:function(e){self.DApi.draw_belt(R.subarray(e/4,e/4+8))},_api_draw_blit:function(e,n,t,r,i){self.DApi.draw_blit(e,n,t,r,j.subarray(i,i+t*r*4))},_api_draw_clip_text:function(e,n,t,r){self.DApi.draw_clip_text(e,n,t,r)},_api_draw_end:function(){self.DApi.draw_end()},_api_draw_text:function(e,n,t,r){var i=j.indexOf(0,t),a=String.fromCharCode.apply(null,j.subarray(t,i));self.DApi.draw_text(e,n,a,r)},_api_duplicate_sound:function(e,n){self.DApi.duplicate_sound(e,n)},_api_exit_game:function(){self.DApi.exit_game()},_api_play_sound:function(e,n,t,r){self.DApi.play_sound(e,n,t,r)},_api_set_cursor:function(e,n){self.DApi.set_cursor(e,n)},_api_set_volume:function(e,n){self.DApi.set_volume(e,n)},_api_stop_sound:function(e){self.DApi.stop_sound(e)},_api_websocket_closed:function(){return self.DApi.websocket_closed()},_api_websocket_send:function(e,n){self.DApi.websocket_send(j.subarray(e,e+n))},_emscripten_asm_const_ii:function(e,n){return ue[e](n)},_emscripten_memcpy_big:function(e,n,t){return j.set(j.subarray(n,n+t),e),e},_exit:function(e){me(e)},_exit_error:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));self.DApi.exit_error(t)},_get_file_contents:function(e,n,t,r){var i=j.indexOf(0,e),a=String.fromCharCode.apply(null,j.subarray(e,i));self.DApi.get_file_contents(a,j.subarray(n,n+r),t)},_get_file_size:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));return self.DApi.get_file_size(t)},_llvm_ceil_f32:ye,_llvm_eh_typeid_for:function(e){return e},_llvm_trap:function(){Ne("trap!")},_pthread_getspecific:function(e){return he[e]||0},_pthread_key_create:function(e,n){return 0==e?ge.EINVAL:(R[e>>2]=ve,he[ve]=0,ve++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(o.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in he?(he[e]=n,0):ge.EINVAL},_put_file_contents:function(e,n,t){var r=j.indexOf(0,e),i=String.fromCharCode.apply(null,j.subarray(e,r));self.DApi.put_file_contents(i,j.slice(n,n+t))},_remove_file:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},_trace_pop:function(){self.WASM_TRACE&&self.WASM_TRACE.pop()},_trace_push:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));console.log(t),self.WASM_TRACE=self.WASM_TRACE||[],self.WASM_TRACE.push(t)},flush_NO_FILESYSTEM:function(){var e=o._fflush;e&&e(0);var n=de.printChar;if(n){var t=de.buffers;t[1].length&&n(1,10),t[2].length&&n(2,10)}},DYNAMICTOP_PTR:P,tempDoublePtr:se,ABORT:w,STACKTOP:L,STACK_MAX:k};var be=o.asm(o.asmGlobalArg,o.asmLibraryArg,O);o.asm=be;o._DApi_AllocPacket=function(){return o.asm._DApi_AllocPacket.apply(null,arguments)},o._DApi_Char=function(){return o.asm._DApi_Char.apply(null,arguments)},o._DApi_Init=function(){return o.asm._DApi_Init.apply(null,arguments)},o._DApi_Key=function(){return o.asm._DApi_Key.apply(null,arguments)},o._DApi_Mouse=function(){return o.asm._DApi_Mouse.apply(null,arguments)},o._DApi_Render=function(){return o.asm._DApi_Render.apply(null,arguments)},o._DApi_SyncText=function(){return o.asm._DApi_SyncText.apply(null,arguments)},o._DApi_SyncTextPtr=function(){return o.asm._DApi_SyncTextPtr.apply(null,arguments)},o._SNet_InitWebsocket=function(){return o.asm._SNet_InitWebsocket.apply(null,arguments)};var Ee,we=o.__GLOBAL__sub_I_msgcmd_cpp=function(){return o.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},Ae=o.__GLOBAL__sub_I_snet_cpp=function(){return o.asm.__GLOBAL__sub_I_snet_cpp.apply(null,arguments)},Te=(o.___cxa_can_catch=function(){return o.asm.___cxa_can_catch.apply(null,arguments)},o.___cxa_is_pointer_type=function(){return o.asm.___cxa_is_pointer_type.apply(null,arguments)},o.___em_js___api_close_keyboard=function(){return o.asm.___em_js___api_close_keyboard.apply(null,arguments)},o.___em_js___api_open_keyboard=function(){return o.asm.___em_js___api_open_keyboard.apply(null,arguments)},o.___em_js__api_create_sound=function(){return o.asm.___em_js__api_create_sound.apply(null,arguments)},o.___em_js__api_create_sound_float=function(){return o.asm.___em_js__api_create_sound_float.apply(null,arguments)},o.___em_js__api_delete_sound=function(){return o.asm.___em_js__api_delete_sound.apply(null,arguments)},o.___em_js__api_draw_begin=function(){return o.asm.___em_js__api_draw_begin.apply(null,arguments)},o.___em_js__api_draw_belt=function(){return o.asm.___em_js__api_draw_belt.apply(null,arguments)},o.___em_js__api_draw_blit=function(){return o.asm.___em_js__api_draw_blit.apply(null,arguments)},o.___em_js__api_draw_clip_text=function(){return o.asm.___em_js__api_draw_clip_text.apply(null,arguments)},o.___em_js__api_draw_end=function(){return o.asm.___em_js__api_draw_end.apply(null,arguments)},o.___em_js__api_draw_text=function(){return o.asm.___em_js__api_draw_text.apply(null,arguments)},o.___em_js__api_duplicate_sound=function(){return o.asm.___em_js__api_duplicate_sound.apply(null,arguments)},o.___em_js__api_exit_game=function(){return o.asm.___em_js__api_exit_game.apply(null,arguments)},o.___em_js__api_play_sound=function(){return o.asm.___em_js__api_play_sound.apply(null,arguments)},o.___em_js__api_set_cursor=function(){return o.asm.___em_js__api_set_cursor.apply(null,arguments)},o.___em_js__api_set_volume=function(){return o.asm.___em_js__api_set_volume.apply(null,arguments)},o.___em_js__api_stop_sound=function(){return o.asm.___em_js__api_stop_sound.apply(null,arguments)},o.___em_js__api_websocket_closed=function(){return o.asm.___em_js__api_websocket_closed.apply(null,arguments)},o.___em_js__api_websocket_send=function(){return o.asm.___em_js__api_websocket_send.apply(null,arguments)},o.___em_js__exit_error=function(){return o.asm.___em_js__exit_error.apply(null,arguments)},o.___em_js__get_file_contents=function(){return o.asm.___em_js__get_file_contents.apply(null,arguments)},o.___em_js__get_file_size=function(){return o.asm.___em_js__get_file_size.apply(null,arguments)},o.___em_js__put_file_contents=function(){return o.asm.___em_js__put_file_contents.apply(null,arguments)},o.___em_js__remove_file=function(){return o.asm.___em_js__remove_file.apply(null,arguments)},o.___em_js__show_alert=function(){return o.asm.___em_js__show_alert.apply(null,arguments)},o.___em_js__trace_pop=function(){return o.asm.___em_js__trace_pop.apply(null,arguments)},o.___em_js__trace_push=function(){return o.asm.___em_js__trace_push.apply(null,arguments)},o._emscripten_replace_memory=function(){return o.asm._emscripten_replace_memory.apply(null,arguments)}),Ce=o._free=function(){return o.asm._free.apply(null,arguments)},Se=(o._llvm_bswap_i32=function(){return o.asm._llvm_bswap_i32.apply(null,arguments)},o._malloc=function(){return o.asm._malloc.apply(null,arguments)}),Oe=(o._memcpy=function(){return o.asm._memcpy.apply(null,arguments)},o._memmove=function(){return o.asm._memmove.apply(null,arguments)},o._memset=function(){return o.asm._memset.apply(null,arguments)},o._sbrk=function(){return o.asm._sbrk.apply(null,arguments)},o.establishStackSpace=function(){return o.asm.establishStackSpace.apply(null,arguments)},o.getTempRet0=function(){return o.asm.getTempRet0.apply(null,arguments)},o.runPostSets=function(){return o.asm.runPostSets.apply(null,arguments)},o.setTempRet0=function(){return o.asm.setTempRet0.apply(null,arguments)}),xe=(o.setThrew=function(){return o.asm.setThrew.apply(null,arguments)},o.stackAlloc=function(){return o.asm.stackAlloc.apply(null,arguments)},o.stackRestore=function(){return o.asm.stackRestore.apply(null,arguments)}),je=o.stackSave=function(){return o.asm.stackSave.apply(null,arguments)};o.dynCall_i=function(){return o.asm.dynCall_i.apply(null,arguments)},o.dynCall_ii=function(){return o.asm.dynCall_ii.apply(null,arguments)},o.dynCall_iii=function(){return o.asm.dynCall_iii.apply(null,arguments)},o.dynCall_iiii=function(){return o.asm.dynCall_iiii.apply(null,arguments)},o.dynCall_iiiii=function(){return o.asm.dynCall_iiiii.apply(null,arguments)},o.dynCall_iiiiii=function(){return o.asm.dynCall_iiiiii.apply(null,arguments)},o.dynCall_ji=function(){return o.asm.dynCall_ji.apply(null,arguments)},o.dynCall_v=function(){return o.asm.dynCall_v.apply(null,arguments)},o.dynCall_vi=function(){return o.asm.dynCall_vi.apply(null,arguments)},o.dynCall_vii=function(){return o.asm.dynCall_vii.apply(null,arguments)},o.dynCall_viii=function(){return o.asm.dynCall_viii.apply(null,arguments)},o.dynCall_viiii=function(){return o.asm.dynCall_viiii.apply(null,arguments)},o.dynCall_viiiii=function(){return o.asm.dynCall_viiiii.apply(null,arguments)},o.dynCall_viiiiii=function(){return o.asm.dynCall_viiiiii.apply(null,arguments)},o.dynCall_viiiiiii=function(){return o.asm.dynCall_viiiiiii.apply(null,arguments)},o.dynCall_viiiiiiiii=function(){return o.asm.dynCall_viiiiiiiii.apply(null,arguments)},o.dynCall_viiiiiiiiii=function(){return o.asm.dynCall_viiiiiiiiii.apply(null,arguments)},o.dynCall_viij=function(){return o.asm.dynCall_viij.apply(null,arguments)},o.dynCall_viji=function(){return o.asm.dynCall_viji.apply(null,arguments)};function Re(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}o.asm=be,o.then=function(e){if(o.calledRun)e(o);else{var n=o.onRuntimeInitialized;o.onRuntimeInitialized=function(){n&&n(),e(o)}}return o},Re.prototype=new Error,Re.prototype.constructor=Re;function De(e){function n(){o.calledRun||(o.calledRun=!0,w||($||($=!0,X(V)),X(Q),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)ee(o.postRun.shift());X(Z)}()))}e=e||o.arguments,te>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),Y.unshift(e);var e;X(Y)}(),te>0||o.calledRun||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),n()},1)):n()))}ie=function e(){o.calledRun||De(),o.calledRun||(ie=e)},o.run=De;function Ne(e){throw o.onAbort&&o.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",w=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(o.abort=Ne,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return o.noExitRuntime=!0,De(),o.ready=new Promise(function(e,n){delete o.then,o.onAbort=function(e){n(e)},ee(function(){e(o)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.ef6314a9.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var a,o="undefined"!==typeof(i=i||{})?i:{},u={};for(a in o)o.hasOwnProperty(a)&&(u[a]=o[a]);o.arguments=[],o.thisProgram="./this.program",o.quit=function(e,n){throw n},o.preRun=[],o.postRun=[];var s,c,l=!1,f=!1;l="object"===typeof window,f="function"===typeof importScripts,s="object"===typeof n&&!l&&!f,c=!l&&!s&&!f;var _,p,d="";function m(e){return o.locateFile?o.locateFile(e,d):d+e}s?(d=r+"/",o.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},o.readBinary=function(e){var n=o.read(e,!0);return n.buffer||(n=new Uint8Array(n)),A(n.buffer),n},n.argv.length>1&&(o.thisProgram=n.argv[1].replace(/\\/g,"/")),o.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof Re))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),o.quit=function(e){n.exit(e)},o.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(o.read=function(e){return read(e)}),o.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(A("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?o.arguments=scriptArgs:"undefined"!=typeof arguments&&(o.arguments=arguments),"function"===typeof quit&&(o.quit=function(e){quit(e)})):(l||f)&&(l?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",o.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},f&&(o.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),o.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},o.setWindowTitle=function(e){document.title=e});var y=o.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=o.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(a in u)u.hasOwnProperty(a)&&(o[a]=u[a]);u=void 0;var v=16;function g(e){var n=N;return N=N+e+15&-16,n}function b(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}};new Array(0);var w=0;function A(e,n){e||Ne("Assertion failed: "+n)}function T(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=j[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var a="";if(r<128){for(var o;n>0;)o=String.fromCharCode.apply(String,j.subarray(e,e+Math.min(n,1024))),a=a?a+o:o,e+=1024,n-=1024;return a}return function(e){return S(j,e)}(e)}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&C)return C.decode(e.subarray(n,t));for(var r,i,a,o,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(a=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|a:(o=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|a<<6|o:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|a<<12|o<<6|u:(1&r)<<30|i<<24|a<<18|o<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var O,x,j,R,D,N,M,L,k,I,P,B=65536,U=16777216,F=16777216;function W(e,n){return e%n>0&&(e+=n-e%n),e}function H(e){o.buffer=O=e}function G(){o.HEAP8=x=new Int8Array(O),o.HEAP16=new Int16Array(O),o.HEAP32=R=new Int32Array(O),o.HEAPU8=j=new Uint8Array(O),o.HEAPU16=new Uint16Array(O),o.HEAPU32=new Uint32Array(O),o.HEAPF32=D=new Float32Array(O),o.HEAPF64=new Float64Array(O)}function q(){var e=o.usingWasm?B:U,n=2147483648-e;if(R[P>>2]>n)return!1;var t=K;for(K=Math.max(K,F);K>2];)K=K<=536870912?W(2*K,e):Math.min(W((3*K+2147483648)/4,e),n);var r=o.reallocBuffer(K);return r&&r.byteLength==K?(H(r),G(),!0):(K=t,!1)}N=L=P=0,o.reallocBuffer||(o.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(O,e);else{var t=x;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!Te(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Me){(function(e){return e.byteLength})}var z=o.TOTAL_STACK||5242880,K=o.TOTAL_MEMORY||134217728;function X(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?o.dynCall_v(t):o.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}K0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&o.dynCall_vi(n.destructor,e),delete le.infos[e],fe(e))}},clearRef:function(e){e&&(le.infos[e].refcount=0)}};function fe(e){try{return Ce(e)}catch(Me){}}function _e(){var e=le.last;if(!e)return 0|(Oe(0),0);var n=le.infos[e],t=n.type;if(!t)return 0|(Oe(0),e);var r=Array.prototype.slice.call(arguments);o.___cxa_is_pointer_type(t);_e.buffer||(_e.buffer=Se(4)),R[_e.buffer>>2]=e,e=_e.buffer;for(var i=0;i>2],n.adjusted=e,0|(Oe(r[i]),e);return e=R[e>>2],0|(Oe(t),e)}var pe={varargs:0,get:function(e){return pe.varargs+=4,R[pe.varargs-4>>2]},getStr:function(){return T(pe.get())},get64:function(){var e=pe.get(),n=pe.get();return A(e>=0?0===n:-1===n),e},getZero:function(){A(0===pe.get())}};function de(e,n){pe.varargs=n;try{var t=pe.get(),r=pe.get(),i=pe.get(),a=0;de.buffers||(de.buffers=[null,[],[]],de.printChar=function(e,n){var t=de.buffers[e];A(t),0===n||10===n?((1===e?y:h)(S(t,0)),t.length=0):t.push(n)});for(var o=0;o>2],s=R[r+(8*o+4)>>2],c=0;c>2]=I;o.wasmTableSize=1114,o.wasmMaxTableSize=1114,o.asmGlobalArg={},o.asmLibraryArg={abort:Ne,assert:A,enlargeMemory:q,getTotalMemory:function(){return K},abortOnCannotGrowMemory:function(){Ne("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+K+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_i:function(e){var n=je();try{return o.dynCall_i(e)}catch(Me){if(xe(n),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_ii:function(e,n){var t=je();try{return o.dynCall_ii(e,n)}catch(Me){if(xe(t),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=je();try{return o.dynCall_iii(e,n,t)}catch(Me){if(xe(r),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=je();try{return o.dynCall_iiii(e,n,t,r)}catch(Me){if(xe(i),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var a=je();try{return o.dynCall_iiiii(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,a){var u=je();try{return o.dynCall_iiiiii(e,n,t,r,i,a)}catch(Me){if(xe(u),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_ji:function(e,n){var t=je();try{return o.dynCall_ji(e,n)}catch(Me){if(xe(t),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_v:function(e){var n=je();try{o.dynCall_v(e)}catch(Me){if(xe(n),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_vi:function(e,n){var t=je();try{o.dynCall_vi(e,n)}catch(Me){if(xe(t),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=je();try{o.dynCall_vii(e,n,t)}catch(Me){if(xe(r),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=je();try{o.dynCall_viii(e,n,t,r)}catch(Me){if(xe(i),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var a=je();try{o.dynCall_viiii(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,a){var u=je();try{o.dynCall_viiiii(e,n,t,r,i,a)}catch(Me){if(xe(u),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiii:function(e,n,t,r,i,a,u){var s=je();try{o.dynCall_viiiiii(e,n,t,r,i,a,u)}catch(Me){if(xe(s),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiiii:function(e,n,t,r,i,a,u,s){var c=je();try{o.dynCall_viiiiiii(e,n,t,r,i,a,u,s)}catch(Me){if(xe(c),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiiiiii:function(e,n,t,r,i,a,u,s,c,l){var f=je();try{o.dynCall_viiiiiiiii(e,n,t,r,i,a,u,s,c,l)}catch(Me){if(xe(f),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viiiiiiiiii:function(e,n,t,r,i,a,u,s,c,l,f){var _=je();try{o.dynCall_viiiiiiiiii(e,n,t,r,i,a,u,s,c,l,f)}catch(Me){if(xe(_),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viij:function(e,n,t,r,i){var a=je();try{o.dynCall_viij(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var a=je();try{o.dynCall_viji(e,n,t,r,i)}catch(Me){if(xe(a),"number"!==typeof Me&&"longjmp"!==Me)throw Me;o.setThrew(1,0)}},__ZSt18uncaught_exceptionv:ce,___assert_fail:function(e,n,t,r){Ne("Assertion failed: "+T(e)+", at: "+[n?T(n):"unknown filename",t,r?T(r):"unknown function"])},___cxa_allocate_exception:function(e){return Se(e)},___cxa_begin_catch:function(e){var n=le.infos[e];return n&&!n.caught&&(n.caught=!0,ce.uncaught_exception--),n&&(n.rethrown=!1),le.caught.push(e),le.addRef(le.deAdjust(e)),e},___cxa_end_catch:function(){o.setThrew(0);var e=le.caught.pop();e&&(le.decRef(le.deAdjust(e)),le.last=0)},___cxa_find_matching_catch:_e,___cxa_find_matching_catch_2:function(){return _e.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return _e.apply(null,arguments)},___cxa_free_exception:fe,___cxa_get_exception_ptr:function(e){return e},___cxa_pure_virtual:function(){throw w=!0,"Pure virtual function called!"},___cxa_throw:function(e,n,t){throw le.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},le.last=e,"uncaught_exception"in ce?ce.uncaught_exception++:ce.uncaught_exception=1,e},___gxx_personality_v0:function(){},___lock:function(){},___resumeException:function(e){throw le.last||(le.last=e),e},___setErrNo:function(e){return o.___errno_location&&(R[o.___errno_location()>>2]=e),e},___syscall140:function(e,n){pe.varargs=n;try{var t=pe.getStreamFromFD(),r=(pe.get(),pe.get()),i=pe.get(),a=pe.get(),o=r;return FS.llseek(t,o,a),R[i>>2]=t.position,t.getdents&&0===o&&0===a&&(t.getdents=null),0}catch(Me){return"undefined"!==typeof FS&&Me instanceof FS.ErrnoError||Ne(Me),-Me.errno}},___syscall146:de,___syscall54:function(e,n){pe.varargs=n;try{return 0}catch(Me){return"undefined"!==typeof FS&&Me instanceof FS.ErrnoError||Ne(Me),-Me.errno}},___syscall6:function(e,n){pe.varargs=n;try{var t=pe.getStreamFromFD();return FS.close(t),0}catch(Me){return"undefined"!==typeof FS&&Me instanceof FS.ErrnoError||Ne(Me),-Me.errno}},___unlock:function(){},__api_close_keyboard:function(){self.DApi.close_keyboard()},__api_open_keyboard:function(e,n,t,r,i){self.DApi.open_keyboard(e,n,t,r,i)},__exit:me,_abort:function(){o.abort()},_api_create_sound:function(e,n,t){self.DApi.create_sound(e,j.slice(n,n+t))},_api_create_sound_float:function(e,n,t,r,i){self.DApi.create_sound_raw(e,D.slice(n/4,n/4+t*r),t,r,i)},_api_delete_sound:function(e){self.DApi.delete_sound(e)},_api_draw_begin:function(){self.DApi.draw_begin()},_api_draw_belt:function(e){self.DApi.draw_belt(R.subarray(e/4,e/4+8))},_api_draw_blit:function(e,n,t,r,i){self.DApi.draw_blit(e,n,t,r,j.subarray(i,i+t*r*4))},_api_draw_clip_text:function(e,n,t,r){self.DApi.draw_clip_text(e,n,t,r)},_api_draw_end:function(){self.DApi.draw_end()},_api_draw_text:function(e,n,t,r){var i=j.indexOf(0,t),a=String.fromCharCode.apply(null,j.subarray(t,i));self.DApi.draw_text(e,n,a,r)},_api_duplicate_sound:function(e,n){self.DApi.duplicate_sound(e,n)},_api_exit_game:function(){self.DApi.exit_game()},_api_play_sound:function(e,n,t,r){self.DApi.play_sound(e,n,t,r)},_api_set_cursor:function(e,n){self.DApi.set_cursor(e,n)},_api_set_volume:function(e,n){self.DApi.set_volume(e,n)},_api_stop_sound:function(e){self.DApi.stop_sound(e)},_api_websocket_closed:function(){return self.DApi.websocket_closed()},_api_websocket_send:function(e,n){self.DApi.websocket_send(j.subarray(e,e+n))},_emscripten_asm_const_ii:function(e,n){return ue[e](n)},_emscripten_memcpy_big:function(e,n,t){return j.set(j.subarray(n,n+t),e),e},_exit:function(e){me(e)},_exit_error:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));self.DApi.exit_error(t)},_get_file_contents:function(e,n,t,r){var i=j.indexOf(0,e),a=String.fromCharCode.apply(null,j.subarray(e,i));self.DApi.get_file_contents(a,j.subarray(n,n+r),t)},_get_file_size:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));return self.DApi.get_file_size(t)},_llvm_ceil_f32:ye,_llvm_eh_typeid_for:function(e){return e},_llvm_trap:function(){Ne("trap!")},_pthread_getspecific:function(e){return he[e]||0},_pthread_key_create:function(e,n){return 0==e?ge.EINVAL:(R[e>>2]=ve,he[ve]=0,ve++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(o.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in he?(he[e]=n,0):ge.EINVAL},_put_file_contents:function(e,n,t){var r=j.indexOf(0,e),i=String.fromCharCode.apply(null,j.subarray(e,r));self.DApi.put_file_contents(i,j.slice(n,n+t))},_remove_file:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},_trace_pop:function(){self.WASM_TRACE&&self.WASM_TRACE.pop()},_trace_push:function(e){var n=j.indexOf(0,e),t=String.fromCharCode.apply(null,j.subarray(e,n));console.log(t),self.WASM_TRACE=self.WASM_TRACE||[],self.WASM_TRACE.push(t)},flush_NO_FILESYSTEM:function(){var e=o._fflush;e&&e(0);var n=de.printChar;if(n){var t=de.buffers;t[1].length&&n(1,10),t[2].length&&n(2,10)}},DYNAMICTOP_PTR:P,tempDoublePtr:se,ABORT:w,STACKTOP:L,STACK_MAX:k};var be=o.asm(o.asmGlobalArg,o.asmLibraryArg,O);o.asm=be;o._DApi_AllocPacket=function(){return o.asm._DApi_AllocPacket.apply(null,arguments)},o._DApi_Char=function(){return o.asm._DApi_Char.apply(null,arguments)},o._DApi_Init=function(){return o.asm._DApi_Init.apply(null,arguments)},o._DApi_Key=function(){return o.asm._DApi_Key.apply(null,arguments)},o._DApi_Mouse=function(){return o.asm._DApi_Mouse.apply(null,arguments)},o._DApi_Render=function(){return o.asm._DApi_Render.apply(null,arguments)},o._DApi_SyncText=function(){return o.asm._DApi_SyncText.apply(null,arguments)},o._DApi_SyncTextPtr=function(){return o.asm._DApi_SyncTextPtr.apply(null,arguments)},o._SNet_InitWebsocket=function(){return o.asm._SNet_InitWebsocket.apply(null,arguments)};var Ee,we=o.__GLOBAL__sub_I_msgcmd_cpp=function(){return o.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},Ae=o.__GLOBAL__sub_I_snet_cpp=function(){return o.asm.__GLOBAL__sub_I_snet_cpp.apply(null,arguments)},Te=(o.___cxa_can_catch=function(){return o.asm.___cxa_can_catch.apply(null,arguments)},o.___cxa_is_pointer_type=function(){return o.asm.___cxa_is_pointer_type.apply(null,arguments)},o.___em_js___api_close_keyboard=function(){return o.asm.___em_js___api_close_keyboard.apply(null,arguments)},o.___em_js___api_open_keyboard=function(){return o.asm.___em_js___api_open_keyboard.apply(null,arguments)},o.___em_js__api_create_sound=function(){return o.asm.___em_js__api_create_sound.apply(null,arguments)},o.___em_js__api_create_sound_float=function(){return o.asm.___em_js__api_create_sound_float.apply(null,arguments)},o.___em_js__api_delete_sound=function(){return o.asm.___em_js__api_delete_sound.apply(null,arguments)},o.___em_js__api_draw_begin=function(){return o.asm.___em_js__api_draw_begin.apply(null,arguments)},o.___em_js__api_draw_belt=function(){return o.asm.___em_js__api_draw_belt.apply(null,arguments)},o.___em_js__api_draw_blit=function(){return o.asm.___em_js__api_draw_blit.apply(null,arguments)},o.___em_js__api_draw_clip_text=function(){return o.asm.___em_js__api_draw_clip_text.apply(null,arguments)},o.___em_js__api_draw_end=function(){return o.asm.___em_js__api_draw_end.apply(null,arguments)},o.___em_js__api_draw_text=function(){return o.asm.___em_js__api_draw_text.apply(null,arguments)},o.___em_js__api_duplicate_sound=function(){return o.asm.___em_js__api_duplicate_sound.apply(null,arguments)},o.___em_js__api_exit_game=function(){return o.asm.___em_js__api_exit_game.apply(null,arguments)},o.___em_js__api_play_sound=function(){return o.asm.___em_js__api_play_sound.apply(null,arguments)},o.___em_js__api_set_cursor=function(){return o.asm.___em_js__api_set_cursor.apply(null,arguments)},o.___em_js__api_set_volume=function(){return o.asm.___em_js__api_set_volume.apply(null,arguments)},o.___em_js__api_stop_sound=function(){return o.asm.___em_js__api_stop_sound.apply(null,arguments)},o.___em_js__api_websocket_closed=function(){return o.asm.___em_js__api_websocket_closed.apply(null,arguments)},o.___em_js__api_websocket_send=function(){return o.asm.___em_js__api_websocket_send.apply(null,arguments)},o.___em_js__exit_error=function(){return o.asm.___em_js__exit_error.apply(null,arguments)},o.___em_js__get_file_contents=function(){return o.asm.___em_js__get_file_contents.apply(null,arguments)},o.___em_js__get_file_size=function(){return o.asm.___em_js__get_file_size.apply(null,arguments)},o.___em_js__put_file_contents=function(){return o.asm.___em_js__put_file_contents.apply(null,arguments)},o.___em_js__remove_file=function(){return o.asm.___em_js__remove_file.apply(null,arguments)},o.___em_js__show_alert=function(){return o.asm.___em_js__show_alert.apply(null,arguments)},o.___em_js__trace_pop=function(){return o.asm.___em_js__trace_pop.apply(null,arguments)},o.___em_js__trace_push=function(){return o.asm.___em_js__trace_push.apply(null,arguments)},o._emscripten_replace_memory=function(){return o.asm._emscripten_replace_memory.apply(null,arguments)}),Ce=o._free=function(){return o.asm._free.apply(null,arguments)},Se=(o._llvm_bswap_i32=function(){return o.asm._llvm_bswap_i32.apply(null,arguments)},o._malloc=function(){return o.asm._malloc.apply(null,arguments)}),Oe=(o._memcpy=function(){return o.asm._memcpy.apply(null,arguments)},o._memmove=function(){return o.asm._memmove.apply(null,arguments)},o._memset=function(){return o.asm._memset.apply(null,arguments)},o._sbrk=function(){return o.asm._sbrk.apply(null,arguments)},o.establishStackSpace=function(){return o.asm.establishStackSpace.apply(null,arguments)},o.getTempRet0=function(){return o.asm.getTempRet0.apply(null,arguments)},o.runPostSets=function(){return o.asm.runPostSets.apply(null,arguments)},o.setTempRet0=function(){return o.asm.setTempRet0.apply(null,arguments)}),xe=(o.setThrew=function(){return o.asm.setThrew.apply(null,arguments)},o.stackAlloc=function(){return o.asm.stackAlloc.apply(null,arguments)},o.stackRestore=function(){return o.asm.stackRestore.apply(null,arguments)}),je=o.stackSave=function(){return o.asm.stackSave.apply(null,arguments)};o.dynCall_i=function(){return o.asm.dynCall_i.apply(null,arguments)},o.dynCall_ii=function(){return o.asm.dynCall_ii.apply(null,arguments)},o.dynCall_iii=function(){return o.asm.dynCall_iii.apply(null,arguments)},o.dynCall_iiii=function(){return o.asm.dynCall_iiii.apply(null,arguments)},o.dynCall_iiiii=function(){return o.asm.dynCall_iiiii.apply(null,arguments)},o.dynCall_iiiiii=function(){return o.asm.dynCall_iiiiii.apply(null,arguments)},o.dynCall_ji=function(){return o.asm.dynCall_ji.apply(null,arguments)},o.dynCall_v=function(){return o.asm.dynCall_v.apply(null,arguments)},o.dynCall_vi=function(){return o.asm.dynCall_vi.apply(null,arguments)},o.dynCall_vii=function(){return o.asm.dynCall_vii.apply(null,arguments)},o.dynCall_viii=function(){return o.asm.dynCall_viii.apply(null,arguments)},o.dynCall_viiii=function(){return o.asm.dynCall_viiii.apply(null,arguments)},o.dynCall_viiiii=function(){return o.asm.dynCall_viiiii.apply(null,arguments)},o.dynCall_viiiiii=function(){return o.asm.dynCall_viiiiii.apply(null,arguments)},o.dynCall_viiiiiii=function(){return o.asm.dynCall_viiiiiii.apply(null,arguments)},o.dynCall_viiiiiiiii=function(){return o.asm.dynCall_viiiiiiiii.apply(null,arguments)},o.dynCall_viiiiiiiiii=function(){return o.asm.dynCall_viiiiiiiiii.apply(null,arguments)},o.dynCall_viij=function(){return o.asm.dynCall_viij.apply(null,arguments)},o.dynCall_viji=function(){return o.asm.dynCall_viji.apply(null,arguments)};function Re(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}o.asm=be,o.then=function(e){if(o.calledRun)e(o);else{var n=o.onRuntimeInitialized;o.onRuntimeInitialized=function(){n&&n(),e(o)}}return o},Re.prototype=new Error,Re.prototype.constructor=Re;function De(e){function n(){o.calledRun||(o.calledRun=!0,w||($||($=!0,X(V)),X(Q),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)ee(o.postRun.shift());X(Z)}()))}e=e||o.arguments,te>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),Y.unshift(e);var e;X(Y)}(),te>0||o.calledRun||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),n()},1)):n()))}ie=function e(){o.calledRun||De(),o.calledRun||(ie=e)},o.run=De;function Ne(e){throw o.onAbort&&o.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",w=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(o.abort=Ne,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return o.noExitRuntime=!0,De(),o.ready=new Promise(function(e,n){delete o.then,o.onAbort=function(e){n(e)},ee(function(){e(o)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t(19)},function(e,n,t){var r=function(e){"use strict";var n,t=Object.prototype,r=t.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof m?n:m,a=Object.create(i.prototype),o=new O(r||[]);return a._invoke=function(e,n,t){var r=l;return function(i,a){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw a;return j()}for(t.method=i,t.arg=a;;){var o=t.delegate;if(o){var u=T(o,t);if(u){if(u===d)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(r===l)throw r=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r=_;var s=c(e,n,t);if("normal"===s.type){if(r=t.done?p:f,s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(r=p,t.method="throw",t.arg=s.arg)}}}(e,t,o),a}function c(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(r){return{type:"throw",arg:r}}}e.wrap=s;var l="suspendedStart",f="suspendedYield",_="executing",p="completed",d={};function m(){}function y(){}function h(){}var v={};v[a]=function(){return this};var g=Object.getPrototypeOf,b=g&&g(g(x([])));b&&b!==t&&r.call(b,a)&&(v=b);var E=h.prototype=m.prototype=Object.create(v);function w(e){["next","throw","return"].forEach(function(n){e[n]=function(e){return this._invoke(n,e)}})}function A(e){var n;this._invoke=function(t,i){function a(){return new Promise(function(n,a){!function n(t,i,a,o){var u=c(e[t],e,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"===typeof l&&r.call(l,"__await")?Promise.resolve(l.__await).then(function(e){n("next",e,a,o)},function(e){n("throw",e,a,o)}):Promise.resolve(l).then(function(e){s.value=e,a(s)},function(e){return n("throw",e,a,o)})}o(u.arg)}(t,i,n,a)})}return n=n?n.then(a,a):a()}}function T(e,t){var r=e.iterator[t.method];if(r===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,T(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,d;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function C(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function S(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function x(e){if(e){var t=e[a];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function t(){for(;++i=0;--a){var o=this.tryEntries[a],u=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(s&&c){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),S(t),d}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var i=r.arg;S(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),d}},e}(e.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(e,n,t){"use strict";var r=t(0),i=t(5),a=t(21),o=t(11);function u(e){var n=new a(e),t=i(a.prototype.request,n);return r.extend(t,a.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=a,s.create=function(e){return u(o(s.defaults,e))},s.Cancel=t(12),s.CancelToken=t(33),s.isCancel=t(7),s.all=function(e){return Promise.all(e)},s.spread=t(34),e.exports=s,e.exports.default=s},function(e,n){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,n,t){"use strict";var r=t(0),i=t(6),a=t(22),o=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new a,response:new a}}s.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=u(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[o,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},s.prototype.getUri=function(e){return e=u(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){s.prototype[e]=function(n,t,i){return this.request(r.merge(i||{},{method:e,url:n,data:t}))}}),e.exports=s},function(e,n,t){"use strict";var r=t(0);function i(){this.handlers=[]}i.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=i},function(e,n,t){"use strict";var r=t(0),i=t(24),a=t(7),o=t(8),u=t(31),s=t(32);function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!u(e.url)&&(e.url=s(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]}),(e.adapter||o.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return a(n)||(c(e),n&&n.response&&(n.response.data=i(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n,t){return r.forEach(t,function(t){e=t(e,n)}),e}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){r.forEach(e,function(t,r){r!==n&&r.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[r])})}},function(e,n,t){"use strict";var r=t(10);e.exports=function(e,n,t){var i=t.config.validateStatus;!i||i(t.status)?e(t):n(r("Request failed with status code "+t.status,t.config,null,t.request,t))}},function(e,n,t){"use strict";e.exports=function(e,n,t,r,i){return e.config=n,t&&(e.code=t),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,n,t){"use strict";var r=t(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var n,t,a,o={};return e?(r.forEach(e.split("\n"),function(e){if(a=e.indexOf(":"),n=r.trim(e.substr(0,a)).toLowerCase(),t=r.trim(e.substr(a+1)),n){if(o[n]&&i.indexOf(n)>=0)return;o[n]="set-cookie"===n?(o[n]?o[n]:[]).concat([t]):o[n]?o[n]+", "+t:t}}),o):o}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?function(){var e,n=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");function i(e){var r=e;return n&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return e=i(window.location.href),function(n){var t=r.isString(n)?i(n):n;return t.protocol===e.protocol&&t.host===e.host}}():function(){return!0}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,n,t,i,a,o){var u=[];u.push(e+"="+encodeURIComponent(n)),r.isNumber(t)&&u.push("expires="+new Date(t).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(a)&&u.push("domain="+a),!0===o&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,n,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";e.exports=function(e,n){return n?e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):e}},function(e,n,t){"use strict";var r=t(12);function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new r(e),n(t.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i(function(n){e=n}),cancel:e}},e.exports=i},function(e,n,t){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";function r(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,i=!1,a=void 0;try{for(var o,u=e[Symbol.iterator]();!(r=(o=u.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(s){i=!0,a=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw a}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),a=t.n(i);function o(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n=300)&&w.postMessage({action:"error",error:"Failed to load remote file"}),this.byteLength=parseInt(t.getResponseHeader("Content-Length")),this.url=n,this.buffer=new Uint8Array(this.byteLength),this.chunks=new Uint8Array(this.byteLength+R-1>>20|0)}var n,t,r;return n=e,(t=[{key:"subarray",value:function(e,n){for(var t=e/R|0,r=(n+R-1)/R|0,i=r,a=t,o=t;o=300)w.postMessage({action:"error",error:"Failed to load remote file"});else{var s,c=u.getResponseHeader("Content-Range"),l=0;c&&(s=c.match(/bytes (\d+)-(\d+)\/(\d+)/))&&(l=parseInt(s[1])),this.buffer.set(new Uint8Array(u.response),l),t=(l+R-1)/R|0,r=(l+u.response.byteLength+R-1)/R|0;for(var f=t;f=0?j?"spawn".concat(e,".sv"):"single_".concat(e,".sv"):null})},get_file_size:function(e){var n=S.get(e.toLowerCase());return n?n.byteLength:0},get_file_contents:function(e,n,t){var r=S.get(e.toLowerCase());r&&n.set(r.subarray(t,t+n.byteLength))},put_file_contents:function(e,n){e=e.toLowerCase(),S.set(e,n),w.postMessage({action:"fs",func:"update",params:[e,n]})},remove_file:function(e){e=e.toLowerCase(),S.delete(e),w.postMessage({action:"fs",func:"delete",params:[e]})},set_cursor:function(e,n){w.postMessage({action:"cursor",x:e,y:n})},open_keyboard:function(){for(var e=arguments.length,n=new Array(e),t=0;t>16&255,a=r>>8&255,o=255&r;T.fillStyle="rgb(".concat(i,", ").concat(a,", ").concat(o,")"),T.fillText(t,e,n+22)},draw_end:function(){T.restore();var e=A.transferToImageBitmap(),n=[e];x&&n.push(x.buffer),w.postMessage({action:"render",batch:{bitmap:e,belt:x}},n),x=null},draw_belt:function(e){x=e.slice()}},k=null,I=null,P=0,B=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(e){N[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=P?k.push({func:e,params:t}):w.postMessage({action:"audio",func:e,params:t})}});var U=null;N.websocket_send=function(e){U?U.push(e.slice().buffer):w.postMessage({action:"packet",buffer:e})},w.DApi=N;var F=null;function W(e){try{e()}catch(n){"string"===typeof n&&w.postMessage({action:""}),w.postMessage({action:"error",error:n.toString(),stack:n.stack})}}function H(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.4a6435cb.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\n// The Module object: Our interface to the outside world. We import\r\n// and export values on it. There are various ways Module can be used:\r\n// 1. Not defined. We create it here\r\n// 2. A function parameter, function(Module) { ..generated code.. }\r\n// 3. pre-run appended it, var Module = {}; ..generated code..\r\n// 4. External script tag defines var Module.\r\n// We need to check if Module already exists (e.g. case 3 above).\r\n// Substitution will be replaced with actual code on later stage of the build,\r\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\r\n// Note that if you want to run closure, and also to use Module\r\n// after the generated code, you will need to define var Module = {};\r\n// before the code. Then that object will be used in the code, and you\r\n// can continue to use Module afterwards as well.\r\nvar Module = typeof Diablo !== 'undefined' ? Diablo : {};\r\n\r\n// --pre-jses are emitted after the Module integration code, so that they can\r\n// refer to Module (if they choose; they can also define Module)\r\n\r\n\r\n// Sometimes an existing Module object exists with properties\r\n// meant to overwrite the default module functionality. Here\r\n// we collect those properties and reapply _after_ we configure\r\n// the current environment's defaults to avoid having to be so\r\n// defensive during initialization.\r\nvar moduleOverrides = {};\r\nvar key;\r\nfor (key in Module) {\r\n if (Module.hasOwnProperty(key)) {\r\n moduleOverrides[key] = Module[key];\r\n }\r\n}\r\n\r\nModule['arguments'] = [];\r\nModule['thisProgram'] = './this.program';\r\nModule['quit'] = function(status, toThrow) {\r\n throw toThrow;\r\n};\r\nModule['preRun'] = [];\r\nModule['postRun'] = [];\r\n\r\n// The environment setup code below is customized to use Module.\r\n// *** Environment setup code ***\r\n\r\nvar ENVIRONMENT_IS_WEB = false;\r\nvar ENVIRONMENT_IS_WORKER = false;\r\nvar ENVIRONMENT_IS_NODE = false;\r\nvar ENVIRONMENT_IS_SHELL = false;\r\nENVIRONMENT_IS_WEB = typeof window === 'object';\r\nENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\r\nENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\r\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\r\n\r\n\r\n// Three configurations we can be running in:\r\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\r\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\r\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\r\n\r\n\r\n// `/` should be present at the end if `scriptDirectory` is not empty\r\nvar scriptDirectory = '';\r\nfunction locateFile(path) {\r\n if (Module['locateFile']) {\r\n return Module['locateFile'](path, scriptDirectory);\r\n } else {\r\n return scriptDirectory + path;\r\n }\r\n}\r\n\r\nif (ENVIRONMENT_IS_NODE) {\r\n scriptDirectory = __dirname + '/';\r\n\r\n // Expose functionality in the same simple way that the shells work\r\n // Note that we pollute the global namespace here, otherwise we break in node\r\n var nodeFS;\r\n var nodePath;\r\n\r\n Module['read'] = function shell_read(filename, binary) {\r\n var ret;\r\n if (!nodeFS) nodeFS = require('fs');\r\n if (!nodePath) nodePath = require('path');\r\n filename = nodePath['normalize'](filename);\r\n ret = nodeFS['readFileSync'](filename);\r\n return binary ? ret : ret.toString();\r\n };\r\n\r\n Module['readBinary'] = function readBinary(filename) {\r\n var ret = Module['read'](filename, true);\r\n if (!ret.buffer) {\r\n ret = new Uint8Array(ret);\r\n }\r\n assert(ret.buffer);\r\n return ret;\r\n };\r\n\r\n if (process['argv'].length > 1) {\r\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\r\n }\r\n\r\n Module['arguments'] = process['argv'].slice(2);\r\n\r\n // MODULARIZE will export the module in the proper place outside, we don't need to export here\r\n\r\n process['on']('uncaughtException', function(ex) {\r\n // suppress ExitStatus exceptions from showing an error\r\n if (!(ex instanceof ExitStatus)) {\r\n throw ex;\r\n }\r\n });\r\n // Currently node will swallow unhandled rejections, but this behavior is\r\n // deprecated, and in the future it will exit with error status.\r\n process['on']('unhandledRejection', function(reason, p) {\r\n process['exit'](1);\r\n });\r\n\r\n Module['quit'] = function(status) {\r\n process['exit'](status);\r\n };\r\n\r\n Module['inspect'] = function () { return '[Emscripten Module object]'; };\r\n} else\r\nif (ENVIRONMENT_IS_SHELL) {\r\n\r\n\r\n if (typeof read != 'undefined') {\r\n Module['read'] = function shell_read(f) {\r\n return read(f);\r\n };\r\n }\r\n\r\n Module['readBinary'] = function readBinary(f) {\r\n var data;\r\n if (typeof readbuffer === 'function') {\r\n return new Uint8Array(readbuffer(f));\r\n }\r\n data = read(f, 'binary');\r\n assert(typeof data === 'object');\r\n return data;\r\n };\r\n\r\n if (typeof scriptArgs != 'undefined') {\r\n Module['arguments'] = scriptArgs;\r\n } else if (typeof arguments != 'undefined') {\r\n Module['arguments'] = arguments;\r\n }\r\n\r\n if (typeof quit === 'function') {\r\n Module['quit'] = function(status) {\r\n quit(status);\r\n }\r\n }\r\n} else\r\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\r\n if (ENVIRONMENT_IS_WEB) {\r\n if (document.currentScript) {\r\n scriptDirectory = document.currentScript.src;\r\n }\r\n } else { // worker\r\n scriptDirectory = self.location.href;\r\n }\r\n // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\r\n // is gone, so we saved it, and we use it here instead of any other info.\r\n if (_scriptDir) {\r\n scriptDirectory = _scriptDir;\r\n }\r\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\r\n // otherwise, slice off the final part of the url to find the script directory.\r\n if (scriptDirectory.indexOf('blob:') !== 0) {\r\n scriptDirectory = scriptDirectory.split('/').slice(0, -1).join('/') + '/';\r\n } else {\r\n scriptDirectory = '';\r\n }\r\n\r\n\r\n Module['read'] = function shell_read(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send(null);\r\n return xhr.responseText;\r\n };\r\n\r\n if (ENVIRONMENT_IS_WORKER) {\r\n Module['readBinary'] = function readBinary(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.send(null);\r\n return new Uint8Array(xhr.response);\r\n };\r\n }\r\n\r\n Module['readAsync'] = function readAsync(url, onload, onerror) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.onload = function xhr_onload() {\r\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\r\n onload(xhr.response);\r\n return;\r\n }\r\n onerror();\r\n };\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n };\r\n\r\n Module['setWindowTitle'] = function(title) { document.title = title };\r\n} else\r\n{\r\n}\r\n\r\n// Set up the out() and err() hooks, which are how we can print to stdout or\r\n// stderr, respectively.\r\n// If the user provided Module.print or printErr, use that. Otherwise,\r\n// console.log is checked first, as 'print' on the web will open a print dialogue\r\n// printErr is preferable to console.warn (works better in shells)\r\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\r\nvar out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));\r\nvar err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));\r\n\r\n// *** Environment setup code ***\r\n\r\n// Merge back in the overrides\r\nfor (key in moduleOverrides) {\r\n if (moduleOverrides.hasOwnProperty(key)) {\r\n Module[key] = moduleOverrides[key];\r\n }\r\n}\r\n// Free the object hierarchy contained in the overrides, this lets the GC\r\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\r\nmoduleOverrides = undefined;\r\n\r\n\r\n\r\n// {{PREAMBLE_ADDITIONS}}\r\n\r\nvar STACK_ALIGN = 16;\r\n\r\n\r\nfunction staticAlloc(size) {\r\n var ret = STATICTOP;\r\n STATICTOP = (STATICTOP + size + 15) & -16;\r\n return ret;\r\n}\r\n\r\nfunction dynamicAlloc(size) {\r\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\r\n var end = (ret + size + 15) & -16;\r\n HEAP32[DYNAMICTOP_PTR>>2] = end;\r\n if (end >= TOTAL_MEMORY) {\r\n var success = enlargeMemory();\r\n if (!success) {\r\n HEAP32[DYNAMICTOP_PTR>>2] = ret;\r\n return 0;\r\n }\r\n }\r\n return ret;\r\n}\r\n\r\nfunction alignMemory(size, factor) {\r\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\r\n var ret = size = Math.ceil(size / factor) * factor;\r\n return ret;\r\n}\r\n\r\nfunction getNativeTypeSize(type) {\r\n switch (type) {\r\n case 'i1': case 'i8': return 1;\r\n case 'i16': return 2;\r\n case 'i32': return 4;\r\n case 'i64': return 8;\r\n case 'float': return 4;\r\n case 'double': return 8;\r\n default: {\r\n if (type[type.length-1] === '*') {\r\n return 4; // A pointer\r\n } else if (type[0] === 'i') {\r\n var bits = parseInt(type.substr(1));\r\n assert(bits % 8 === 0);\r\n return bits / 8;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction warnOnce(text) {\r\n if (!warnOnce.shown) warnOnce.shown = {};\r\n if (!warnOnce.shown[text]) {\r\n warnOnce.shown[text] = 1;\r\n err(text);\r\n }\r\n}\r\n\r\nvar asm2wasmImports = { // special asm2wasm imports\r\n \"f64-rem\": function(x, y) {\r\n return x % y;\r\n },\r\n \"debugger\": function() {\r\n debugger;\r\n }\r\n};\r\n\r\n\r\n\r\nvar jsCallStartIndex = 1;\r\nvar functionPointers = new Array(0);\r\n\r\n// 'sig' parameter is only used on LLVM wasm backend\r\nfunction addFunction(func, sig) {\r\n var base = 0;\r\n for (var i = base; i < base + 0; i++) {\r\n if (!functionPointers[i]) {\r\n functionPointers[i] = func;\r\n return jsCallStartIndex + i;\r\n }\r\n }\r\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\r\n}\r\n\r\nfunction removeFunction(index) {\r\n functionPointers[index-jsCallStartIndex] = null;\r\n}\r\n\r\nvar funcWrappers = {};\r\n\r\nfunction getFuncWrapper(func, sig) {\r\n if (!func) return; // on null pointer, return undefined\r\n assert(sig);\r\n if (!funcWrappers[sig]) {\r\n funcWrappers[sig] = {};\r\n }\r\n var sigCache = funcWrappers[sig];\r\n if (!sigCache[func]) {\r\n // optimize away arguments usage in common cases\r\n if (sig.length === 1) {\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func);\r\n };\r\n } else if (sig.length === 2) {\r\n sigCache[func] = function dynCall_wrapper(arg) {\r\n return dynCall(sig, func, [arg]);\r\n };\r\n } else {\r\n // general case\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\r\n };\r\n }\r\n }\r\n return sigCache[func];\r\n}\r\n\r\n\r\nfunction makeBigInt(low, high, unsigned) {\r\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\r\n}\r\n\r\nfunction dynCall(sig, ptr, args) {\r\n if (args && args.length) {\r\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\r\n } else {\r\n return Module['dynCall_' + sig].call(null, ptr);\r\n }\r\n}\r\n\r\n\r\n\r\nvar Runtime = {\r\n // FIXME backwards compatibility layer for ports. Support some Runtime.*\r\n // for now, fix it there, then remove it from here. That way we\r\n // can minimize any period of breakage.\r\n dynCall: dynCall, // for SDL2 port\r\n};\r\n\r\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\r\n// Above 0 is static memory, starting with globals.\r\n// Then the stack.\r\n// Then 'dynamic' memory for sbrk.\r\nvar GLOBAL_BASE = 1024;\r\n\r\n\r\n// === Preamble library stuff ===\r\n\r\n// Documentation for the public APIs defined in this file must be updated in:\r\n// site/source/docs/api_reference/preamble.js.rst\r\n// A prebuilt local version of the documentation is available at:\r\n// site/build/text/docs/api_reference/preamble.js.txt\r\n// You can also build docs locally as HTML or other formats in site/\r\n// An online HTML version (which may be of a different version of Emscripten)\r\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\r\n\r\n\r\n\r\n//========================================\r\n// Runtime essentials\r\n//========================================\r\n\r\nvar ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort()\r\nvar EXITSTATUS = 0;\r\n\r\n/** @type {function(*, string=)} */\r\nfunction assert(condition, text) {\r\n if (!condition) {\r\n abort('Assertion failed: ' + text);\r\n }\r\n}\r\n\r\nvar globalScope = this;\r\n\r\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\r\nfunction getCFunc(ident) {\r\n var func = Module['_' + ident]; // closure exported function\r\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\r\n return func;\r\n}\r\n\r\nvar JSfuncs = {\r\n // Helpers for cwrap -- it can't refer to Runtime directly because it might\r\n // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find\r\n // out what the minified function name is.\r\n 'stackSave': function() {\r\n stackSave()\r\n },\r\n 'stackRestore': function() {\r\n stackRestore()\r\n },\r\n // type conversion from js to c\r\n 'arrayToC' : function(arr) {\r\n var ret = stackAlloc(arr.length);\r\n writeArrayToMemory(arr, ret);\r\n return ret;\r\n },\r\n 'stringToC' : function(str) {\r\n var ret = 0;\r\n if (str !== null && str !== undefined && str !== 0) { // null string\r\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\r\n var len = (str.length << 2) + 1;\r\n ret = stackAlloc(len);\r\n stringToUTF8(str, ret, len);\r\n }\r\n return ret;\r\n }\r\n};\r\n\r\n// For fast lookup of conversion functions\r\nvar toC = {\r\n 'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC']\r\n};\r\n\r\n\r\n// C calling interface.\r\nfunction ccall(ident, returnType, argTypes, args, opts) {\r\n function convertReturnValue(ret) {\r\n if (returnType === 'string') return Pointer_stringify(ret);\r\n if (returnType === 'boolean') return Boolean(ret);\r\n return ret;\r\n }\r\n\r\n var func = getCFunc(ident);\r\n var cArgs = [];\r\n var stack = 0;\r\n if (args) {\r\n for (var i = 0; i < args.length; i++) {\r\n var converter = toC[argTypes[i]];\r\n if (converter) {\r\n if (stack === 0) stack = stackSave();\r\n cArgs[i] = converter(args[i]);\r\n } else {\r\n cArgs[i] = args[i];\r\n }\r\n }\r\n }\r\n var ret = func.apply(null, cArgs);\r\n ret = convertReturnValue(ret);\r\n if (stack !== 0) stackRestore(stack);\r\n return ret;\r\n}\r\n\r\nfunction cwrap(ident, returnType, argTypes, opts) {\r\n argTypes = argTypes || [];\r\n // When the function takes numbers and returns a number, we can just return\r\n // the original function\r\n var numericArgs = argTypes.every(function(type){ return type === 'number'});\r\n var numericRet = returnType !== 'string';\r\n if (numericRet && numericArgs && !opts) {\r\n return getCFunc(ident);\r\n }\r\n return function() {\r\n return ccall(ident, returnType, argTypes, arguments, opts);\r\n }\r\n}\r\n\r\n/** @type {function(number, number, string, boolean=)} */\r\nfunction setValue(ptr, value, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i8': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i16': HEAP16[((ptr)>>1)]=value; break;\r\n case 'i32': HEAP32[((ptr)>>2)]=value; break;\r\n case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\r\n case 'float': HEAPF32[((ptr)>>2)]=value; break;\r\n case 'double': HEAPF64[((ptr)>>3)]=value; break;\r\n default: abort('invalid type for setValue: ' + type);\r\n }\r\n}\r\n\r\n/** @type {function(number, string, boolean=)} */\r\nfunction getValue(ptr, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': return HEAP8[((ptr)>>0)];\r\n case 'i8': return HEAP8[((ptr)>>0)];\r\n case 'i16': return HEAP16[((ptr)>>1)];\r\n case 'i32': return HEAP32[((ptr)>>2)];\r\n case 'i64': return HEAP32[((ptr)>>2)];\r\n case 'float': return HEAPF32[((ptr)>>2)];\r\n case 'double': return HEAPF64[((ptr)>>3)];\r\n default: abort('invalid type for getValue: ' + type);\r\n }\r\n return null;\r\n}\r\n\r\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\r\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\r\nvar ALLOC_STATIC = 2; // Cannot be freed\r\nvar ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk\r\nvar ALLOC_NONE = 4; // Do not allocate\r\n\r\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\r\n// is a little tricky (see docs right below). The reason is that it is optimized\r\n// for multiple syntaxes to save space in generated code. So you should\r\n// normally not use allocate(), and instead allocate memory using _malloc(),\r\n// initialize it with setValue(), and so forth.\r\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\r\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\r\n// affect this!)\r\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\r\n// or a single type which is used for the entire block. This only matters if there\r\n// is initial data - if @slab is a number, then this does not matter at all and is\r\n// ignored.\r\n// @allocator: How to allocate memory, see ALLOC_*\r\n/** @type {function((TypedArray|Array|number), string, number, number=)} */\r\nfunction allocate(slab, types, allocator, ptr) {\r\n var zeroinit, size;\r\n if (typeof slab === 'number') {\r\n zeroinit = true;\r\n size = slab;\r\n } else {\r\n zeroinit = false;\r\n size = slab.length;\r\n }\r\n\r\n var singleType = typeof types === 'string' ? types : null;\r\n\r\n var ret;\r\n if (allocator == ALLOC_NONE) {\r\n ret = ptr;\r\n } else {\r\n ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));\r\n }\r\n\r\n if (zeroinit) {\r\n var stop;\r\n ptr = ret;\r\n assert((ret & 3) == 0);\r\n stop = ret + (size & ~3);\r\n for (; ptr < stop; ptr += 4) {\r\n HEAP32[((ptr)>>2)]=0;\r\n }\r\n stop = ret + size;\r\n while (ptr < stop) {\r\n HEAP8[((ptr++)>>0)]=0;\r\n }\r\n return ret;\r\n }\r\n\r\n if (singleType === 'i8') {\r\n if (slab.subarray || slab.slice) {\r\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\r\n } else {\r\n HEAPU8.set(new Uint8Array(slab), ret);\r\n }\r\n return ret;\r\n }\r\n\r\n var i = 0, type, typeSize, previousType;\r\n while (i < size) {\r\n var curr = slab[i];\r\n\r\n type = singleType || types[i];\r\n if (type === 0) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\r\n\r\n setValue(ret+i, curr, type);\r\n\r\n // no need to look up size unless type changes, so cache it\r\n if (previousType !== type) {\r\n typeSize = getNativeTypeSize(type);\r\n previousType = type;\r\n }\r\n i += typeSize;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\r\nfunction getMemory(size) {\r\n if (!staticSealed) return staticAlloc(size);\r\n if (!runtimeInitialized) return dynamicAlloc(size);\r\n return _malloc(size);\r\n}\r\n\r\n/** @type {function(number, number=)} */\r\nfunction Pointer_stringify(ptr, length) {\r\n if (length === 0 || !ptr) return '';\r\n // Find the length, and check for UTF while doing so\r\n var hasUtf = 0;\r\n var t;\r\n var i = 0;\r\n while (1) {\r\n t = HEAPU8[(((ptr)+(i))>>0)];\r\n hasUtf |= t;\r\n if (t == 0 && !length) break;\r\n i++;\r\n if (length && i == length) break;\r\n }\r\n if (!length) length = i;\r\n\r\n var ret = '';\r\n\r\n if (hasUtf < 128) {\r\n var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack\r\n var curr;\r\n while (length > 0) {\r\n curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));\r\n ret = ret ? ret + curr : curr;\r\n ptr += MAX_CHUNK;\r\n length -= MAX_CHUNK;\r\n }\r\n return ret;\r\n }\r\n return UTF8ToString(ptr);\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction AsciiToString(ptr) {\r\n var str = '';\r\n while (1) {\r\n var ch = HEAP8[((ptr++)>>0)];\r\n if (!ch) return str;\r\n str += String.fromCharCode(ch);\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\r\n\r\nfunction stringToAscii(str, outPtr) {\r\n return writeAsciiToMemory(str, outPtr, false);\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\r\nfunction UTF8ArrayToString(u8Array, idx) {\r\n var endPtr = idx;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n while (u8Array[endPtr]) ++endPtr;\r\n\r\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\r\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\r\n } else {\r\n var u0, u1, u2, u3, u4, u5;\r\n\r\n var str = '';\r\n while (1) {\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n u0 = u8Array[idx++];\r\n if (!u0) return str;\r\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\r\n u1 = u8Array[idx++] & 63;\r\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\r\n u2 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF0) == 0xE0) {\r\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\r\n } else {\r\n u3 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF8) == 0xF0) {\r\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;\r\n } else {\r\n u4 = u8Array[idx++] & 63;\r\n if ((u0 & 0xFC) == 0xF8) {\r\n u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;\r\n } else {\r\n u5 = u8Array[idx++] & 63;\r\n u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;\r\n }\r\n }\r\n }\r\n if (u0 < 0x10000) {\r\n str += String.fromCharCode(u0);\r\n } else {\r\n var ch = u0 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n }\r\n }\r\n }\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction UTF8ToString(ptr) {\r\n return UTF8ArrayToString(HEAPU8,ptr);\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\r\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\r\n// outIdx: The starting offset in the array to begin the copying.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\r\n// This count should include the null terminator,\r\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\r\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\r\n return 0;\r\n\r\n var startIdx = outIdx;\r\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) {\r\n var u1 = str.charCodeAt(++i);\r\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\r\n }\r\n if (u <= 0x7F) {\r\n if (outIdx >= endIdx) break;\r\n outU8Array[outIdx++] = u;\r\n } else if (u <= 0x7FF) {\r\n if (outIdx + 1 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0xFFFF) {\r\n if (outIdx + 2 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0x1FFFFF) {\r\n if (outIdx + 3 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0x3FFFFFF) {\r\n if (outIdx + 4 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF8 | (u >> 24);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else {\r\n if (outIdx + 5 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xFC | (u >> 30);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n }\r\n }\r\n // Null-terminate the pointer to the buffer.\r\n outU8Array[outIdx] = 0;\r\n return outIdx - startIdx;\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\r\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF8(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\r\n if (u <= 0x7F) {\r\n ++len;\r\n } else if (u <= 0x7FF) {\r\n len += 2;\r\n } else if (u <= 0xFFFF) {\r\n len += 3;\r\n } else if (u <= 0x1FFFFF) {\r\n len += 4;\r\n } else if (u <= 0x3FFFFFF) {\r\n len += 5;\r\n } else {\r\n len += 6;\r\n }\r\n }\r\n return len;\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\r\nfunction UTF16ToString(ptr) {\r\n var endPtr = ptr;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n var idx = endPtr >> 1;\r\n while (HEAP16[idx]) ++idx;\r\n endPtr = idx << 1;\r\n\r\n if (endPtr - ptr > 32 && UTF16Decoder) {\r\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\r\n } else {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\r\n if (codeUnit == 0) return str;\r\n ++i;\r\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\r\n str += String.fromCharCode(codeUnit);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 2) return 0;\r\n maxBytesToWrite -= 2; // Null terminator.\r\n var startPtr = outPtr;\r\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\r\n for (var i = 0; i < numCharsToWrite; ++i) {\r\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n HEAP16[((outPtr)>>1)]=codeUnit;\r\n outPtr += 2;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP16[((outPtr)>>1)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF16(str) {\r\n return str.length*2;\r\n}\r\n\r\nfunction UTF32ToString(ptr) {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\r\n if (utf32 == 0)\r\n return str;\r\n ++i;\r\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n if (utf32 >= 0x10000) {\r\n var ch = utf32 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n } else {\r\n str += String.fromCharCode(utf32);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 4) return 0;\r\n var startPtr = outPtr;\r\n var endPtr = startPtr + maxBytesToWrite - 4;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\r\n var trailSurrogate = str.charCodeAt(++i);\r\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\r\n }\r\n HEAP32[((outPtr)>>2)]=codeUnit;\r\n outPtr += 4;\r\n if (outPtr + 4 > endPtr) break;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP32[((outPtr)>>2)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF32(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i);\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\r\n len += 4;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n// Allocate heap space for a JS string, and write it there.\r\n// It is the responsibility of the caller to free() that memory.\r\nfunction allocateUTF8(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = _malloc(size);\r\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Allocate stack space for a JS string, and write it there.\r\nfunction allocateUTF8OnStack(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = stackAlloc(size);\r\n stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\nfunction demangle(func) {\r\n return func;\r\n}\r\n\r\nfunction demangleAll(text) {\r\n var regex =\r\n /__Z[\\w\\d_]+/g;\r\n return text.replace(regex,\r\n function(x) {\r\n var y = demangle(x);\r\n return x === y ? x : (x + ' [' + y + ']');\r\n });\r\n}\r\n\r\nfunction jsStackTrace() {\r\n var err = new Error();\r\n if (!err.stack) {\r\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\r\n // so try that as a special-case.\r\n try {\r\n throw new Error(0);\r\n } catch(e) {\r\n err = e;\r\n }\r\n if (!err.stack) {\r\n return '(no stack trace available)';\r\n }\r\n }\r\n return err.stack.toString();\r\n}\r\n\r\nfunction stackTrace() {\r\n var js = jsStackTrace();\r\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\r\n return demangleAll(js);\r\n}\r\n\r\n// Memory management\r\n\r\nvar PAGE_SIZE = 16384;\r\nvar WASM_PAGE_SIZE = 65536;\r\nvar ASMJS_PAGE_SIZE = 16777216;\r\nvar MIN_TOTAL_MEMORY = 16777216;\r\n\r\nfunction alignUp(x, multiple) {\r\n if (x % multiple > 0) {\r\n x += multiple - (x % multiple);\r\n }\r\n return x;\r\n}\r\n\r\nvar HEAP,\r\n/** @type {ArrayBuffer} */\r\n buffer,\r\n/** @type {Int8Array} */\r\n HEAP8,\r\n/** @type {Uint8Array} */\r\n HEAPU8,\r\n/** @type {Int16Array} */\r\n HEAP16,\r\n/** @type {Uint16Array} */\r\n HEAPU16,\r\n/** @type {Int32Array} */\r\n HEAP32,\r\n/** @type {Uint32Array} */\r\n HEAPU32,\r\n/** @type {Float32Array} */\r\n HEAPF32,\r\n/** @type {Float64Array} */\r\n HEAPF64;\r\n\r\nfunction updateGlobalBuffer(buf) {\r\n Module['buffer'] = buffer = buf;\r\n}\r\n\r\nfunction updateGlobalBufferViews() {\r\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\r\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\r\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\r\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\r\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\r\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\r\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\r\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\r\n}\r\n\r\nvar STATIC_BASE, STATICTOP, staticSealed; // static area\r\nvar STACK_BASE, STACKTOP, STACK_MAX; // stack area\r\nvar DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk\r\n\r\n STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;\r\n staticSealed = false;\r\n\r\n\r\n\r\n\r\nfunction abortOnCannotGrowMemory() {\r\n abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');\r\n}\r\n\r\nif (!Module['reallocBuffer']) Module['reallocBuffer'] = function(size) {\r\n var ret;\r\n try {\r\n if (ArrayBuffer.transfer) {\r\n ret = ArrayBuffer.transfer(buffer, size);\r\n } else {\r\n var oldHEAP8 = HEAP8;\r\n ret = new ArrayBuffer(size);\r\n var temp = new Int8Array(ret);\r\n temp.set(oldHEAP8);\r\n }\r\n } catch(e) {\r\n return false;\r\n }\r\n var success = _emscripten_replace_memory(ret);\r\n if (!success) return false;\r\n return ret;\r\n};\r\n\r\nfunction enlargeMemory() {\r\n // TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top.\r\n\r\n\r\n var PAGE_MULTIPLE = Module[\"usingWasm\"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\r\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\r\n\r\n if (HEAP32[DYNAMICTOP_PTR>>2] > LIMIT) {\r\n return false;\r\n }\r\n\r\n var OLD_TOTAL_MEMORY = TOTAL_MEMORY;\r\n TOTAL_MEMORY = Math.max(TOTAL_MEMORY, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\r\n\r\n while (TOTAL_MEMORY < HEAP32[DYNAMICTOP_PTR>>2]) { // Keep incrementing the heap size as long as it's less than what is requested.\r\n if (TOTAL_MEMORY <= 536870912) {\r\n TOTAL_MEMORY = alignUp(2 * TOTAL_MEMORY, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\r\n } else {\r\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\r\n TOTAL_MEMORY = Math.min(alignUp((3 * TOTAL_MEMORY + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\r\n }\r\n }\r\n\r\n\r\n var replacement = Module['reallocBuffer'](TOTAL_MEMORY);\r\n if (!replacement || replacement.byteLength != TOTAL_MEMORY) {\r\n // restore the state to before this call, we failed\r\n TOTAL_MEMORY = OLD_TOTAL_MEMORY;\r\n return false;\r\n }\r\n\r\n // everything worked\r\n\r\n updateGlobalBuffer(replacement);\r\n updateGlobalBufferViews();\r\n\r\n\r\n\r\n return true;\r\n}\r\n\r\nvar byteLength;\r\ntry {\r\n byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get);\r\n byteLength(new ArrayBuffer(4)); // can fail on older ie\r\n} catch(e) { // can fail on older node/v8\r\n byteLength = function(buffer) { return buffer.byteLength; };\r\n}\r\n\r\nvar TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;\r\nvar TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;\r\nif (TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\r\n\r\n// Initialize the runtime's memory\r\n\r\n\r\n\r\n// Use a provided buffer, if there is one, or else allocate a new one\r\nif (Module['buffer']) {\r\n buffer = Module['buffer'];\r\n} else {\r\n // Use a WebAssembly memory where available\r\n if (typeof WebAssembly === 'object' && typeof WebAssembly.Memory === 'function') {\r\n Module['wasmMemory'] = new WebAssembly.Memory({ 'initial': TOTAL_MEMORY / WASM_PAGE_SIZE });\r\n buffer = Module['wasmMemory'].buffer;\r\n } else\r\n {\r\n buffer = new ArrayBuffer(TOTAL_MEMORY);\r\n }\r\n Module['buffer'] = buffer;\r\n}\r\nupdateGlobalBufferViews();\r\n\r\n\r\nfunction getTotalMemory() {\r\n return TOTAL_MEMORY;\r\n}\r\n\r\n// Endianness check (note: assumes compiler arch was little-endian)\r\n\r\nfunction callRuntimeCallbacks(callbacks) {\r\n while(callbacks.length > 0) {\r\n var callback = callbacks.shift();\r\n if (typeof callback == 'function') {\r\n callback();\r\n continue;\r\n }\r\n var func = callback.func;\r\n if (typeof func === 'number') {\r\n if (callback.arg === undefined) {\r\n Module['dynCall_v'](func);\r\n } else {\r\n Module['dynCall_vi'](func, callback.arg);\r\n }\r\n } else {\r\n func(callback.arg === undefined ? null : callback.arg);\r\n }\r\n }\r\n}\r\n\r\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\r\nvar __ATINIT__ = []; // functions called during startup\r\nvar __ATMAIN__ = []; // functions called when main() is to be run\r\nvar __ATEXIT__ = []; // functions called during shutdown\r\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\r\n\r\nvar runtimeInitialized = false;\r\nvar runtimeExited = false;\r\n\r\n\r\nfunction preRun() {\r\n // compatibility - merge in anything from Module['preRun'] at this time\r\n if (Module['preRun']) {\r\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\r\n while (Module['preRun'].length) {\r\n addOnPreRun(Module['preRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPRERUN__);\r\n}\r\n\r\nfunction ensureInitRuntime() {\r\n if (runtimeInitialized) return;\r\n runtimeInitialized = true;\r\n callRuntimeCallbacks(__ATINIT__);\r\n}\r\n\r\nfunction preMain() {\r\n callRuntimeCallbacks(__ATMAIN__);\r\n}\r\n\r\nfunction exitRuntime() {\r\n callRuntimeCallbacks(__ATEXIT__);\r\n runtimeExited = true;\r\n}\r\n\r\nfunction postRun() {\r\n // compatibility - merge in anything from Module['postRun'] at this time\r\n if (Module['postRun']) {\r\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\r\n while (Module['postRun'].length) {\r\n addOnPostRun(Module['postRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPOSTRUN__);\r\n}\r\n\r\nfunction addOnPreRun(cb) {\r\n __ATPRERUN__.unshift(cb);\r\n}\r\n\r\nfunction addOnInit(cb) {\r\n __ATINIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPreMain(cb) {\r\n __ATMAIN__.unshift(cb);\r\n}\r\n\r\nfunction addOnExit(cb) {\r\n __ATEXIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPostRun(cb) {\r\n __ATPOSTRUN__.unshift(cb);\r\n}\r\n\r\n// Deprecated: This function should not be called because it is unsafe and does not provide\r\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\r\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\r\n// to be secure from out of bounds writes.\r\n/** @deprecated */\r\nfunction writeStringToMemory(string, buffer, dontAddNull) {\r\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\r\n\r\n var /** @type {number} */ lastChar, /** @type {number} */ end;\r\n if (dontAddNull) {\r\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\r\n // character that existed at the location where the null will be placed, and restore\r\n // that after the write (below).\r\n end = buffer + lengthBytesUTF8(string);\r\n lastChar = HEAP8[end];\r\n }\r\n stringToUTF8(string, buffer, Infinity);\r\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\r\n}\r\n\r\nfunction writeArrayToMemory(array, buffer) {\r\n HEAP8.set(array, buffer);\r\n}\r\n\r\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\r\n for (var i = 0; i < str.length; ++i) {\r\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\r\n}\r\n\r\nfunction unSign(value, bits, ignore) {\r\n if (value >= 0) {\r\n return value;\r\n }\r\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\r\n : Math.pow(2, bits) + value;\r\n}\r\nfunction reSign(value, bits, ignore) {\r\n if (value <= 0) {\r\n return value;\r\n }\r\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\r\n : Math.pow(2, bits-1);\r\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that\r\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\r\n // TODO: In i64 mode 1, resign the two parts separately and safely\r\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\r\n }\r\n return value;\r\n}\r\n\r\n\r\nvar Math_abs = Math.abs;\r\nvar Math_cos = Math.cos;\r\nvar Math_sin = Math.sin;\r\nvar Math_tan = Math.tan;\r\nvar Math_acos = Math.acos;\r\nvar Math_asin = Math.asin;\r\nvar Math_atan = Math.atan;\r\nvar Math_atan2 = Math.atan2;\r\nvar Math_exp = Math.exp;\r\nvar Math_log = Math.log;\r\nvar Math_sqrt = Math.sqrt;\r\nvar Math_ceil = Math.ceil;\r\nvar Math_floor = Math.floor;\r\nvar Math_pow = Math.pow;\r\nvar Math_imul = Math.imul;\r\nvar Math_fround = Math.fround;\r\nvar Math_round = Math.round;\r\nvar Math_min = Math.min;\r\nvar Math_max = Math.max;\r\nvar Math_clz32 = Math.clz32;\r\nvar Math_trunc = Math.trunc;\r\n\r\n// A counter of dependencies for calling run(). If we need to\r\n// do asynchronous work before running, increment this and\r\n// decrement it. Incrementing must happen in a place like\r\n// PRE_RUN_ADDITIONS (used by emcc to add file preloading).\r\n// Note that you can add dependencies in preRun, even though\r\n// it happens right before run - run will be postponed until\r\n// the dependencies are met.\r\nvar runDependencies = 0;\r\nvar runDependencyWatcher = null;\r\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\r\n\r\nfunction getUniqueRunDependency(id) {\r\n return id;\r\n}\r\n\r\nfunction addRunDependency(id) {\r\n runDependencies++;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n}\r\n\r\nfunction removeRunDependency(id) {\r\n runDependencies--;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n if (runDependencies == 0) {\r\n if (runDependencyWatcher !== null) {\r\n clearInterval(runDependencyWatcher);\r\n runDependencyWatcher = null;\r\n }\r\n if (dependenciesFulfilled) {\r\n var callback = dependenciesFulfilled;\r\n dependenciesFulfilled = null;\r\n callback(); // can add another dependenciesFulfilled\r\n }\r\n }\r\n}\r\n\r\nModule[\"preloadedImages\"] = {}; // maps url to image data\r\nModule[\"preloadedAudios\"] = {}; // maps url to audio data\r\n\r\n\r\n\r\nvar memoryInitializer = null;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\r\nvar dataURIPrefix = 'data:application/octet-stream;base64,';\r\n\r\n// Indicates whether filename is a base64 data URI.\r\nfunction isDataURI(filename) {\r\n return String.prototype.startsWith ?\r\n filename.startsWith(dataURIPrefix) :\r\n filename.indexOf(dataURIPrefix) === 0;\r\n}\r\n\r\n\r\n\r\n\r\nfunction integrateWasmJS() {\r\n // wasm.js has several methods for creating the compiled code module here:\r\n // * 'native-wasm' : use native WebAssembly support in the browser\r\n // * 'interpret-s-expr': load s-expression code from a .wast and interpret\r\n // * 'interpret-binary': load binary wasm and interpret\r\n // * 'interpret-asm2wasm': load asm.js code, translate to wasm, and interpret\r\n // * 'asmjs': no wasm, just load the asm.js code and use that (good for testing)\r\n // The method is set at compile time (BINARYEN_METHOD)\r\n // The method can be a comma-separated list, in which case, we will try the\r\n // options one by one. Some of them can fail gracefully, and then we can try\r\n // the next.\r\n\r\n // inputs\r\n\r\n var method = 'native-wasm';\r\n\r\n var wasmTextFile = 'Diablo.wast';\r\n var wasmBinaryFile = 'Diablo.wasm';\r\n var asmjsCodeFile = 'Diablo.temp.asm.js';\r\n\r\n if (!isDataURI(wasmTextFile)) {\r\n wasmTextFile = locateFile(wasmTextFile);\r\n }\r\n if (!isDataURI(wasmBinaryFile)) {\r\n wasmBinaryFile = locateFile(wasmBinaryFile);\r\n }\r\n if (!isDataURI(asmjsCodeFile)) {\r\n asmjsCodeFile = locateFile(asmjsCodeFile);\r\n }\r\n\r\n // utilities\r\n\r\n var wasmPageSize = 64*1024;\r\n\r\n var info = {\r\n 'global': null,\r\n 'env': null,\r\n 'asm2wasm': asm2wasmImports,\r\n 'parent': Module // Module inside wasm-js.cpp refers to wasm-js.cpp; this allows access to the outside program.\r\n };\r\n\r\n var exports = null;\r\n\r\n\r\n function mergeMemory(newBuffer) {\r\n // The wasm instance creates its memory. But static init code might have written to\r\n // buffer already, including the mem init file, and we must copy it over in a proper merge.\r\n // TODO: avoid this copy, by avoiding such static init writes\r\n // TODO: in shorter term, just copy up to the last static init write\r\n var oldBuffer = Module['buffer'];\r\n if (newBuffer.byteLength < oldBuffer.byteLength) {\r\n err('the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here');\r\n }\r\n var oldView = new Int8Array(oldBuffer);\r\n var newView = new Int8Array(newBuffer);\r\n\r\n\r\n newView.set(oldView);\r\n updateGlobalBuffer(newBuffer);\r\n updateGlobalBufferViews();\r\n }\r\n\r\n function fixImports(imports) {\r\n return imports;\r\n }\r\n\r\n function getBinary() {\r\n try {\r\n if (Module['wasmBinary']) {\r\n return new Uint8Array(Module['wasmBinary']);\r\n }\r\n if (Module['readBinary']) {\r\n return Module['readBinary'](wasmBinaryFile);\r\n } else {\r\n throw \"both async and sync fetching of the wasm failed\";\r\n }\r\n }\r\n catch (err) {\r\n abort(err);\r\n }\r\n }\r\n\r\n function getBinaryPromise() {\r\n // if we don't have the binary yet, and have the Fetch api, use that\r\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\r\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\r\n return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {\r\n if (!response['ok']) {\r\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\r\n }\r\n return response['arrayBuffer']();\r\n }).catch(function () {\r\n return getBinary();\r\n });\r\n }\r\n // Otherwise, getBinary should be able to get it synchronously\r\n return new Promise(function(resolve, reject) {\r\n resolve(getBinary());\r\n });\r\n }\r\n\r\n // do-method functions\r\n\r\n\r\n function doNativeWasm(global, env, providedBuffer) {\r\n if (typeof WebAssembly !== 'object') {\r\n err('no native wasm support detected');\r\n return false;\r\n }\r\n // prepare memory import\r\n if (!(Module['wasmMemory'] instanceof WebAssembly.Memory)) {\r\n err('no native wasm Memory in use');\r\n return false;\r\n }\r\n env['memory'] = Module['wasmMemory'];\r\n // Load the wasm module and create an instance of using native support in the JS engine.\r\n info['global'] = {\r\n 'NaN': NaN,\r\n 'Infinity': Infinity\r\n };\r\n info['global.Math'] = Math;\r\n info['env'] = env;\r\n // handle a generated wasm instance, receiving its exports and\r\n // performing other necessary setup\r\n function receiveInstance(instance, module) {\r\n exports = instance.exports;\r\n if (exports.memory) mergeMemory(exports.memory);\r\n Module['asm'] = exports;\r\n Module[\"usingWasm\"] = true;\r\n removeRunDependency('wasm-instantiate');\r\n }\r\n addRunDependency('wasm-instantiate');\r\n\r\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\r\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\r\n // to any other async startup actions they are performing.\r\n if (Module['instantiateWasm']) {\r\n try {\r\n return Module['instantiateWasm'](info, receiveInstance);\r\n } catch(e) {\r\n err('Module.instantiateWasm callback failed with error: ' + e);\r\n return false;\r\n }\r\n }\r\n\r\n function receiveInstantiatedSource(output) {\r\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\r\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\r\n receiveInstance(output['instance'], output['module']);\r\n }\r\n function instantiateArrayBuffer(receiver) {\r\n getBinaryPromise().then(function(binary) {\r\n return WebAssembly.instantiate(binary, info);\r\n }).then(receiver).catch(function(reason) {\r\n err('failed to asynchronously prepare wasm: ' + reason);\r\n abort(reason);\r\n });\r\n }\r\n // Prefer streaming instantiation if available.\r\n if (!Module['wasmBinary'] &&\r\n typeof WebAssembly.instantiateStreaming === 'function' &&\r\n !isDataURI(wasmBinaryFile) &&\r\n typeof fetch === 'function') {\r\n WebAssembly.instantiateStreaming(fetch(wasmBinaryFile, { credentials: 'same-origin' }), info)\r\n .then(receiveInstantiatedSource)\r\n .catch(function(reason) {\r\n // We expect the most common failure cause to be a bad MIME type for the binary,\r\n // in which case falling back to ArrayBuffer instantiation should work.\r\n err('wasm streaming compile failed: ' + reason);\r\n err('falling back to ArrayBuffer instantiation');\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n });\r\n } else {\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n }\r\n return {}; // no exports yet; we'll fill them in later\r\n }\r\n\r\n\r\n // We may have a preloaded value in Module.asm, save it\r\n Module['asmPreload'] = Module['asm'];\r\n\r\n // Memory growth integration code\r\n\r\n var asmjsReallocBuffer = Module['reallocBuffer'];\r\n\r\n var wasmReallocBuffer = function(size) {\r\n var PAGE_MULTIPLE = Module[\"usingWasm\"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\r\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\r\n var old = Module['buffer'];\r\n var oldSize = old.byteLength;\r\n if (Module[\"usingWasm\"]) {\r\n // native wasm support\r\n try {\r\n var result = Module['wasmMemory'].grow((size - oldSize) / wasmPageSize); // .grow() takes a delta compared to the previous size\r\n if (result !== (-1 | 0)) {\r\n // success in native wasm memory growth, get the buffer from the memory\r\n return Module['buffer'] = Module['wasmMemory'].buffer;\r\n } else {\r\n return null;\r\n }\r\n } catch(e) {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n Module['reallocBuffer'] = function(size) {\r\n if (finalMethod === 'asmjs') {\r\n return asmjsReallocBuffer(size);\r\n } else {\r\n return wasmReallocBuffer(size);\r\n }\r\n };\r\n\r\n // we may try more than one; this is the final one, that worked and we are using\r\n var finalMethod = '';\r\n\r\n // Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\r\n // the wasm module at that time, and it receives imports and provides exports and so forth, the app\r\n // doesn't need to care that it is wasm or olyfilled wasm or asm.js.\r\n\r\n Module['asm'] = function(global, env, providedBuffer) {\r\n env = fixImports(env);\r\n\r\n // import table\r\n if (!env['table']) {\r\n var TABLE_SIZE = Module['wasmTableSize'];\r\n if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; // works in binaryen interpreter at least\r\n var MAX_TABLE_SIZE = Module['wasmMaxTableSize'];\r\n if (typeof WebAssembly === 'object' && typeof WebAssembly.Table === 'function') {\r\n if (MAX_TABLE_SIZE !== undefined) {\r\n env['table'] = new WebAssembly.Table({ 'initial': TABLE_SIZE, 'maximum': MAX_TABLE_SIZE, 'element': 'anyfunc' });\r\n } else {\r\n env['table'] = new WebAssembly.Table({ 'initial': TABLE_SIZE, element: 'anyfunc' });\r\n }\r\n } else {\r\n env['table'] = new Array(TABLE_SIZE); // works in binaryen interpreter at least\r\n }\r\n Module['wasmTable'] = env['table'];\r\n }\r\n\r\n if (!env['memoryBase']) {\r\n env['memoryBase'] = Module['STATIC_BASE']; // tell the memory segments where to place themselves\r\n }\r\n if (!env['tableBase']) {\r\n env['tableBase'] = 0; // table starts at 0 by default, in dynamic linking this will change\r\n }\r\n\r\n // try the methods. each should return the exports if it succeeded\r\n\r\n var exports;\r\n exports = doNativeWasm(global, env, providedBuffer);\r\n\r\n assert(exports, 'no binaryen method succeeded.');\r\n\r\n\r\n return exports;\r\n };\r\n\r\n var methodHandler = Module['asm']; // note our method handler, as we may modify Module['asm'] later\r\n}\r\n\r\nintegrateWasmJS();\r\n\r\n// === Body ===\r\n\r\nvar ASM_CONSTS = [function($0) { self.DApi.current_save_id($0); }];\r\n\r\nfunction _emscripten_asm_const_ii(code, a0) {\r\n return ASM_CONSTS[code](a0);\r\n}\r\nfunction __api_close_keyboard(){ self.DApi.close_keyboard(); }\r\nfunction __api_open_keyboard(x0,y0,x1,y1,len){ self.DApi.open_keyboard(x0, y0, x1, y1, len); }\r\nfunction _api_create_sound(id,ptr,size){ self.DApi.create_sound(id, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _api_create_sound_float(id,ptr,samples,channels,rate){ self.DApi.create_sound_raw(id, HEAPF32.slice(ptr / 4, ptr / 4 + samples * channels), samples, channels, rate); }\r\nfunction _api_delete_sound(id){ self.DApi.delete_sound(id); }\r\nfunction _api_draw_begin(){ self.DApi.draw_begin(); }\r\nfunction _api_draw_belt(items){ self.DApi.draw_belt(HEAP32.subarray(items / 4, items / 4 + 8)); }\r\nfunction _api_draw_blit(x,y,w,h,ptr){ self.DApi.draw_blit(x, y, w, h, HEAPU8.subarray(ptr, ptr + w * h * 4)); }\r\nfunction _api_draw_clip_text(x0,y0,x1,y1){ self.DApi.draw_clip_text(x0, y0, x1, y1); }\r\nfunction _api_draw_end(){ self.DApi.draw_end(); }\r\nfunction _api_draw_text(x,y,ptr,color){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); self.DApi.draw_text(x, y, text, color); }\r\nfunction _api_duplicate_sound(id,srcId){ self.DApi.duplicate_sound(id, srcId); }\r\nfunction _api_exit_game(){ self.DApi.exit_game(); }\r\nfunction _api_play_sound(id,volume,pan,loop){ self.DApi.play_sound(id, volume, pan, loop); }\r\nfunction _api_set_cursor(x,y){ self.DApi.set_cursor(x, y); }\r\nfunction _api_set_volume(id,volume){ self.DApi.set_volume(id, volume); }\r\nfunction _api_stop_sound(id){ self.DApi.stop_sound(id); }\r\nfunction _api_websocket_closed(){ return self.DApi.websocket_closed(); }\r\nfunction _api_websocket_send(ptr,size){ self.DApi.websocket_send(HEAPU8.subarray(ptr, ptr + size)); }\r\nfunction _exit_error(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply(null, HEAPU8.subarray( err, end )); self.DApi.exit_error( text ); }\r\nfunction _get_file_contents(path,ptr,offset,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.get_file_contents(text, HEAPU8.subarray(ptr, ptr + size), offset); }\r\nfunction _get_file_size(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); return self.DApi.get_file_size(text); }\r\nfunction _put_file_contents(path,ptr,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end)); self.DApi.put_file_contents(text, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _remove_file(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.remove_file( text ); }\r\nfunction _show_alert(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply( null, HEAPU8.subarray( err, end ) ); self.alert( text ); }\r\nfunction _trace_pop(){ if (self.WASM_TRACE) { self.WASM_TRACE.pop(); } }\r\nfunction _trace_push(ptr){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); console.log(text); self.WASM_TRACE = self.WASM_TRACE || []; self.WASM_TRACE.push(text); }\r\n\r\n\r\n\r\nSTATIC_BASE = GLOBAL_BASE;\r\n\r\nSTATICTOP = STATIC_BASE + 1866608;\r\n/* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_msgcmd_cpp() } }, { func: function() { __GLOBAL__sub_I_snet_cpp() } });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar STATIC_BUMP = 1866608;\r\nModule[\"STATIC_BASE\"] = STATIC_BASE;\r\nModule[\"STATIC_BUMP\"] = STATIC_BUMP;\r\n\r\n/* no memory initializer */\r\nvar tempDoublePtr = STATICTOP; STATICTOP += 16;\r\n\r\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\r\n\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n\r\n}\r\n\r\nfunction copyTempDouble(ptr) {\r\n\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n\r\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\r\n\r\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\r\n\r\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\r\n\r\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\r\n\r\n}\r\n\r\n// {{PRE_LIBRARY}}\r\n\r\n\r\n function ___assert_fail(condition, filename, line, func) {\r\n abort('Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function']);\r\n }\r\n\r\n function ___cxa_allocate_exception(size) {\r\n return _malloc(size);\r\n }\r\n\r\n \r\n function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()\r\n return !!__ZSt18uncaught_exceptionv.uncaught_exception;\r\n }\r\n \r\n var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) {\r\n if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted;\r\n for (var key in EXCEPTIONS.infos) {\r\n var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for\r\n var info = EXCEPTIONS.infos[ptr];\r\n if (info.adjusted === adjusted) {\r\n return ptr;\r\n }\r\n }\r\n return adjusted;\r\n },addRef:function (ptr) {\r\n if (!ptr) return;\r\n var info = EXCEPTIONS.infos[ptr];\r\n info.refcount++;\r\n },decRef:function (ptr) {\r\n if (!ptr) return;\r\n var info = EXCEPTIONS.infos[ptr];\r\n assert(info.refcount > 0);\r\n info.refcount--;\r\n // A rethrown exception can reach refcount 0; it must not be discarded\r\n // Its next handler will clear the rethrown flag and addRef it, prior to\r\n // final decRef and destruction here\r\n if (info.refcount === 0 && !info.rethrown) {\r\n if (info.destructor) {\r\n Module['dynCall_vi'](info.destructor, ptr);\r\n }\r\n delete EXCEPTIONS.infos[ptr];\r\n ___cxa_free_exception(ptr);\r\n }\r\n },clearRef:function (ptr) {\r\n if (!ptr) return;\r\n var info = EXCEPTIONS.infos[ptr];\r\n info.refcount = 0;\r\n }};function ___cxa_begin_catch(ptr) {\r\n var info = EXCEPTIONS.infos[ptr];\r\n if (info && !info.caught) {\r\n info.caught = true;\r\n __ZSt18uncaught_exceptionv.uncaught_exception--;\r\n }\r\n if (info) info.rethrown = false;\r\n EXCEPTIONS.caught.push(ptr);\r\n EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));\r\n return ptr;\r\n }\r\n\r\n \r\n function ___cxa_free_exception(ptr) {\r\n try {\r\n return _free(ptr);\r\n } catch(e) { // XXX FIXME\r\n }\r\n }function ___cxa_end_catch() {\r\n // Clear state flag.\r\n Module['setThrew'](0);\r\n // Call destructor if one is registered then clear it.\r\n var ptr = EXCEPTIONS.caught.pop();\r\n if (ptr) {\r\n EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));\r\n EXCEPTIONS.last = 0; // XXX in decRef?\r\n }\r\n }\r\n\r\n function ___cxa_find_matching_catch_2() {\r\n return ___cxa_find_matching_catch.apply(null, arguments);\r\n }\r\n\r\n function ___cxa_find_matching_catch_3() {\r\n return ___cxa_find_matching_catch.apply(null, arguments);\r\n }\r\n\r\n\r\n function ___cxa_get_exception_ptr(ptr) {\r\n // TODO: use info.adjusted?\r\n return ptr;\r\n }\r\n\r\n function ___cxa_pure_virtual() {\r\n ABORT = true;\r\n throw 'Pure virtual function called!';\r\n }\r\n\r\n \r\n \r\n function ___resumeException(ptr) {\r\n if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; }\r\n throw ptr;\r\n }function ___cxa_find_matching_catch() {\r\n var thrown = EXCEPTIONS.last;\r\n if (!thrown) {\r\n // just pass through the null ptr\r\n return ((setTempRet0(0),0)|0);\r\n }\r\n var info = EXCEPTIONS.infos[thrown];\r\n var throwntype = info.type;\r\n if (!throwntype) {\r\n // just pass through the thrown ptr\r\n return ((setTempRet0(0),thrown)|0);\r\n }\r\n var typeArray = Array.prototype.slice.call(arguments);\r\n \r\n var pointer = Module['___cxa_is_pointer_type'](throwntype);\r\n // can_catch receives a **, add indirection\r\n if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4);\r\n HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown;\r\n thrown = ___cxa_find_matching_catch.buffer;\r\n // The different catch blocks are denoted by different types.\r\n // Due to inheritance, those types may not precisely match the\r\n // type of the thrown object. Find one which matches, and\r\n // return the type of the catch block which should be called.\r\n for (var i = 0; i < typeArray.length; i++) {\r\n if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) {\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n info.adjusted = thrown;\r\n return ((setTempRet0(typeArray[i]),thrown)|0);\r\n }\r\n }\r\n // Shouldn't happen unless we have bogus data in typeArray\r\n // or encounter a type for which emscripten doesn't have suitable\r\n // typeinfo defined. Best-efforts match just in case.\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n return ((setTempRet0(throwntype),thrown)|0);\r\n }function ___cxa_throw(ptr, type, destructor) {\r\n EXCEPTIONS.infos[ptr] = {\r\n ptr: ptr,\r\n adjusted: ptr,\r\n type: type,\r\n destructor: destructor,\r\n refcount: 0,\r\n caught: false,\r\n rethrown: false\r\n };\r\n EXCEPTIONS.last = ptr;\r\n if (!(\"uncaught_exception\" in __ZSt18uncaught_exceptionv)) {\r\n __ZSt18uncaught_exceptionv.uncaught_exception = 1;\r\n } else {\r\n __ZSt18uncaught_exceptionv.uncaught_exception++;\r\n }\r\n throw ptr;\r\n }\r\n\r\n function ___gxx_personality_v0() {\r\n }\r\n\r\n function ___lock() {}\r\n\r\n\r\n \r\n var SYSCALLS={varargs:0,get:function (varargs) {\r\n SYSCALLS.varargs += 4;\r\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\r\n return ret;\r\n },getStr:function () {\r\n var ret = Pointer_stringify(SYSCALLS.get());\r\n return ret;\r\n },get64:function () {\r\n var low = SYSCALLS.get(), high = SYSCALLS.get();\r\n if (low >= 0) assert(high === 0);\r\n else assert(high === -1);\r\n return low;\r\n },getZero:function () {\r\n assert(SYSCALLS.get() === 0);\r\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // llseek\r\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\r\n // NOTE: offset_high is unused - Emscripten's off_t is 32-bit\r\n var offset = offset_low;\r\n FS.llseek(stream, offset, whence);\r\n HEAP32[((result)>>2)]=stream.position;\r\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n \r\n function flush_NO_FILESYSTEM() {\r\n // flush anything remaining in the buffers during shutdown\r\n var fflush = Module[\"_fflush\"];\r\n if (fflush) fflush(0);\r\n var printChar = ___syscall146.printChar;\r\n if (!printChar) return;\r\n var buffers = ___syscall146.buffers;\r\n if (buffers[1].length) printChar(1, 10);\r\n if (buffers[2].length) printChar(2, 10);\r\n }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // writev\r\n // hack to support printf in NO_FILESYSTEM\r\n var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\r\n var ret = 0;\r\n if (!___syscall146.buffers) {\r\n ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr\r\n ___syscall146.printChar = function(stream, curr) {\r\n var buffer = ___syscall146.buffers[stream];\r\n assert(buffer);\r\n if (curr === 0 || curr === 10) {\r\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\r\n buffer.length = 0;\r\n } else {\r\n buffer.push(curr);\r\n }\r\n };\r\n }\r\n for (var i = 0; i < iovcnt; i++) {\r\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\r\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\r\n for (var j = 0; j < len; j++) {\r\n ___syscall146.printChar(stream, HEAPU8[ptr+j]);\r\n }\r\n ret += len;\r\n }\r\n return ret;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // ioctl\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // close\r\n var stream = SYSCALLS.getStreamFromFD();\r\n FS.close(stream);\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___unlock() {}\r\n\r\n function _abort() {\r\n Module['abort']();\r\n }\r\n\r\n var _emscripten_asm_const_int=true;\r\n\r\n \r\n function __exit(status) {\r\n // void _exit(int status);\r\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\r\n exit(status);\r\n }function _exit(status) {\r\n __exit(status);\r\n }\r\n\r\n \r\n\r\n var _llvm_ceil_f32=Math_ceil;\r\n\r\n var _llvm_ctlz_i32=true;\r\n\r\n function _llvm_eh_typeid_for(type) {\r\n return type;\r\n }\r\n\r\n function _llvm_trap() {\r\n abort('trap!');\r\n }\r\n\r\n \r\n function _emscripten_memcpy_big(dest, src, num) {\r\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\r\n return dest;\r\n } \r\n\r\n \r\n\r\n \r\n\r\n \r\n var PTHREAD_SPECIFIC={};function _pthread_getspecific(key) {\r\n return PTHREAD_SPECIFIC[key] || 0;\r\n }\r\n\r\n \r\n var PTHREAD_SPECIFIC_NEXT_KEY=1;\r\n \r\n var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key, destructor) {\r\n if (key == 0) {\r\n return ERRNO_CODES.EINVAL;\r\n }\r\n HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY;\r\n // values start at 0\r\n PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0;\r\n PTHREAD_SPECIFIC_NEXT_KEY++;\r\n return 0;\r\n }\r\n\r\n function _pthread_once(ptr, func) {\r\n if (!_pthread_once.seen) _pthread_once.seen = {};\r\n if (ptr in _pthread_once.seen) return;\r\n Module['dynCall_v'](func);\r\n _pthread_once.seen[ptr] = 1;\r\n }\r\n\r\n function _pthread_setspecific(key, value) {\r\n if (!(key in PTHREAD_SPECIFIC)) {\r\n return ERRNO_CODES.EINVAL;\r\n }\r\n PTHREAD_SPECIFIC[key] = value;\r\n return 0;\r\n }\r\n\r\n \r\n function ___setErrNo(value) {\r\n if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;\r\n return value;\r\n } \r\n\r\n function _time(ptr) {\r\n var ret = (Date.now()/1000)|0;\r\n if (ptr) {\r\n HEAP32[((ptr)>>2)]=ret;\r\n }\r\n return ret;\r\n }\r\nDYNAMICTOP_PTR = staticAlloc(4);\r\n\r\nSTACK_BASE = STACKTOP = alignMemory(STATICTOP);\r\n\r\nSTACK_MAX = STACK_BASE + TOTAL_STACK;\r\n\r\nDYNAMIC_BASE = alignMemory(STACK_MAX);\r\n\r\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\r\n\r\nstaticSealed = true; // seal the static portion of memory\r\n\r\nvar ASSERTIONS = false;\r\n\r\n/** @type {function(string, boolean=, number=)} */\r\nfunction intArrayFromString(stringy, dontAddNull, length) {\r\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\r\n var u8array = new Array(len);\r\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\r\n if (dontAddNull) u8array.length = numBytesWritten;\r\n return u8array;\r\n}\r\n\r\nfunction intArrayToString(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var chr = array[i];\r\n if (chr > 0xFF) {\r\n if (ASSERTIONS) {\r\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\r\n }\r\n chr &= 0xFF;\r\n }\r\n ret.push(String.fromCharCode(chr));\r\n }\r\n return ret.join('');\r\n}\r\n\r\n\r\n\r\nModule['wasmTableSize'] = 1114;\r\n\r\nModule['wasmMaxTableSize'] = 1114;\r\n\r\nfunction invoke_i(index) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_i\"](index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ii(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_ii\"](index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iii\"](index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iiii\"](index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ji(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_ji\"](index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_v(index) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_v\"](index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vi(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_vi\"](index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_vii\"](index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viii\"](index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiii\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiii\"](index,a1,a2,a3,a4,a5,a6);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viij(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viij\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viji(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viji\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nModule.asmGlobalArg = {};\r\n\r\nModule.asmLibraryArg = { \"abort\": abort, \"assert\": assert, \"enlargeMemory\": enlargeMemory, \"getTotalMemory\": getTotalMemory, \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory, \"invoke_i\": invoke_i, \"invoke_ii\": invoke_ii, \"invoke_iii\": invoke_iii, \"invoke_iiii\": invoke_iiii, \"invoke_iiiii\": invoke_iiiii, \"invoke_iiiiii\": invoke_iiiiii, \"invoke_ji\": invoke_ji, \"invoke_v\": invoke_v, \"invoke_vi\": invoke_vi, \"invoke_vii\": invoke_vii, \"invoke_viii\": invoke_viii, \"invoke_viiii\": invoke_viiii, \"invoke_viiiii\": invoke_viiiii, \"invoke_viiiiii\": invoke_viiiiii, \"invoke_viiiiiii\": invoke_viiiiiii, \"invoke_viiiiiiiii\": invoke_viiiiiiiii, \"invoke_viiiiiiiiii\": invoke_viiiiiiiiii, \"invoke_viij\": invoke_viij, \"invoke_viji\": invoke_viji, \"__ZSt18uncaught_exceptionv\": __ZSt18uncaught_exceptionv, \"___assert_fail\": ___assert_fail, \"___cxa_allocate_exception\": ___cxa_allocate_exception, \"___cxa_begin_catch\": ___cxa_begin_catch, \"___cxa_end_catch\": ___cxa_end_catch, \"___cxa_find_matching_catch\": ___cxa_find_matching_catch, \"___cxa_find_matching_catch_2\": ___cxa_find_matching_catch_2, \"___cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3, \"___cxa_free_exception\": ___cxa_free_exception, \"___cxa_get_exception_ptr\": ___cxa_get_exception_ptr, \"___cxa_pure_virtual\": ___cxa_pure_virtual, \"___cxa_throw\": ___cxa_throw, \"___gxx_personality_v0\": ___gxx_personality_v0, \"___lock\": ___lock, \"___resumeException\": ___resumeException, \"___setErrNo\": ___setErrNo, \"___syscall140\": ___syscall140, \"___syscall146\": ___syscall146, \"___syscall54\": ___syscall54, \"___syscall6\": ___syscall6, \"___unlock\": ___unlock, \"__api_close_keyboard\": __api_close_keyboard, \"__api_open_keyboard\": __api_open_keyboard, \"__exit\": __exit, \"_abort\": _abort, \"_api_create_sound\": _api_create_sound, \"_api_create_sound_float\": _api_create_sound_float, \"_api_delete_sound\": _api_delete_sound, \"_api_draw_begin\": _api_draw_begin, \"_api_draw_belt\": _api_draw_belt, \"_api_draw_blit\": _api_draw_blit, \"_api_draw_clip_text\": _api_draw_clip_text, \"_api_draw_end\": _api_draw_end, \"_api_draw_text\": _api_draw_text, \"_api_duplicate_sound\": _api_duplicate_sound, \"_api_exit_game\": _api_exit_game, \"_api_play_sound\": _api_play_sound, \"_api_set_cursor\": _api_set_cursor, \"_api_set_volume\": _api_set_volume, \"_api_stop_sound\": _api_stop_sound, \"_api_websocket_closed\": _api_websocket_closed, \"_api_websocket_send\": _api_websocket_send, \"_emscripten_asm_const_ii\": _emscripten_asm_const_ii, \"_emscripten_memcpy_big\": _emscripten_memcpy_big, \"_exit\": _exit, \"_exit_error\": _exit_error, \"_get_file_contents\": _get_file_contents, \"_get_file_size\": _get_file_size, \"_llvm_ceil_f32\": _llvm_ceil_f32, \"_llvm_eh_typeid_for\": _llvm_eh_typeid_for, \"_llvm_trap\": _llvm_trap, \"_pthread_getspecific\": _pthread_getspecific, \"_pthread_key_create\": _pthread_key_create, \"_pthread_once\": _pthread_once, \"_pthread_setspecific\": _pthread_setspecific, \"_put_file_contents\": _put_file_contents, \"_remove_file\": _remove_file, \"_show_alert\": _show_alert, \"_time\": _time, \"_trace_pop\": _trace_pop, \"_trace_push\": _trace_push, \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM, \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR, \"tempDoublePtr\": tempDoublePtr, \"ABORT\": ABORT, \"STACKTOP\": STACKTOP, \"STACK_MAX\": STACK_MAX };\r\n// EMSCRIPTEN_START_ASM\r\nvar asm =Module[\"asm\"]// EMSCRIPTEN_END_ASM\r\n(Module.asmGlobalArg, Module.asmLibraryArg, buffer);\r\n\r\nModule[\"asm\"] = asm;\r\nvar _DApi_AllocPacket = Module[\"_DApi_AllocPacket\"] = function() { return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null, arguments) };\r\nvar _DApi_Char = Module[\"_DApi_Char\"] = function() { return Module[\"asm\"][\"_DApi_Char\"].apply(null, arguments) };\r\nvar _DApi_Init = Module[\"_DApi_Init\"] = function() { return Module[\"asm\"][\"_DApi_Init\"].apply(null, arguments) };\r\nvar _DApi_Key = Module[\"_DApi_Key\"] = function() { return Module[\"asm\"][\"_DApi_Key\"].apply(null, arguments) };\r\nvar _DApi_Mouse = Module[\"_DApi_Mouse\"] = function() { return Module[\"asm\"][\"_DApi_Mouse\"].apply(null, arguments) };\r\nvar _DApi_Render = Module[\"_DApi_Render\"] = function() { return Module[\"asm\"][\"_DApi_Render\"].apply(null, arguments) };\r\nvar _DApi_SyncText = Module[\"_DApi_SyncText\"] = function() { return Module[\"asm\"][\"_DApi_SyncText\"].apply(null, arguments) };\r\nvar _DApi_SyncTextPtr = Module[\"_DApi_SyncTextPtr\"] = function() { return Module[\"asm\"][\"_DApi_SyncTextPtr\"].apply(null, arguments) };\r\nvar _SNet_InitWebsocket = Module[\"_SNet_InitWebsocket\"] = function() { return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null, arguments) };\r\nvar __GLOBAL__sub_I_msgcmd_cpp = Module[\"__GLOBAL__sub_I_msgcmd_cpp\"] = function() { return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null, arguments) };\r\nvar __GLOBAL__sub_I_snet_cpp = Module[\"__GLOBAL__sub_I_snet_cpp\"] = function() { return Module[\"asm\"][\"__GLOBAL__sub_I_snet_cpp\"].apply(null, arguments) };\r\nvar ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function() { return Module[\"asm\"][\"___cxa_can_catch\"].apply(null, arguments) };\r\nvar ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function() { return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null, arguments) };\r\nvar ___em_js___api_close_keyboard = Module[\"___em_js___api_close_keyboard\"] = function() { return Module[\"asm\"][\"___em_js___api_close_keyboard\"].apply(null, arguments) };\r\nvar ___em_js___api_open_keyboard = Module[\"___em_js___api_open_keyboard\"] = function() { return Module[\"asm\"][\"___em_js___api_open_keyboard\"].apply(null, arguments) };\r\nvar ___em_js__api_create_sound = Module[\"___em_js__api_create_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_create_sound_float = Module[\"___em_js__api_create_sound_float\"] = function() { return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null, arguments) };\r\nvar ___em_js__api_delete_sound = Module[\"___em_js__api_delete_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_begin = Module[\"___em_js__api_draw_begin\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_belt = Module[\"___em_js__api_draw_belt\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_blit = Module[\"___em_js__api_draw_blit\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_clip_text = Module[\"___em_js__api_draw_clip_text\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_end = Module[\"___em_js__api_draw_end\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_text = Module[\"___em_js__api_draw_text\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null, arguments) };\r\nvar ___em_js__api_duplicate_sound = Module[\"___em_js__api_duplicate_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_exit_game = Module[\"___em_js__api_exit_game\"] = function() { return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null, arguments) };\r\nvar ___em_js__api_play_sound = Module[\"___em_js__api_play_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_set_cursor = Module[\"___em_js__api_set_cursor\"] = function() { return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null, arguments) };\r\nvar ___em_js__api_set_volume = Module[\"___em_js__api_set_volume\"] = function() { return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null, arguments) };\r\nvar ___em_js__api_stop_sound = Module[\"___em_js__api_stop_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_websocket_closed = Module[\"___em_js__api_websocket_closed\"] = function() { return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null, arguments) };\r\nvar ___em_js__api_websocket_send = Module[\"___em_js__api_websocket_send\"] = function() { return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null, arguments) };\r\nvar ___em_js__exit_error = Module[\"___em_js__exit_error\"] = function() { return Module[\"asm\"][\"___em_js__exit_error\"].apply(null, arguments) };\r\nvar ___em_js__get_file_contents = Module[\"___em_js__get_file_contents\"] = function() { return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null, arguments) };\r\nvar ___em_js__get_file_size = Module[\"___em_js__get_file_size\"] = function() { return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null, arguments) };\r\nvar ___em_js__put_file_contents = Module[\"___em_js__put_file_contents\"] = function() { return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null, arguments) };\r\nvar ___em_js__remove_file = Module[\"___em_js__remove_file\"] = function() { return Module[\"asm\"][\"___em_js__remove_file\"].apply(null, arguments) };\r\nvar ___em_js__show_alert = Module[\"___em_js__show_alert\"] = function() { return Module[\"asm\"][\"___em_js__show_alert\"].apply(null, arguments) };\r\nvar ___em_js__trace_pop = Module[\"___em_js__trace_pop\"] = function() { return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null, arguments) };\r\nvar ___em_js__trace_push = Module[\"___em_js__trace_push\"] = function() { return Module[\"asm\"][\"___em_js__trace_push\"].apply(null, arguments) };\r\nvar _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function() { return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments) };\r\nvar _free = Module[\"_free\"] = function() { return Module[\"asm\"][\"_free\"].apply(null, arguments) };\r\nvar _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function() { return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments) };\r\nvar _malloc = Module[\"_malloc\"] = function() { return Module[\"asm\"][\"_malloc\"].apply(null, arguments) };\r\nvar _memcpy = Module[\"_memcpy\"] = function() { return Module[\"asm\"][\"_memcpy\"].apply(null, arguments) };\r\nvar _memmove = Module[\"_memmove\"] = function() { return Module[\"asm\"][\"_memmove\"].apply(null, arguments) };\r\nvar _memset = Module[\"_memset\"] = function() { return Module[\"asm\"][\"_memset\"].apply(null, arguments) };\r\nvar _sbrk = Module[\"_sbrk\"] = function() { return Module[\"asm\"][\"_sbrk\"].apply(null, arguments) };\r\nvar establishStackSpace = Module[\"establishStackSpace\"] = function() { return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments) };\r\nvar getTempRet0 = Module[\"getTempRet0\"] = function() { return Module[\"asm\"][\"getTempRet0\"].apply(null, arguments) };\r\nvar runPostSets = Module[\"runPostSets\"] = function() { return Module[\"asm\"][\"runPostSets\"].apply(null, arguments) };\r\nvar setTempRet0 = Module[\"setTempRet0\"] = function() { return Module[\"asm\"][\"setTempRet0\"].apply(null, arguments) };\r\nvar setThrew = Module[\"setThrew\"] = function() { return Module[\"asm\"][\"setThrew\"].apply(null, arguments) };\r\nvar stackAlloc = Module[\"stackAlloc\"] = function() { return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments) };\r\nvar stackRestore = Module[\"stackRestore\"] = function() { return Module[\"asm\"][\"stackRestore\"].apply(null, arguments) };\r\nvar stackSave = Module[\"stackSave\"] = function() { return Module[\"asm\"][\"stackSave\"].apply(null, arguments) };\r\nvar dynCall_i = Module[\"dynCall_i\"] = function() { return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments) };\r\nvar dynCall_ii = Module[\"dynCall_ii\"] = function() { return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments) };\r\nvar dynCall_iii = Module[\"dynCall_iii\"] = function() { return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments) };\r\nvar dynCall_iiii = Module[\"dynCall_iiii\"] = function() { return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments) };\r\nvar dynCall_iiiii = Module[\"dynCall_iiiii\"] = function() { return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments) };\r\nvar dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = function() { return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null, arguments) };\r\nvar dynCall_ji = Module[\"dynCall_ji\"] = function() { return Module[\"asm\"][\"dynCall_ji\"].apply(null, arguments) };\r\nvar dynCall_v = Module[\"dynCall_v\"] = function() { return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments) };\r\nvar dynCall_vi = Module[\"dynCall_vi\"] = function() { return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments) };\r\nvar dynCall_vii = Module[\"dynCall_vii\"] = function() { return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments) };\r\nvar dynCall_viii = Module[\"dynCall_viii\"] = function() { return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments) };\r\nvar dynCall_viiii = Module[\"dynCall_viiii\"] = function() { return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments) };\r\nvar dynCall_viiiii = Module[\"dynCall_viiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiiii = Module[\"dynCall_viiiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiiiiii = Module[\"dynCall_viiiiiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiiiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiiiiiii = Module[\"dynCall_viiiiiiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiiiiiii\"].apply(null, arguments) };\r\nvar dynCall_viij = Module[\"dynCall_viij\"] = function() { return Module[\"asm\"][\"dynCall_viij\"].apply(null, arguments) };\r\nvar dynCall_viji = Module[\"dynCall_viji\"] = function() { return Module[\"asm\"][\"dynCall_viji\"].apply(null, arguments) };\r\n;\r\n\r\n\r\n\r\n// === Auto-generated postamble setup entry stuff ===\r\n\r\nModule['asm'] = asm;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Modularize mode returns a function, which can be called to\r\n// create instances. The instances provide a then() method,\r\n// must like a Promise, that receives a callback. The callback\r\n// is called when the module is ready to run, with the module\r\n// as a parameter. (Like a Promise, it also returns the module\r\n// so you can use the output of .then(..)).\r\nModule['then'] = function(func) {\r\n // We may already be ready to run code at this time. if\r\n // so, just queue a call to the callback.\r\n if (Module['calledRun']) {\r\n func(Module);\r\n } else {\r\n // we are not ready to call then() yet. we must call it\r\n // at the same time we would call onRuntimeInitialized.\r\n var old = Module['onRuntimeInitialized'];\r\n Module['onRuntimeInitialized'] = function() {\r\n if (old) old();\r\n func(Module);\r\n };\r\n }\r\n return Module;\r\n};\r\n\r\n/**\r\n * @constructor\r\n * @extends {Error}\r\n * @this {ExitStatus}\r\n */\r\nfunction ExitStatus(status) {\r\n this.name = \"ExitStatus\";\r\n this.message = \"Program terminated with exit(\" + status + \")\";\r\n this.status = status;\r\n};\r\nExitStatus.prototype = new Error();\r\nExitStatus.prototype.constructor = ExitStatus;\r\n\r\nvar initialStackTop;\r\nvar calledMain = false;\r\n\r\ndependenciesFulfilled = function runCaller() {\r\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\r\n if (!Module['calledRun']) run();\r\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\r\n}\r\n\r\n\r\n\r\n\r\n\r\n/** @type {function(Array=)} */\r\nfunction run(args) {\r\n args = args || Module['arguments'];\r\n\r\n if (runDependencies > 0) {\r\n return;\r\n }\r\n\r\n\r\n preRun();\r\n\r\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\r\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\r\n\r\n function doRun() {\r\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\r\n Module['calledRun'] = true;\r\n\r\n if (ABORT) return;\r\n\r\n ensureInitRuntime();\r\n\r\n preMain();\r\n\r\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\r\n\r\n\r\n postRun();\r\n }\r\n\r\n if (Module['setStatus']) {\r\n Module['setStatus']('Running...');\r\n setTimeout(function() {\r\n setTimeout(function() {\r\n Module['setStatus']('');\r\n }, 1);\r\n doRun();\r\n }, 1);\r\n } else {\r\n doRun();\r\n }\r\n}\r\nModule['run'] = run;\r\n\r\n\r\nfunction exit(status, implicit) {\r\n\r\n // if this is just main exit-ing implicitly, and the status is 0, then we\r\n // don't need to do anything here and can just leave. if the status is\r\n // non-zero, though, then we need to report it.\r\n // (we may have warned about this earlier, if a situation justifies doing so)\r\n if (implicit && Module['noExitRuntime'] && status === 0) {\r\n return;\r\n }\r\n\r\n if (Module['noExitRuntime']) {\r\n } else {\r\n\r\n ABORT = true;\r\n EXITSTATUS = status;\r\n STACKTOP = initialStackTop;\r\n\r\n exitRuntime();\r\n\r\n if (Module['onExit']) Module['onExit'](status);\r\n }\r\n\r\n Module['quit'](status, new ExitStatus(status));\r\n}\r\n\r\nvar abortDecorators = [];\r\n\r\nfunction abort(what) {\r\n if (Module['onAbort']) {\r\n Module['onAbort'](what);\r\n }\r\n\r\n if (what !== undefined) {\r\n out(what);\r\n err(what);\r\n what = JSON.stringify(what)\r\n } else {\r\n what = '';\r\n }\r\n\r\n ABORT = true;\r\n EXITSTATUS = 1;\r\n\r\n throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\r\n}\r\nModule['abort'] = abort;\r\n\r\n// {{PRE_RUN_ADDITIONS}}\r\n\r\nif (Module['preInit']) {\r\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\r\n while (Module['preInit'].length > 0) {\r\n Module['preInit'].pop()();\r\n }\r\n}\r\n\r\n\r\nModule[\"noExitRuntime\"] = true;\r\n\r\nrun();\r\n\r\n// {{POST_RUN_ADDITIONS}}\r\n\r\n\r\n\r\n\r\n\r\n// {{MODULE_ADDITIONS}}\r\n\r\n\r\n\r\nModule['ready'] = new Promise(function (resolve, reject) {\r\n delete Module['then']\r\n Module['onAbort'] = function (what) {\r\n reject(what)\r\n }\r\n addOnPostRun(function () {\r\n resolve(Module)\r\n })\r\n});\r\n\r\n\r\n\r\n return Diablo;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.ef6314a9.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\n// The Module object: Our interface to the outside world. We import\r\n// and export values on it. There are various ways Module can be used:\r\n// 1. Not defined. We create it here\r\n// 2. A function parameter, function(Module) { ..generated code.. }\r\n// 3. pre-run appended it, var Module = {}; ..generated code..\r\n// 4. External script tag defines var Module.\r\n// We need to check if Module already exists (e.g. case 3 above).\r\n// Substitution will be replaced with actual code on later stage of the build,\r\n// this way Closure Compiler will not mangle it (e.g. case 4. above).\r\n// Note that if you want to run closure, and also to use Module\r\n// after the generated code, you will need to define var Module = {};\r\n// before the code. Then that object will be used in the code, and you\r\n// can continue to use Module afterwards as well.\r\nvar Module = typeof DiabloSpawn !== 'undefined' ? DiabloSpawn : {};\r\n\r\n// --pre-jses are emitted after the Module integration code, so that they can\r\n// refer to Module (if they choose; they can also define Module)\r\n\r\n\r\n// Sometimes an existing Module object exists with properties\r\n// meant to overwrite the default module functionality. Here\r\n// we collect those properties and reapply _after_ we configure\r\n// the current environment's defaults to avoid having to be so\r\n// defensive during initialization.\r\nvar moduleOverrides = {};\r\nvar key;\r\nfor (key in Module) {\r\n if (Module.hasOwnProperty(key)) {\r\n moduleOverrides[key] = Module[key];\r\n }\r\n}\r\n\r\nModule['arguments'] = [];\r\nModule['thisProgram'] = './this.program';\r\nModule['quit'] = function(status, toThrow) {\r\n throw toThrow;\r\n};\r\nModule['preRun'] = [];\r\nModule['postRun'] = [];\r\n\r\n// The environment setup code below is customized to use Module.\r\n// *** Environment setup code ***\r\n\r\nvar ENVIRONMENT_IS_WEB = false;\r\nvar ENVIRONMENT_IS_WORKER = false;\r\nvar ENVIRONMENT_IS_NODE = false;\r\nvar ENVIRONMENT_IS_SHELL = false;\r\nENVIRONMENT_IS_WEB = typeof window === 'object';\r\nENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\r\nENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\r\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\r\n\r\n\r\n// Three configurations we can be running in:\r\n// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\r\n// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\r\n// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\r\n\r\n\r\n// `/` should be present at the end if `scriptDirectory` is not empty\r\nvar scriptDirectory = '';\r\nfunction locateFile(path) {\r\n if (Module['locateFile']) {\r\n return Module['locateFile'](path, scriptDirectory);\r\n } else {\r\n return scriptDirectory + path;\r\n }\r\n}\r\n\r\nif (ENVIRONMENT_IS_NODE) {\r\n scriptDirectory = __dirname + '/';\r\n\r\n // Expose functionality in the same simple way that the shells work\r\n // Note that we pollute the global namespace here, otherwise we break in node\r\n var nodeFS;\r\n var nodePath;\r\n\r\n Module['read'] = function shell_read(filename, binary) {\r\n var ret;\r\n if (!nodeFS) nodeFS = require('fs');\r\n if (!nodePath) nodePath = require('path');\r\n filename = nodePath['normalize'](filename);\r\n ret = nodeFS['readFileSync'](filename);\r\n return binary ? ret : ret.toString();\r\n };\r\n\r\n Module['readBinary'] = function readBinary(filename) {\r\n var ret = Module['read'](filename, true);\r\n if (!ret.buffer) {\r\n ret = new Uint8Array(ret);\r\n }\r\n assert(ret.buffer);\r\n return ret;\r\n };\r\n\r\n if (process['argv'].length > 1) {\r\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\r\n }\r\n\r\n Module['arguments'] = process['argv'].slice(2);\r\n\r\n // MODULARIZE will export the module in the proper place outside, we don't need to export here\r\n\r\n process['on']('uncaughtException', function(ex) {\r\n // suppress ExitStatus exceptions from showing an error\r\n if (!(ex instanceof ExitStatus)) {\r\n throw ex;\r\n }\r\n });\r\n // Currently node will swallow unhandled rejections, but this behavior is\r\n // deprecated, and in the future it will exit with error status.\r\n process['on']('unhandledRejection', function(reason, p) {\r\n process['exit'](1);\r\n });\r\n\r\n Module['quit'] = function(status) {\r\n process['exit'](status);\r\n };\r\n\r\n Module['inspect'] = function () { return '[Emscripten Module object]'; };\r\n} else\r\nif (ENVIRONMENT_IS_SHELL) {\r\n\r\n\r\n if (typeof read != 'undefined') {\r\n Module['read'] = function shell_read(f) {\r\n return read(f);\r\n };\r\n }\r\n\r\n Module['readBinary'] = function readBinary(f) {\r\n var data;\r\n if (typeof readbuffer === 'function') {\r\n return new Uint8Array(readbuffer(f));\r\n }\r\n data = read(f, 'binary');\r\n assert(typeof data === 'object');\r\n return data;\r\n };\r\n\r\n if (typeof scriptArgs != 'undefined') {\r\n Module['arguments'] = scriptArgs;\r\n } else if (typeof arguments != 'undefined') {\r\n Module['arguments'] = arguments;\r\n }\r\n\r\n if (typeof quit === 'function') {\r\n Module['quit'] = function(status) {\r\n quit(status);\r\n }\r\n }\r\n} else\r\nif (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\r\n if (ENVIRONMENT_IS_WEB) {\r\n if (document.currentScript) {\r\n scriptDirectory = document.currentScript.src;\r\n }\r\n } else { // worker\r\n scriptDirectory = self.location.href;\r\n }\r\n // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\r\n // is gone, so we saved it, and we use it here instead of any other info.\r\n if (_scriptDir) {\r\n scriptDirectory = _scriptDir;\r\n }\r\n // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\r\n // otherwise, slice off the final part of the url to find the script directory.\r\n if (scriptDirectory.indexOf('blob:') !== 0) {\r\n scriptDirectory = scriptDirectory.split('/').slice(0, -1).join('/') + '/';\r\n } else {\r\n scriptDirectory = '';\r\n }\r\n\r\n\r\n Module['read'] = function shell_read(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send(null);\r\n return xhr.responseText;\r\n };\r\n\r\n if (ENVIRONMENT_IS_WORKER) {\r\n Module['readBinary'] = function readBinary(url) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.send(null);\r\n return new Uint8Array(xhr.response);\r\n };\r\n }\r\n\r\n Module['readAsync'] = function readAsync(url, onload, onerror) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'arraybuffer';\r\n xhr.onload = function xhr_onload() {\r\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0\r\n onload(xhr.response);\r\n return;\r\n }\r\n onerror();\r\n };\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n };\r\n\r\n Module['setWindowTitle'] = function(title) { document.title = title };\r\n} else\r\n{\r\n}\r\n\r\n// Set up the out() and err() hooks, which are how we can print to stdout or\r\n// stderr, respectively.\r\n// If the user provided Module.print or printErr, use that. Otherwise,\r\n// console.log is checked first, as 'print' on the web will open a print dialogue\r\n// printErr is preferable to console.warn (works better in shells)\r\n// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\r\nvar out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));\r\nvar err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));\r\n\r\n// *** Environment setup code ***\r\n\r\n// Merge back in the overrides\r\nfor (key in moduleOverrides) {\r\n if (moduleOverrides.hasOwnProperty(key)) {\r\n Module[key] = moduleOverrides[key];\r\n }\r\n}\r\n// Free the object hierarchy contained in the overrides, this lets the GC\r\n// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\r\nmoduleOverrides = undefined;\r\n\r\n\r\n\r\n// {{PREAMBLE_ADDITIONS}}\r\n\r\nvar STACK_ALIGN = 16;\r\n\r\n\r\nfunction staticAlloc(size) {\r\n var ret = STATICTOP;\r\n STATICTOP = (STATICTOP + size + 15) & -16;\r\n return ret;\r\n}\r\n\r\nfunction dynamicAlloc(size) {\r\n var ret = HEAP32[DYNAMICTOP_PTR>>2];\r\n var end = (ret + size + 15) & -16;\r\n HEAP32[DYNAMICTOP_PTR>>2] = end;\r\n if (end >= TOTAL_MEMORY) {\r\n var success = enlargeMemory();\r\n if (!success) {\r\n HEAP32[DYNAMICTOP_PTR>>2] = ret;\r\n return 0;\r\n }\r\n }\r\n return ret;\r\n}\r\n\r\nfunction alignMemory(size, factor) {\r\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\r\n var ret = size = Math.ceil(size / factor) * factor;\r\n return ret;\r\n}\r\n\r\nfunction getNativeTypeSize(type) {\r\n switch (type) {\r\n case 'i1': case 'i8': return 1;\r\n case 'i16': return 2;\r\n case 'i32': return 4;\r\n case 'i64': return 8;\r\n case 'float': return 4;\r\n case 'double': return 8;\r\n default: {\r\n if (type[type.length-1] === '*') {\r\n return 4; // A pointer\r\n } else if (type[0] === 'i') {\r\n var bits = parseInt(type.substr(1));\r\n assert(bits % 8 === 0);\r\n return bits / 8;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction warnOnce(text) {\r\n if (!warnOnce.shown) warnOnce.shown = {};\r\n if (!warnOnce.shown[text]) {\r\n warnOnce.shown[text] = 1;\r\n err(text);\r\n }\r\n}\r\n\r\nvar asm2wasmImports = { // special asm2wasm imports\r\n \"f64-rem\": function(x, y) {\r\n return x % y;\r\n },\r\n \"debugger\": function() {\r\n debugger;\r\n }\r\n};\r\n\r\n\r\n\r\nvar jsCallStartIndex = 1;\r\nvar functionPointers = new Array(0);\r\n\r\n// 'sig' parameter is only used on LLVM wasm backend\r\nfunction addFunction(func, sig) {\r\n var base = 0;\r\n for (var i = base; i < base + 0; i++) {\r\n if (!functionPointers[i]) {\r\n functionPointers[i] = func;\r\n return jsCallStartIndex + i;\r\n }\r\n }\r\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\r\n}\r\n\r\nfunction removeFunction(index) {\r\n functionPointers[index-jsCallStartIndex] = null;\r\n}\r\n\r\nvar funcWrappers = {};\r\n\r\nfunction getFuncWrapper(func, sig) {\r\n if (!func) return; // on null pointer, return undefined\r\n assert(sig);\r\n if (!funcWrappers[sig]) {\r\n funcWrappers[sig] = {};\r\n }\r\n var sigCache = funcWrappers[sig];\r\n if (!sigCache[func]) {\r\n // optimize away arguments usage in common cases\r\n if (sig.length === 1) {\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func);\r\n };\r\n } else if (sig.length === 2) {\r\n sigCache[func] = function dynCall_wrapper(arg) {\r\n return dynCall(sig, func, [arg]);\r\n };\r\n } else {\r\n // general case\r\n sigCache[func] = function dynCall_wrapper() {\r\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\r\n };\r\n }\r\n }\r\n return sigCache[func];\r\n}\r\n\r\n\r\nfunction makeBigInt(low, high, unsigned) {\r\n return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));\r\n}\r\n\r\nfunction dynCall(sig, ptr, args) {\r\n if (args && args.length) {\r\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\r\n } else {\r\n return Module['dynCall_' + sig].call(null, ptr);\r\n }\r\n}\r\n\r\n\r\n\r\nvar Runtime = {\r\n // FIXME backwards compatibility layer for ports. Support some Runtime.*\r\n // for now, fix it there, then remove it from here. That way we\r\n // can minimize any period of breakage.\r\n dynCall: dynCall, // for SDL2 port\r\n};\r\n\r\n// The address globals begin at. Very low in memory, for code size and optimization opportunities.\r\n// Above 0 is static memory, starting with globals.\r\n// Then the stack.\r\n// Then 'dynamic' memory for sbrk.\r\nvar GLOBAL_BASE = 1024;\r\n\r\n\r\n// === Preamble library stuff ===\r\n\r\n// Documentation for the public APIs defined in this file must be updated in:\r\n// site/source/docs/api_reference/preamble.js.rst\r\n// A prebuilt local version of the documentation is available at:\r\n// site/build/text/docs/api_reference/preamble.js.txt\r\n// You can also build docs locally as HTML or other formats in site/\r\n// An online HTML version (which may be of a different version of Emscripten)\r\n// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\r\n\r\n\r\n\r\n//========================================\r\n// Runtime essentials\r\n//========================================\r\n\r\nvar ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort()\r\nvar EXITSTATUS = 0;\r\n\r\n/** @type {function(*, string=)} */\r\nfunction assert(condition, text) {\r\n if (!condition) {\r\n abort('Assertion failed: ' + text);\r\n }\r\n}\r\n\r\nvar globalScope = this;\r\n\r\n// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\r\nfunction getCFunc(ident) {\r\n var func = Module['_' + ident]; // closure exported function\r\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\r\n return func;\r\n}\r\n\r\nvar JSfuncs = {\r\n // Helpers for cwrap -- it can't refer to Runtime directly because it might\r\n // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find\r\n // out what the minified function name is.\r\n 'stackSave': function() {\r\n stackSave()\r\n },\r\n 'stackRestore': function() {\r\n stackRestore()\r\n },\r\n // type conversion from js to c\r\n 'arrayToC' : function(arr) {\r\n var ret = stackAlloc(arr.length);\r\n writeArrayToMemory(arr, ret);\r\n return ret;\r\n },\r\n 'stringToC' : function(str) {\r\n var ret = 0;\r\n if (str !== null && str !== undefined && str !== 0) { // null string\r\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\r\n var len = (str.length << 2) + 1;\r\n ret = stackAlloc(len);\r\n stringToUTF8(str, ret, len);\r\n }\r\n return ret;\r\n }\r\n};\r\n\r\n// For fast lookup of conversion functions\r\nvar toC = {\r\n 'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC']\r\n};\r\n\r\n\r\n// C calling interface.\r\nfunction ccall(ident, returnType, argTypes, args, opts) {\r\n function convertReturnValue(ret) {\r\n if (returnType === 'string') return Pointer_stringify(ret);\r\n if (returnType === 'boolean') return Boolean(ret);\r\n return ret;\r\n }\r\n\r\n var func = getCFunc(ident);\r\n var cArgs = [];\r\n var stack = 0;\r\n if (args) {\r\n for (var i = 0; i < args.length; i++) {\r\n var converter = toC[argTypes[i]];\r\n if (converter) {\r\n if (stack === 0) stack = stackSave();\r\n cArgs[i] = converter(args[i]);\r\n } else {\r\n cArgs[i] = args[i];\r\n }\r\n }\r\n }\r\n var ret = func.apply(null, cArgs);\r\n ret = convertReturnValue(ret);\r\n if (stack !== 0) stackRestore(stack);\r\n return ret;\r\n}\r\n\r\nfunction cwrap(ident, returnType, argTypes, opts) {\r\n argTypes = argTypes || [];\r\n // When the function takes numbers and returns a number, we can just return\r\n // the original function\r\n var numericArgs = argTypes.every(function(type){ return type === 'number'});\r\n var numericRet = returnType !== 'string';\r\n if (numericRet && numericArgs && !opts) {\r\n return getCFunc(ident);\r\n }\r\n return function() {\r\n return ccall(ident, returnType, argTypes, arguments, opts);\r\n }\r\n}\r\n\r\n/** @type {function(number, number, string, boolean=)} */\r\nfunction setValue(ptr, value, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i8': HEAP8[((ptr)>>0)]=value; break;\r\n case 'i16': HEAP16[((ptr)>>1)]=value; break;\r\n case 'i32': HEAP32[((ptr)>>2)]=value; break;\r\n case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;\r\n case 'float': HEAPF32[((ptr)>>2)]=value; break;\r\n case 'double': HEAPF64[((ptr)>>3)]=value; break;\r\n default: abort('invalid type for setValue: ' + type);\r\n }\r\n}\r\n\r\n/** @type {function(number, string, boolean=)} */\r\nfunction getValue(ptr, type, noSafe) {\r\n type = type || 'i8';\r\n if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit\r\n switch(type) {\r\n case 'i1': return HEAP8[((ptr)>>0)];\r\n case 'i8': return HEAP8[((ptr)>>0)];\r\n case 'i16': return HEAP16[((ptr)>>1)];\r\n case 'i32': return HEAP32[((ptr)>>2)];\r\n case 'i64': return HEAP32[((ptr)>>2)];\r\n case 'float': return HEAPF32[((ptr)>>2)];\r\n case 'double': return HEAPF64[((ptr)>>3)];\r\n default: abort('invalid type for getValue: ' + type);\r\n }\r\n return null;\r\n}\r\n\r\nvar ALLOC_NORMAL = 0; // Tries to use _malloc()\r\nvar ALLOC_STACK = 1; // Lives for the duration of the current function call\r\nvar ALLOC_STATIC = 2; // Cannot be freed\r\nvar ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk\r\nvar ALLOC_NONE = 4; // Do not allocate\r\n\r\n// allocate(): This is for internal use. You can use it yourself as well, but the interface\r\n// is a little tricky (see docs right below). The reason is that it is optimized\r\n// for multiple syntaxes to save space in generated code. So you should\r\n// normally not use allocate(), and instead allocate memory using _malloc(),\r\n// initialize it with setValue(), and so forth.\r\n// @slab: An array of data, or a number. If a number, then the size of the block to allocate,\r\n// in *bytes* (note that this is sometimes confusing: the next parameter does not\r\n// affect this!)\r\n// @types: Either an array of types, one for each byte (or 0 if no type at that position),\r\n// or a single type which is used for the entire block. This only matters if there\r\n// is initial data - if @slab is a number, then this does not matter at all and is\r\n// ignored.\r\n// @allocator: How to allocate memory, see ALLOC_*\r\n/** @type {function((TypedArray|Array|number), string, number, number=)} */\r\nfunction allocate(slab, types, allocator, ptr) {\r\n var zeroinit, size;\r\n if (typeof slab === 'number') {\r\n zeroinit = true;\r\n size = slab;\r\n } else {\r\n zeroinit = false;\r\n size = slab.length;\r\n }\r\n\r\n var singleType = typeof types === 'string' ? types : null;\r\n\r\n var ret;\r\n if (allocator == ALLOC_NONE) {\r\n ret = ptr;\r\n } else {\r\n ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));\r\n }\r\n\r\n if (zeroinit) {\r\n var stop;\r\n ptr = ret;\r\n assert((ret & 3) == 0);\r\n stop = ret + (size & ~3);\r\n for (; ptr < stop; ptr += 4) {\r\n HEAP32[((ptr)>>2)]=0;\r\n }\r\n stop = ret + size;\r\n while (ptr < stop) {\r\n HEAP8[((ptr++)>>0)]=0;\r\n }\r\n return ret;\r\n }\r\n\r\n if (singleType === 'i8') {\r\n if (slab.subarray || slab.slice) {\r\n HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);\r\n } else {\r\n HEAPU8.set(new Uint8Array(slab), ret);\r\n }\r\n return ret;\r\n }\r\n\r\n var i = 0, type, typeSize, previousType;\r\n while (i < size) {\r\n var curr = slab[i];\r\n\r\n type = singleType || types[i];\r\n if (type === 0) {\r\n i++;\r\n continue;\r\n }\r\n\r\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\r\n\r\n setValue(ret+i, curr, type);\r\n\r\n // no need to look up size unless type changes, so cache it\r\n if (previousType !== type) {\r\n typeSize = getNativeTypeSize(type);\r\n previousType = type;\r\n }\r\n i += typeSize;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\r\nfunction getMemory(size) {\r\n if (!staticSealed) return staticAlloc(size);\r\n if (!runtimeInitialized) return dynamicAlloc(size);\r\n return _malloc(size);\r\n}\r\n\r\n/** @type {function(number, number=)} */\r\nfunction Pointer_stringify(ptr, length) {\r\n if (length === 0 || !ptr) return '';\r\n // Find the length, and check for UTF while doing so\r\n var hasUtf = 0;\r\n var t;\r\n var i = 0;\r\n while (1) {\r\n t = HEAPU8[(((ptr)+(i))>>0)];\r\n hasUtf |= t;\r\n if (t == 0 && !length) break;\r\n i++;\r\n if (length && i == length) break;\r\n }\r\n if (!length) length = i;\r\n\r\n var ret = '';\r\n\r\n if (hasUtf < 128) {\r\n var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack\r\n var curr;\r\n while (length > 0) {\r\n curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));\r\n ret = ret ? ret + curr : curr;\r\n ptr += MAX_CHUNK;\r\n length -= MAX_CHUNK;\r\n }\r\n return ret;\r\n }\r\n return UTF8ToString(ptr);\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction AsciiToString(ptr) {\r\n var str = '';\r\n while (1) {\r\n var ch = HEAP8[((ptr++)>>0)];\r\n if (!ch) return str;\r\n str += String.fromCharCode(ch);\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\r\n\r\nfunction stringToAscii(str, outPtr) {\r\n return writeAsciiToMemory(str, outPtr, false);\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\r\nfunction UTF8ArrayToString(u8Array, idx) {\r\n var endPtr = idx;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n while (u8Array[endPtr]) ++endPtr;\r\n\r\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\r\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\r\n } else {\r\n var u0, u1, u2, u3, u4, u5;\r\n\r\n var str = '';\r\n while (1) {\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n u0 = u8Array[idx++];\r\n if (!u0) return str;\r\n if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }\r\n u1 = u8Array[idx++] & 63;\r\n if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }\r\n u2 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF0) == 0xE0) {\r\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\r\n } else {\r\n u3 = u8Array[idx++] & 63;\r\n if ((u0 & 0xF8) == 0xF0) {\r\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;\r\n } else {\r\n u4 = u8Array[idx++] & 63;\r\n if ((u0 & 0xFC) == 0xF8) {\r\n u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;\r\n } else {\r\n u5 = u8Array[idx++] & 63;\r\n u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;\r\n }\r\n }\r\n }\r\n if (u0 < 0x10000) {\r\n str += String.fromCharCode(u0);\r\n } else {\r\n var ch = u0 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n }\r\n }\r\n }\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nfunction UTF8ToString(ptr) {\r\n return UTF8ArrayToString(HEAPU8,ptr);\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\r\n// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\r\n// outIdx: The starting offset in the array to begin the copying.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array.\r\n// This count should include the null terminator,\r\n// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\r\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\r\n return 0;\r\n\r\n var startIdx = outIdx;\r\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) {\r\n var u1 = str.charCodeAt(++i);\r\n u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);\r\n }\r\n if (u <= 0x7F) {\r\n if (outIdx >= endIdx) break;\r\n outU8Array[outIdx++] = u;\r\n } else if (u <= 0x7FF) {\r\n if (outIdx + 1 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xC0 | (u >> 6);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0xFFFF) {\r\n if (outIdx + 2 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xE0 | (u >> 12);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0x1FFFFF) {\r\n if (outIdx + 3 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF0 | (u >> 18);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else if (u <= 0x3FFFFFF) {\r\n if (outIdx + 4 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xF8 | (u >> 24);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n } else {\r\n if (outIdx + 5 >= endIdx) break;\r\n outU8Array[outIdx++] = 0xFC | (u >> 30);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);\r\n outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);\r\n outU8Array[outIdx++] = 0x80 | (u & 63);\r\n }\r\n }\r\n // Null-terminate the pointer to the buffer.\r\n outU8Array[outIdx] = 0;\r\n return outIdx - startIdx;\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\r\n return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF8(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var u = str.charCodeAt(i); // possibly a lead surrogate\r\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);\r\n if (u <= 0x7F) {\r\n ++len;\r\n } else if (u <= 0x7FF) {\r\n len += 2;\r\n } else if (u <= 0xFFFF) {\r\n len += 3;\r\n } else if (u <= 0x1FFFFF) {\r\n len += 4;\r\n } else if (u <= 0x3FFFFFF) {\r\n len += 5;\r\n } else {\r\n len += 6;\r\n }\r\n }\r\n return len;\r\n}\r\n\r\n// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\r\n// a copy of that string as a Javascript String object.\r\n\r\nvar UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\r\nfunction UTF16ToString(ptr) {\r\n var endPtr = ptr;\r\n // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\r\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\r\n var idx = endPtr >> 1;\r\n while (HEAP16[idx]) ++idx;\r\n endPtr = idx << 1;\r\n\r\n if (endPtr - ptr > 32 && UTF16Decoder) {\r\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\r\n } else {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];\r\n if (codeUnit == 0) return str;\r\n ++i;\r\n // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\r\n str += String.fromCharCode(codeUnit);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF16(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 2) return 0;\r\n maxBytesToWrite -= 2; // Null terminator.\r\n var startPtr = outPtr;\r\n var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;\r\n for (var i = 0; i < numCharsToWrite; ++i) {\r\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n HEAP16[((outPtr)>>1)]=codeUnit;\r\n outPtr += 2;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP16[((outPtr)>>1)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF16(str) {\r\n return str.length*2;\r\n}\r\n\r\nfunction UTF32ToString(ptr) {\r\n var i = 0;\r\n\r\n var str = '';\r\n while (1) {\r\n var utf32 = HEAP32[(((ptr)+(i*4))>>2)];\r\n if (utf32 == 0)\r\n return str;\r\n ++i;\r\n // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n if (utf32 >= 0x10000) {\r\n var ch = utf32 - 0x10000;\r\n str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));\r\n } else {\r\n str += String.fromCharCode(utf32);\r\n }\r\n }\r\n}\r\n\r\n// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\r\n// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\r\n// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\r\n// Parameters:\r\n// str: the Javascript string to copy.\r\n// outPtr: Byte address in Emscripten HEAP where to write the string to.\r\n// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\r\n// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\r\n// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\r\n// Returns the number of bytes written, EXCLUDING the null terminator.\r\n\r\nfunction stringToUTF32(str, outPtr, maxBytesToWrite) {\r\n // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\r\n if (maxBytesToWrite === undefined) {\r\n maxBytesToWrite = 0x7FFFFFFF;\r\n }\r\n if (maxBytesToWrite < 4) return 0;\r\n var startPtr = outPtr;\r\n var endPtr = startPtr + maxBytesToWrite - 4;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\r\n var trailSurrogate = str.charCodeAt(++i);\r\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);\r\n }\r\n HEAP32[((outPtr)>>2)]=codeUnit;\r\n outPtr += 4;\r\n if (outPtr + 4 > endPtr) break;\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n HEAP32[((outPtr)>>2)]=0;\r\n return outPtr - startPtr;\r\n}\r\n\r\n// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\r\n\r\nfunction lengthBytesUTF32(str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\r\n // See http://unicode.org/faq/utf_bom.html#utf16-3\r\n var codeUnit = str.charCodeAt(i);\r\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\r\n len += 4;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n// Allocate heap space for a JS string, and write it there.\r\n// It is the responsibility of the caller to free() that memory.\r\nfunction allocateUTF8(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = _malloc(size);\r\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\n// Allocate stack space for a JS string, and write it there.\r\nfunction allocateUTF8OnStack(str) {\r\n var size = lengthBytesUTF8(str) + 1;\r\n var ret = stackAlloc(size);\r\n stringToUTF8Array(str, HEAP8, ret, size);\r\n return ret;\r\n}\r\n\r\nfunction demangle(func) {\r\n return func;\r\n}\r\n\r\nfunction demangleAll(text) {\r\n var regex =\r\n /__Z[\\w\\d_]+/g;\r\n return text.replace(regex,\r\n function(x) {\r\n var y = demangle(x);\r\n return x === y ? x : (x + ' [' + y + ']');\r\n });\r\n}\r\n\r\nfunction jsStackTrace() {\r\n var err = new Error();\r\n if (!err.stack) {\r\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\r\n // so try that as a special-case.\r\n try {\r\n throw new Error(0);\r\n } catch(e) {\r\n err = e;\r\n }\r\n if (!err.stack) {\r\n return '(no stack trace available)';\r\n }\r\n }\r\n return err.stack.toString();\r\n}\r\n\r\nfunction stackTrace() {\r\n var js = jsStackTrace();\r\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\r\n return demangleAll(js);\r\n}\r\n\r\n// Memory management\r\n\r\nvar PAGE_SIZE = 16384;\r\nvar WASM_PAGE_SIZE = 65536;\r\nvar ASMJS_PAGE_SIZE = 16777216;\r\nvar MIN_TOTAL_MEMORY = 16777216;\r\n\r\nfunction alignUp(x, multiple) {\r\n if (x % multiple > 0) {\r\n x += multiple - (x % multiple);\r\n }\r\n return x;\r\n}\r\n\r\nvar HEAP,\r\n/** @type {ArrayBuffer} */\r\n buffer,\r\n/** @type {Int8Array} */\r\n HEAP8,\r\n/** @type {Uint8Array} */\r\n HEAPU8,\r\n/** @type {Int16Array} */\r\n HEAP16,\r\n/** @type {Uint16Array} */\r\n HEAPU16,\r\n/** @type {Int32Array} */\r\n HEAP32,\r\n/** @type {Uint32Array} */\r\n HEAPU32,\r\n/** @type {Float32Array} */\r\n HEAPF32,\r\n/** @type {Float64Array} */\r\n HEAPF64;\r\n\r\nfunction updateGlobalBuffer(buf) {\r\n Module['buffer'] = buffer = buf;\r\n}\r\n\r\nfunction updateGlobalBufferViews() {\r\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\r\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\r\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\r\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\r\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\r\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\r\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\r\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\r\n}\r\n\r\nvar STATIC_BASE, STATICTOP, staticSealed; // static area\r\nvar STACK_BASE, STACKTOP, STACK_MAX; // stack area\r\nvar DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk\r\n\r\n STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;\r\n staticSealed = false;\r\n\r\n\r\n\r\n\r\nfunction abortOnCannotGrowMemory() {\r\n abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');\r\n}\r\n\r\nif (!Module['reallocBuffer']) Module['reallocBuffer'] = function(size) {\r\n var ret;\r\n try {\r\n if (ArrayBuffer.transfer) {\r\n ret = ArrayBuffer.transfer(buffer, size);\r\n } else {\r\n var oldHEAP8 = HEAP8;\r\n ret = new ArrayBuffer(size);\r\n var temp = new Int8Array(ret);\r\n temp.set(oldHEAP8);\r\n }\r\n } catch(e) {\r\n return false;\r\n }\r\n var success = _emscripten_replace_memory(ret);\r\n if (!success) return false;\r\n return ret;\r\n};\r\n\r\nfunction enlargeMemory() {\r\n // TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top.\r\n\r\n\r\n var PAGE_MULTIPLE = Module[\"usingWasm\"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\r\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\r\n\r\n if (HEAP32[DYNAMICTOP_PTR>>2] > LIMIT) {\r\n return false;\r\n }\r\n\r\n var OLD_TOTAL_MEMORY = TOTAL_MEMORY;\r\n TOTAL_MEMORY = Math.max(TOTAL_MEMORY, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\r\n\r\n while (TOTAL_MEMORY < HEAP32[DYNAMICTOP_PTR>>2]) { // Keep incrementing the heap size as long as it's less than what is requested.\r\n if (TOTAL_MEMORY <= 536870912) {\r\n TOTAL_MEMORY = alignUp(2 * TOTAL_MEMORY, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\r\n } else {\r\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\r\n TOTAL_MEMORY = Math.min(alignUp((3 * TOTAL_MEMORY + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\r\n }\r\n }\r\n\r\n\r\n var replacement = Module['reallocBuffer'](TOTAL_MEMORY);\r\n if (!replacement || replacement.byteLength != TOTAL_MEMORY) {\r\n // restore the state to before this call, we failed\r\n TOTAL_MEMORY = OLD_TOTAL_MEMORY;\r\n return false;\r\n }\r\n\r\n // everything worked\r\n\r\n updateGlobalBuffer(replacement);\r\n updateGlobalBufferViews();\r\n\r\n\r\n\r\n return true;\r\n}\r\n\r\nvar byteLength;\r\ntry {\r\n byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get);\r\n byteLength(new ArrayBuffer(4)); // can fail on older ie\r\n} catch(e) { // can fail on older node/v8\r\n byteLength = function(buffer) { return buffer.byteLength; };\r\n}\r\n\r\nvar TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;\r\nvar TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;\r\nif (TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\r\n\r\n// Initialize the runtime's memory\r\n\r\n\r\n\r\n// Use a provided buffer, if there is one, or else allocate a new one\r\nif (Module['buffer']) {\r\n buffer = Module['buffer'];\r\n} else {\r\n // Use a WebAssembly memory where available\r\n if (typeof WebAssembly === 'object' && typeof WebAssembly.Memory === 'function') {\r\n Module['wasmMemory'] = new WebAssembly.Memory({ 'initial': TOTAL_MEMORY / WASM_PAGE_SIZE });\r\n buffer = Module['wasmMemory'].buffer;\r\n } else\r\n {\r\n buffer = new ArrayBuffer(TOTAL_MEMORY);\r\n }\r\n Module['buffer'] = buffer;\r\n}\r\nupdateGlobalBufferViews();\r\n\r\n\r\nfunction getTotalMemory() {\r\n return TOTAL_MEMORY;\r\n}\r\n\r\n// Endianness check (note: assumes compiler arch was little-endian)\r\n\r\nfunction callRuntimeCallbacks(callbacks) {\r\n while(callbacks.length > 0) {\r\n var callback = callbacks.shift();\r\n if (typeof callback == 'function') {\r\n callback();\r\n continue;\r\n }\r\n var func = callback.func;\r\n if (typeof func === 'number') {\r\n if (callback.arg === undefined) {\r\n Module['dynCall_v'](func);\r\n } else {\r\n Module['dynCall_vi'](func, callback.arg);\r\n }\r\n } else {\r\n func(callback.arg === undefined ? null : callback.arg);\r\n }\r\n }\r\n}\r\n\r\nvar __ATPRERUN__ = []; // functions called before the runtime is initialized\r\nvar __ATINIT__ = []; // functions called during startup\r\nvar __ATMAIN__ = []; // functions called when main() is to be run\r\nvar __ATEXIT__ = []; // functions called during shutdown\r\nvar __ATPOSTRUN__ = []; // functions called after the main() is called\r\n\r\nvar runtimeInitialized = false;\r\nvar runtimeExited = false;\r\n\r\n\r\nfunction preRun() {\r\n // compatibility - merge in anything from Module['preRun'] at this time\r\n if (Module['preRun']) {\r\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\r\n while (Module['preRun'].length) {\r\n addOnPreRun(Module['preRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPRERUN__);\r\n}\r\n\r\nfunction ensureInitRuntime() {\r\n if (runtimeInitialized) return;\r\n runtimeInitialized = true;\r\n callRuntimeCallbacks(__ATINIT__);\r\n}\r\n\r\nfunction preMain() {\r\n callRuntimeCallbacks(__ATMAIN__);\r\n}\r\n\r\nfunction exitRuntime() {\r\n callRuntimeCallbacks(__ATEXIT__);\r\n runtimeExited = true;\r\n}\r\n\r\nfunction postRun() {\r\n // compatibility - merge in anything from Module['postRun'] at this time\r\n if (Module['postRun']) {\r\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\r\n while (Module['postRun'].length) {\r\n addOnPostRun(Module['postRun'].shift());\r\n }\r\n }\r\n callRuntimeCallbacks(__ATPOSTRUN__);\r\n}\r\n\r\nfunction addOnPreRun(cb) {\r\n __ATPRERUN__.unshift(cb);\r\n}\r\n\r\nfunction addOnInit(cb) {\r\n __ATINIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPreMain(cb) {\r\n __ATMAIN__.unshift(cb);\r\n}\r\n\r\nfunction addOnExit(cb) {\r\n __ATEXIT__.unshift(cb);\r\n}\r\n\r\nfunction addOnPostRun(cb) {\r\n __ATPOSTRUN__.unshift(cb);\r\n}\r\n\r\n// Deprecated: This function should not be called because it is unsafe and does not provide\r\n// a maximum length limit of how many bytes it is allowed to write. Prefer calling the\r\n// function stringToUTF8Array() instead, which takes in a maximum length that can be used\r\n// to be secure from out of bounds writes.\r\n/** @deprecated */\r\nfunction writeStringToMemory(string, buffer, dontAddNull) {\r\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\r\n\r\n var /** @type {number} */ lastChar, /** @type {number} */ end;\r\n if (dontAddNull) {\r\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\r\n // character that existed at the location where the null will be placed, and restore\r\n // that after the write (below).\r\n end = buffer + lengthBytesUTF8(string);\r\n lastChar = HEAP8[end];\r\n }\r\n stringToUTF8(string, buffer, Infinity);\r\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\r\n}\r\n\r\nfunction writeArrayToMemory(array, buffer) {\r\n HEAP8.set(array, buffer);\r\n}\r\n\r\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\r\n for (var i = 0; i < str.length; ++i) {\r\n HEAP8[((buffer++)>>0)]=str.charCodeAt(i);\r\n }\r\n // Null-terminate the pointer to the HEAP.\r\n if (!dontAddNull) HEAP8[((buffer)>>0)]=0;\r\n}\r\n\r\nfunction unSign(value, bits, ignore) {\r\n if (value >= 0) {\r\n return value;\r\n }\r\n return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\r\n : Math.pow(2, bits) + value;\r\n}\r\nfunction reSign(value, bits, ignore) {\r\n if (value <= 0) {\r\n return value;\r\n }\r\n var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32\r\n : Math.pow(2, bits-1);\r\n if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that\r\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\r\n // TODO: In i64 mode 1, resign the two parts separately and safely\r\n value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\r\n }\r\n return value;\r\n}\r\n\r\n\r\nvar Math_abs = Math.abs;\r\nvar Math_cos = Math.cos;\r\nvar Math_sin = Math.sin;\r\nvar Math_tan = Math.tan;\r\nvar Math_acos = Math.acos;\r\nvar Math_asin = Math.asin;\r\nvar Math_atan = Math.atan;\r\nvar Math_atan2 = Math.atan2;\r\nvar Math_exp = Math.exp;\r\nvar Math_log = Math.log;\r\nvar Math_sqrt = Math.sqrt;\r\nvar Math_ceil = Math.ceil;\r\nvar Math_floor = Math.floor;\r\nvar Math_pow = Math.pow;\r\nvar Math_imul = Math.imul;\r\nvar Math_fround = Math.fround;\r\nvar Math_round = Math.round;\r\nvar Math_min = Math.min;\r\nvar Math_max = Math.max;\r\nvar Math_clz32 = Math.clz32;\r\nvar Math_trunc = Math.trunc;\r\n\r\n// A counter of dependencies for calling run(). If we need to\r\n// do asynchronous work before running, increment this and\r\n// decrement it. Incrementing must happen in a place like\r\n// PRE_RUN_ADDITIONS (used by emcc to add file preloading).\r\n// Note that you can add dependencies in preRun, even though\r\n// it happens right before run - run will be postponed until\r\n// the dependencies are met.\r\nvar runDependencies = 0;\r\nvar runDependencyWatcher = null;\r\nvar dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\r\n\r\nfunction getUniqueRunDependency(id) {\r\n return id;\r\n}\r\n\r\nfunction addRunDependency(id) {\r\n runDependencies++;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n}\r\n\r\nfunction removeRunDependency(id) {\r\n runDependencies--;\r\n if (Module['monitorRunDependencies']) {\r\n Module['monitorRunDependencies'](runDependencies);\r\n }\r\n if (runDependencies == 0) {\r\n if (runDependencyWatcher !== null) {\r\n clearInterval(runDependencyWatcher);\r\n runDependencyWatcher = null;\r\n }\r\n if (dependenciesFulfilled) {\r\n var callback = dependenciesFulfilled;\r\n dependenciesFulfilled = null;\r\n callback(); // can add another dependenciesFulfilled\r\n }\r\n }\r\n}\r\n\r\nModule[\"preloadedImages\"] = {}; // maps url to image data\r\nModule[\"preloadedAudios\"] = {}; // maps url to audio data\r\n\r\n\r\n\r\nvar memoryInitializer = null;\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Prefix of data URIs emitted by SINGLE_FILE and related options.\r\nvar dataURIPrefix = 'data:application/octet-stream;base64,';\r\n\r\n// Indicates whether filename is a base64 data URI.\r\nfunction isDataURI(filename) {\r\n return String.prototype.startsWith ?\r\n filename.startsWith(dataURIPrefix) :\r\n filename.indexOf(dataURIPrefix) === 0;\r\n}\r\n\r\n\r\n\r\n\r\nfunction integrateWasmJS() {\r\n // wasm.js has several methods for creating the compiled code module here:\r\n // * 'native-wasm' : use native WebAssembly support in the browser\r\n // * 'interpret-s-expr': load s-expression code from a .wast and interpret\r\n // * 'interpret-binary': load binary wasm and interpret\r\n // * 'interpret-asm2wasm': load asm.js code, translate to wasm, and interpret\r\n // * 'asmjs': no wasm, just load the asm.js code and use that (good for testing)\r\n // The method is set at compile time (BINARYEN_METHOD)\r\n // The method can be a comma-separated list, in which case, we will try the\r\n // options one by one. Some of them can fail gracefully, and then we can try\r\n // the next.\r\n\r\n // inputs\r\n\r\n var method = 'native-wasm';\r\n\r\n var wasmTextFile = 'DiabloSpawn.wast';\r\n var wasmBinaryFile = 'DiabloSpawn.wasm';\r\n var asmjsCodeFile = 'DiabloSpawn.temp.asm.js';\r\n\r\n if (!isDataURI(wasmTextFile)) {\r\n wasmTextFile = locateFile(wasmTextFile);\r\n }\r\n if (!isDataURI(wasmBinaryFile)) {\r\n wasmBinaryFile = locateFile(wasmBinaryFile);\r\n }\r\n if (!isDataURI(asmjsCodeFile)) {\r\n asmjsCodeFile = locateFile(asmjsCodeFile);\r\n }\r\n\r\n // utilities\r\n\r\n var wasmPageSize = 64*1024;\r\n\r\n var info = {\r\n 'global': null,\r\n 'env': null,\r\n 'asm2wasm': asm2wasmImports,\r\n 'parent': Module // Module inside wasm-js.cpp refers to wasm-js.cpp; this allows access to the outside program.\r\n };\r\n\r\n var exports = null;\r\n\r\n\r\n function mergeMemory(newBuffer) {\r\n // The wasm instance creates its memory. But static init code might have written to\r\n // buffer already, including the mem init file, and we must copy it over in a proper merge.\r\n // TODO: avoid this copy, by avoiding such static init writes\r\n // TODO: in shorter term, just copy up to the last static init write\r\n var oldBuffer = Module['buffer'];\r\n if (newBuffer.byteLength < oldBuffer.byteLength) {\r\n err('the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here');\r\n }\r\n var oldView = new Int8Array(oldBuffer);\r\n var newView = new Int8Array(newBuffer);\r\n\r\n\r\n newView.set(oldView);\r\n updateGlobalBuffer(newBuffer);\r\n updateGlobalBufferViews();\r\n }\r\n\r\n function fixImports(imports) {\r\n return imports;\r\n }\r\n\r\n function getBinary() {\r\n try {\r\n if (Module['wasmBinary']) {\r\n return new Uint8Array(Module['wasmBinary']);\r\n }\r\n if (Module['readBinary']) {\r\n return Module['readBinary'](wasmBinaryFile);\r\n } else {\r\n throw \"both async and sync fetching of the wasm failed\";\r\n }\r\n }\r\n catch (err) {\r\n abort(err);\r\n }\r\n }\r\n\r\n function getBinaryPromise() {\r\n // if we don't have the binary yet, and have the Fetch api, use that\r\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\r\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\r\n return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) {\r\n if (!response['ok']) {\r\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\r\n }\r\n return response['arrayBuffer']();\r\n }).catch(function () {\r\n return getBinary();\r\n });\r\n }\r\n // Otherwise, getBinary should be able to get it synchronously\r\n return new Promise(function(resolve, reject) {\r\n resolve(getBinary());\r\n });\r\n }\r\n\r\n // do-method functions\r\n\r\n\r\n function doNativeWasm(global, env, providedBuffer) {\r\n if (typeof WebAssembly !== 'object') {\r\n err('no native wasm support detected');\r\n return false;\r\n }\r\n // prepare memory import\r\n if (!(Module['wasmMemory'] instanceof WebAssembly.Memory)) {\r\n err('no native wasm Memory in use');\r\n return false;\r\n }\r\n env['memory'] = Module['wasmMemory'];\r\n // Load the wasm module and create an instance of using native support in the JS engine.\r\n info['global'] = {\r\n 'NaN': NaN,\r\n 'Infinity': Infinity\r\n };\r\n info['global.Math'] = Math;\r\n info['env'] = env;\r\n // handle a generated wasm instance, receiving its exports and\r\n // performing other necessary setup\r\n function receiveInstance(instance, module) {\r\n exports = instance.exports;\r\n if (exports.memory) mergeMemory(exports.memory);\r\n Module['asm'] = exports;\r\n Module[\"usingWasm\"] = true;\r\n removeRunDependency('wasm-instantiate');\r\n }\r\n addRunDependency('wasm-instantiate');\r\n\r\n // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\r\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\r\n // to any other async startup actions they are performing.\r\n if (Module['instantiateWasm']) {\r\n try {\r\n return Module['instantiateWasm'](info, receiveInstance);\r\n } catch(e) {\r\n err('Module.instantiateWasm callback failed with error: ' + e);\r\n return false;\r\n }\r\n }\r\n\r\n function receiveInstantiatedSource(output) {\r\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\r\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\r\n receiveInstance(output['instance'], output['module']);\r\n }\r\n function instantiateArrayBuffer(receiver) {\r\n getBinaryPromise().then(function(binary) {\r\n return WebAssembly.instantiate(binary, info);\r\n }).then(receiver).catch(function(reason) {\r\n err('failed to asynchronously prepare wasm: ' + reason);\r\n abort(reason);\r\n });\r\n }\r\n // Prefer streaming instantiation if available.\r\n if (!Module['wasmBinary'] &&\r\n typeof WebAssembly.instantiateStreaming === 'function' &&\r\n !isDataURI(wasmBinaryFile) &&\r\n typeof fetch === 'function') {\r\n WebAssembly.instantiateStreaming(fetch(wasmBinaryFile, { credentials: 'same-origin' }), info)\r\n .then(receiveInstantiatedSource)\r\n .catch(function(reason) {\r\n // We expect the most common failure cause to be a bad MIME type for the binary,\r\n // in which case falling back to ArrayBuffer instantiation should work.\r\n err('wasm streaming compile failed: ' + reason);\r\n err('falling back to ArrayBuffer instantiation');\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n });\r\n } else {\r\n instantiateArrayBuffer(receiveInstantiatedSource);\r\n }\r\n return {}; // no exports yet; we'll fill them in later\r\n }\r\n\r\n\r\n // We may have a preloaded value in Module.asm, save it\r\n Module['asmPreload'] = Module['asm'];\r\n\r\n // Memory growth integration code\r\n\r\n var asmjsReallocBuffer = Module['reallocBuffer'];\r\n\r\n var wasmReallocBuffer = function(size) {\r\n var PAGE_MULTIPLE = Module[\"usingWasm\"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\r\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\r\n var old = Module['buffer'];\r\n var oldSize = old.byteLength;\r\n if (Module[\"usingWasm\"]) {\r\n // native wasm support\r\n try {\r\n var result = Module['wasmMemory'].grow((size - oldSize) / wasmPageSize); // .grow() takes a delta compared to the previous size\r\n if (result !== (-1 | 0)) {\r\n // success in native wasm memory growth, get the buffer from the memory\r\n return Module['buffer'] = Module['wasmMemory'].buffer;\r\n } else {\r\n return null;\r\n }\r\n } catch(e) {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n Module['reallocBuffer'] = function(size) {\r\n if (finalMethod === 'asmjs') {\r\n return asmjsReallocBuffer(size);\r\n } else {\r\n return wasmReallocBuffer(size);\r\n }\r\n };\r\n\r\n // we may try more than one; this is the final one, that worked and we are using\r\n var finalMethod = '';\r\n\r\n // Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\r\n // the wasm module at that time, and it receives imports and provides exports and so forth, the app\r\n // doesn't need to care that it is wasm or olyfilled wasm or asm.js.\r\n\r\n Module['asm'] = function(global, env, providedBuffer) {\r\n env = fixImports(env);\r\n\r\n // import table\r\n if (!env['table']) {\r\n var TABLE_SIZE = Module['wasmTableSize'];\r\n if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; // works in binaryen interpreter at least\r\n var MAX_TABLE_SIZE = Module['wasmMaxTableSize'];\r\n if (typeof WebAssembly === 'object' && typeof WebAssembly.Table === 'function') {\r\n if (MAX_TABLE_SIZE !== undefined) {\r\n env['table'] = new WebAssembly.Table({ 'initial': TABLE_SIZE, 'maximum': MAX_TABLE_SIZE, 'element': 'anyfunc' });\r\n } else {\r\n env['table'] = new WebAssembly.Table({ 'initial': TABLE_SIZE, element: 'anyfunc' });\r\n }\r\n } else {\r\n env['table'] = new Array(TABLE_SIZE); // works in binaryen interpreter at least\r\n }\r\n Module['wasmTable'] = env['table'];\r\n }\r\n\r\n if (!env['memoryBase']) {\r\n env['memoryBase'] = Module['STATIC_BASE']; // tell the memory segments where to place themselves\r\n }\r\n if (!env['tableBase']) {\r\n env['tableBase'] = 0; // table starts at 0 by default, in dynamic linking this will change\r\n }\r\n\r\n // try the methods. each should return the exports if it succeeded\r\n\r\n var exports;\r\n exports = doNativeWasm(global, env, providedBuffer);\r\n\r\n assert(exports, 'no binaryen method succeeded.');\r\n\r\n\r\n return exports;\r\n };\r\n\r\n var methodHandler = Module['asm']; // note our method handler, as we may modify Module['asm'] later\r\n}\r\n\r\nintegrateWasmJS();\r\n\r\n// === Body ===\r\n\r\nvar ASM_CONSTS = [function($0) { self.DApi.current_save_id($0); }];\r\n\r\nfunction _emscripten_asm_const_ii(code, a0) {\r\n return ASM_CONSTS[code](a0);\r\n}\r\nfunction __api_close_keyboard(){ self.DApi.close_keyboard(); }\r\nfunction __api_open_keyboard(x0,y0,x1,y1,len){ self.DApi.open_keyboard(x0, y0, x1, y1, len); }\r\nfunction _api_create_sound(id,ptr,size){ self.DApi.create_sound(id, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _api_create_sound_float(id,ptr,samples,channels,rate){ self.DApi.create_sound_raw(id, HEAPF32.slice(ptr / 4, ptr / 4 + samples * channels), samples, channels, rate); }\r\nfunction _api_delete_sound(id){ self.DApi.delete_sound(id); }\r\nfunction _api_draw_begin(){ self.DApi.draw_begin(); }\r\nfunction _api_draw_belt(items){ self.DApi.draw_belt(HEAP32.subarray(items / 4, items / 4 + 8)); }\r\nfunction _api_draw_blit(x,y,w,h,ptr){ self.DApi.draw_blit(x, y, w, h, HEAPU8.subarray(ptr, ptr + w * h * 4)); }\r\nfunction _api_draw_clip_text(x0,y0,x1,y1){ self.DApi.draw_clip_text(x0, y0, x1, y1); }\r\nfunction _api_draw_end(){ self.DApi.draw_end(); }\r\nfunction _api_draw_text(x,y,ptr,color){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); self.DApi.draw_text(x, y, text, color); }\r\nfunction _api_duplicate_sound(id,srcId){ self.DApi.duplicate_sound(id, srcId); }\r\nfunction _api_exit_game(){ self.DApi.exit_game(); }\r\nfunction _api_play_sound(id,volume,pan,loop){ self.DApi.play_sound(id, volume, pan, loop); }\r\nfunction _api_set_cursor(x,y){ self.DApi.set_cursor(x, y); }\r\nfunction _api_set_volume(id,volume){ self.DApi.set_volume(id, volume); }\r\nfunction _api_stop_sound(id){ self.DApi.stop_sound(id); }\r\nfunction _api_websocket_closed(){ return self.DApi.websocket_closed(); }\r\nfunction _api_websocket_send(ptr,size){ self.DApi.websocket_send(HEAPU8.subarray(ptr, ptr + size)); }\r\nfunction _exit_error(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply(null, HEAPU8.subarray( err, end )); self.DApi.exit_error( text ); }\r\nfunction _get_file_contents(path,ptr,offset,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.get_file_contents(text, HEAPU8.subarray(ptr, ptr + size), offset); }\r\nfunction _get_file_size(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); return self.DApi.get_file_size(text); }\r\nfunction _put_file_contents(path,ptr,size){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end)); self.DApi.put_file_contents(text, HEAPU8.slice(ptr, ptr + size)); }\r\nfunction _remove_file(path){ var end = HEAPU8.indexOf( 0, path); var text = String.fromCharCode.apply(null, HEAPU8.subarray(path, end )); self.DApi.remove_file( text ); }\r\nfunction _show_alert(err){ var end = HEAPU8.indexOf( 0, err ); var text = String.fromCharCode.apply( null, HEAPU8.subarray( err, end ) ); self.alert( text ); }\r\nfunction _trace_pop(){ if (self.WASM_TRACE) { self.WASM_TRACE.pop(); } }\r\nfunction _trace_push(ptr){ var end = HEAPU8.indexOf(0, ptr); var text = String.fromCharCode.apply(null, HEAPU8.subarray(ptr, end)); console.log(text); self.WASM_TRACE = self.WASM_TRACE || []; self.WASM_TRACE.push(text); }\r\n\r\n\r\n\r\nSTATIC_BASE = GLOBAL_BASE;\r\n\r\nSTATICTOP = STATIC_BASE + 1841808;\r\n/* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_msgcmd_cpp() } }, { func: function() { __GLOBAL__sub_I_snet_cpp() } });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar STATIC_BUMP = 1841808;\r\nModule[\"STATIC_BASE\"] = STATIC_BASE;\r\nModule[\"STATIC_BUMP\"] = STATIC_BUMP;\r\n\r\n/* no memory initializer */\r\nvar tempDoublePtr = STATICTOP; STATICTOP += 16;\r\n\r\nfunction copyTempFloat(ptr) { // functions, because inlining this code increases code size too much\r\n\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n\r\n}\r\n\r\nfunction copyTempDouble(ptr) {\r\n\r\n HEAP8[tempDoublePtr] = HEAP8[ptr];\r\n\r\n HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];\r\n\r\n HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];\r\n\r\n HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];\r\n\r\n HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];\r\n\r\n HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];\r\n\r\n HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];\r\n\r\n HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];\r\n\r\n}\r\n\r\n// {{PRE_LIBRARY}}\r\n\r\n\r\n function ___assert_fail(condition, filename, line, func) {\r\n abort('Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function']);\r\n }\r\n\r\n function ___cxa_allocate_exception(size) {\r\n return _malloc(size);\r\n }\r\n\r\n \r\n function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()\r\n return !!__ZSt18uncaught_exceptionv.uncaught_exception;\r\n }\r\n \r\n var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) {\r\n if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted;\r\n for (var key in EXCEPTIONS.infos) {\r\n var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for\r\n var info = EXCEPTIONS.infos[ptr];\r\n if (info.adjusted === adjusted) {\r\n return ptr;\r\n }\r\n }\r\n return adjusted;\r\n },addRef:function (ptr) {\r\n if (!ptr) return;\r\n var info = EXCEPTIONS.infos[ptr];\r\n info.refcount++;\r\n },decRef:function (ptr) {\r\n if (!ptr) return;\r\n var info = EXCEPTIONS.infos[ptr];\r\n assert(info.refcount > 0);\r\n info.refcount--;\r\n // A rethrown exception can reach refcount 0; it must not be discarded\r\n // Its next handler will clear the rethrown flag and addRef it, prior to\r\n // final decRef and destruction here\r\n if (info.refcount === 0 && !info.rethrown) {\r\n if (info.destructor) {\r\n Module['dynCall_vi'](info.destructor, ptr);\r\n }\r\n delete EXCEPTIONS.infos[ptr];\r\n ___cxa_free_exception(ptr);\r\n }\r\n },clearRef:function (ptr) {\r\n if (!ptr) return;\r\n var info = EXCEPTIONS.infos[ptr];\r\n info.refcount = 0;\r\n }};function ___cxa_begin_catch(ptr) {\r\n var info = EXCEPTIONS.infos[ptr];\r\n if (info && !info.caught) {\r\n info.caught = true;\r\n __ZSt18uncaught_exceptionv.uncaught_exception--;\r\n }\r\n if (info) info.rethrown = false;\r\n EXCEPTIONS.caught.push(ptr);\r\n EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));\r\n return ptr;\r\n }\r\n\r\n \r\n function ___cxa_free_exception(ptr) {\r\n try {\r\n return _free(ptr);\r\n } catch(e) { // XXX FIXME\r\n }\r\n }function ___cxa_end_catch() {\r\n // Clear state flag.\r\n Module['setThrew'](0);\r\n // Call destructor if one is registered then clear it.\r\n var ptr = EXCEPTIONS.caught.pop();\r\n if (ptr) {\r\n EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));\r\n EXCEPTIONS.last = 0; // XXX in decRef?\r\n }\r\n }\r\n\r\n function ___cxa_find_matching_catch_2() {\r\n return ___cxa_find_matching_catch.apply(null, arguments);\r\n }\r\n\r\n function ___cxa_find_matching_catch_3() {\r\n return ___cxa_find_matching_catch.apply(null, arguments);\r\n }\r\n\r\n\r\n function ___cxa_get_exception_ptr(ptr) {\r\n // TODO: use info.adjusted?\r\n return ptr;\r\n }\r\n\r\n function ___cxa_pure_virtual() {\r\n ABORT = true;\r\n throw 'Pure virtual function called!';\r\n }\r\n\r\n \r\n \r\n function ___resumeException(ptr) {\r\n if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; }\r\n throw ptr;\r\n }function ___cxa_find_matching_catch() {\r\n var thrown = EXCEPTIONS.last;\r\n if (!thrown) {\r\n // just pass through the null ptr\r\n return ((setTempRet0(0),0)|0);\r\n }\r\n var info = EXCEPTIONS.infos[thrown];\r\n var throwntype = info.type;\r\n if (!throwntype) {\r\n // just pass through the thrown ptr\r\n return ((setTempRet0(0),thrown)|0);\r\n }\r\n var typeArray = Array.prototype.slice.call(arguments);\r\n \r\n var pointer = Module['___cxa_is_pointer_type'](throwntype);\r\n // can_catch receives a **, add indirection\r\n if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4);\r\n HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown;\r\n thrown = ___cxa_find_matching_catch.buffer;\r\n // The different catch blocks are denoted by different types.\r\n // Due to inheritance, those types may not precisely match the\r\n // type of the thrown object. Find one which matches, and\r\n // return the type of the catch block which should be called.\r\n for (var i = 0; i < typeArray.length; i++) {\r\n if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) {\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n info.adjusted = thrown;\r\n return ((setTempRet0(typeArray[i]),thrown)|0);\r\n }\r\n }\r\n // Shouldn't happen unless we have bogus data in typeArray\r\n // or encounter a type for which emscripten doesn't have suitable\r\n // typeinfo defined. Best-efforts match just in case.\r\n thrown = HEAP32[((thrown)>>2)]; // undo indirection\r\n return ((setTempRet0(throwntype),thrown)|0);\r\n }function ___cxa_throw(ptr, type, destructor) {\r\n EXCEPTIONS.infos[ptr] = {\r\n ptr: ptr,\r\n adjusted: ptr,\r\n type: type,\r\n destructor: destructor,\r\n refcount: 0,\r\n caught: false,\r\n rethrown: false\r\n };\r\n EXCEPTIONS.last = ptr;\r\n if (!(\"uncaught_exception\" in __ZSt18uncaught_exceptionv)) {\r\n __ZSt18uncaught_exceptionv.uncaught_exception = 1;\r\n } else {\r\n __ZSt18uncaught_exceptionv.uncaught_exception++;\r\n }\r\n throw ptr;\r\n }\r\n\r\n function ___gxx_personality_v0() {\r\n }\r\n\r\n function ___lock() {}\r\n\r\n\r\n \r\n var SYSCALLS={varargs:0,get:function (varargs) {\r\n SYSCALLS.varargs += 4;\r\n var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];\r\n return ret;\r\n },getStr:function () {\r\n var ret = Pointer_stringify(SYSCALLS.get());\r\n return ret;\r\n },get64:function () {\r\n var low = SYSCALLS.get(), high = SYSCALLS.get();\r\n if (low >= 0) assert(high === 0);\r\n else assert(high === -1);\r\n return low;\r\n },getZero:function () {\r\n assert(SYSCALLS.get() === 0);\r\n }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // llseek\r\n var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();\r\n // NOTE: offset_high is unused - Emscripten's off_t is 32-bit\r\n var offset = offset_low;\r\n FS.llseek(stream, offset, whence);\r\n HEAP32[((result)>>2)]=stream.position;\r\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n \r\n function flush_NO_FILESYSTEM() {\r\n // flush anything remaining in the buffers during shutdown\r\n var fflush = Module[\"_fflush\"];\r\n if (fflush) fflush(0);\r\n var printChar = ___syscall146.printChar;\r\n if (!printChar) return;\r\n var buffers = ___syscall146.buffers;\r\n if (buffers[1].length) printChar(1, 10);\r\n if (buffers[2].length) printChar(2, 10);\r\n }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // writev\r\n // hack to support printf in NO_FILESYSTEM\r\n var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();\r\n var ret = 0;\r\n if (!___syscall146.buffers) {\r\n ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr\r\n ___syscall146.printChar = function(stream, curr) {\r\n var buffer = ___syscall146.buffers[stream];\r\n assert(buffer);\r\n if (curr === 0 || curr === 10) {\r\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\r\n buffer.length = 0;\r\n } else {\r\n buffer.push(curr);\r\n }\r\n };\r\n }\r\n for (var i = 0; i < iovcnt; i++) {\r\n var ptr = HEAP32[(((iov)+(i*8))>>2)];\r\n var len = HEAP32[(((iov)+(i*8 + 4))>>2)];\r\n for (var j = 0; j < len; j++) {\r\n ___syscall146.printChar(stream, HEAPU8[ptr+j]);\r\n }\r\n ret += len;\r\n }\r\n return ret;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // ioctl\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;\r\n try {\r\n // close\r\n var stream = SYSCALLS.getStreamFromFD();\r\n FS.close(stream);\r\n return 0;\r\n } catch (e) {\r\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\r\n return -e.errno;\r\n }\r\n }\r\n\r\n function ___unlock() {}\r\n\r\n function _abort() {\r\n Module['abort']();\r\n }\r\n\r\n var _emscripten_asm_const_int=true;\r\n\r\n \r\n function __exit(status) {\r\n // void _exit(int status);\r\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\r\n exit(status);\r\n }function _exit(status) {\r\n __exit(status);\r\n }\r\n\r\n \r\n\r\n var _llvm_ceil_f32=Math_ceil;\r\n\r\n var _llvm_ctlz_i32=true;\r\n\r\n function _llvm_eh_typeid_for(type) {\r\n return type;\r\n }\r\n\r\n function _llvm_trap() {\r\n abort('trap!');\r\n }\r\n\r\n \r\n function _emscripten_memcpy_big(dest, src, num) {\r\n HEAPU8.set(HEAPU8.subarray(src, src+num), dest);\r\n return dest;\r\n } \r\n\r\n \r\n\r\n \r\n\r\n \r\n var PTHREAD_SPECIFIC={};function _pthread_getspecific(key) {\r\n return PTHREAD_SPECIFIC[key] || 0;\r\n }\r\n\r\n \r\n var PTHREAD_SPECIFIC_NEXT_KEY=1;\r\n \r\n var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key, destructor) {\r\n if (key == 0) {\r\n return ERRNO_CODES.EINVAL;\r\n }\r\n HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY;\r\n // values start at 0\r\n PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0;\r\n PTHREAD_SPECIFIC_NEXT_KEY++;\r\n return 0;\r\n }\r\n\r\n function _pthread_once(ptr, func) {\r\n if (!_pthread_once.seen) _pthread_once.seen = {};\r\n if (ptr in _pthread_once.seen) return;\r\n Module['dynCall_v'](func);\r\n _pthread_once.seen[ptr] = 1;\r\n }\r\n\r\n function _pthread_setspecific(key, value) {\r\n if (!(key in PTHREAD_SPECIFIC)) {\r\n return ERRNO_CODES.EINVAL;\r\n }\r\n PTHREAD_SPECIFIC[key] = value;\r\n return 0;\r\n }\r\n\r\n \r\n function ___setErrNo(value) {\r\n if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;\r\n return value;\r\n } \r\n\r\n function _time(ptr) {\r\n var ret = (Date.now()/1000)|0;\r\n if (ptr) {\r\n HEAP32[((ptr)>>2)]=ret;\r\n }\r\n return ret;\r\n }\r\nDYNAMICTOP_PTR = staticAlloc(4);\r\n\r\nSTACK_BASE = STACKTOP = alignMemory(STATICTOP);\r\n\r\nSTACK_MAX = STACK_BASE + TOTAL_STACK;\r\n\r\nDYNAMIC_BASE = alignMemory(STACK_MAX);\r\n\r\nHEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;\r\n\r\nstaticSealed = true; // seal the static portion of memory\r\n\r\nvar ASSERTIONS = false;\r\n\r\n/** @type {function(string, boolean=, number=)} */\r\nfunction intArrayFromString(stringy, dontAddNull, length) {\r\n var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;\r\n var u8array = new Array(len);\r\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\r\n if (dontAddNull) u8array.length = numBytesWritten;\r\n return u8array;\r\n}\r\n\r\nfunction intArrayToString(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var chr = array[i];\r\n if (chr > 0xFF) {\r\n if (ASSERTIONS) {\r\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\r\n }\r\n chr &= 0xFF;\r\n }\r\n ret.push(String.fromCharCode(chr));\r\n }\r\n return ret.join('');\r\n}\r\n\r\n\r\n\r\nModule['wasmTableSize'] = 1114;\r\n\r\nModule['wasmMaxTableSize'] = 1114;\r\n\r\nfunction invoke_i(index) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_i\"](index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ii(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_ii\"](index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iii\"](index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iiii\"](index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_iiiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_ji(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n return Module[\"dynCall_ji\"](index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_v(index) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_v\"](index);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vi(index,a1) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_vi\"](index,a1);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_vii(index,a1,a2) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_vii\"](index,a1,a2);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viii(index,a1,a2,a3) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viii\"](index,a1,a2,a3);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiii(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiii\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiii(index,a1,a2,a3,a4,a5) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiii\"](index,a1,a2,a3,a4,a5,a6);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viiiiiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viij(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viij\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nfunction invoke_viji(index,a1,a2,a3,a4) {\r\n var sp = stackSave();\r\n try {\r\n Module[\"dynCall_viji\"](index,a1,a2,a3,a4);\r\n } catch(e) {\r\n stackRestore(sp);\r\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\r\n Module[\"setThrew\"](1, 0);\r\n }\r\n}\r\n\r\nModule.asmGlobalArg = {};\r\n\r\nModule.asmLibraryArg = { \"abort\": abort, \"assert\": assert, \"enlargeMemory\": enlargeMemory, \"getTotalMemory\": getTotalMemory, \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory, \"invoke_i\": invoke_i, \"invoke_ii\": invoke_ii, \"invoke_iii\": invoke_iii, \"invoke_iiii\": invoke_iiii, \"invoke_iiiii\": invoke_iiiii, \"invoke_iiiiii\": invoke_iiiiii, \"invoke_ji\": invoke_ji, \"invoke_v\": invoke_v, \"invoke_vi\": invoke_vi, \"invoke_vii\": invoke_vii, \"invoke_viii\": invoke_viii, \"invoke_viiii\": invoke_viiii, \"invoke_viiiii\": invoke_viiiii, \"invoke_viiiiii\": invoke_viiiiii, \"invoke_viiiiiii\": invoke_viiiiiii, \"invoke_viiiiiiiii\": invoke_viiiiiiiii, \"invoke_viiiiiiiiii\": invoke_viiiiiiiiii, \"invoke_viij\": invoke_viij, \"invoke_viji\": invoke_viji, \"__ZSt18uncaught_exceptionv\": __ZSt18uncaught_exceptionv, \"___assert_fail\": ___assert_fail, \"___cxa_allocate_exception\": ___cxa_allocate_exception, \"___cxa_begin_catch\": ___cxa_begin_catch, \"___cxa_end_catch\": ___cxa_end_catch, \"___cxa_find_matching_catch\": ___cxa_find_matching_catch, \"___cxa_find_matching_catch_2\": ___cxa_find_matching_catch_2, \"___cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3, \"___cxa_free_exception\": ___cxa_free_exception, \"___cxa_get_exception_ptr\": ___cxa_get_exception_ptr, \"___cxa_pure_virtual\": ___cxa_pure_virtual, \"___cxa_throw\": ___cxa_throw, \"___gxx_personality_v0\": ___gxx_personality_v0, \"___lock\": ___lock, \"___resumeException\": ___resumeException, \"___setErrNo\": ___setErrNo, \"___syscall140\": ___syscall140, \"___syscall146\": ___syscall146, \"___syscall54\": ___syscall54, \"___syscall6\": ___syscall6, \"___unlock\": ___unlock, \"__api_close_keyboard\": __api_close_keyboard, \"__api_open_keyboard\": __api_open_keyboard, \"__exit\": __exit, \"_abort\": _abort, \"_api_create_sound\": _api_create_sound, \"_api_create_sound_float\": _api_create_sound_float, \"_api_delete_sound\": _api_delete_sound, \"_api_draw_begin\": _api_draw_begin, \"_api_draw_belt\": _api_draw_belt, \"_api_draw_blit\": _api_draw_blit, \"_api_draw_clip_text\": _api_draw_clip_text, \"_api_draw_end\": _api_draw_end, \"_api_draw_text\": _api_draw_text, \"_api_duplicate_sound\": _api_duplicate_sound, \"_api_exit_game\": _api_exit_game, \"_api_play_sound\": _api_play_sound, \"_api_set_cursor\": _api_set_cursor, \"_api_set_volume\": _api_set_volume, \"_api_stop_sound\": _api_stop_sound, \"_api_websocket_closed\": _api_websocket_closed, \"_api_websocket_send\": _api_websocket_send, \"_emscripten_asm_const_ii\": _emscripten_asm_const_ii, \"_emscripten_memcpy_big\": _emscripten_memcpy_big, \"_exit\": _exit, \"_exit_error\": _exit_error, \"_get_file_contents\": _get_file_contents, \"_get_file_size\": _get_file_size, \"_llvm_ceil_f32\": _llvm_ceil_f32, \"_llvm_eh_typeid_for\": _llvm_eh_typeid_for, \"_llvm_trap\": _llvm_trap, \"_pthread_getspecific\": _pthread_getspecific, \"_pthread_key_create\": _pthread_key_create, \"_pthread_once\": _pthread_once, \"_pthread_setspecific\": _pthread_setspecific, \"_put_file_contents\": _put_file_contents, \"_remove_file\": _remove_file, \"_show_alert\": _show_alert, \"_time\": _time, \"_trace_pop\": _trace_pop, \"_trace_push\": _trace_push, \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM, \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR, \"tempDoublePtr\": tempDoublePtr, \"ABORT\": ABORT, \"STACKTOP\": STACKTOP, \"STACK_MAX\": STACK_MAX };\r\n// EMSCRIPTEN_START_ASM\r\nvar asm =Module[\"asm\"]// EMSCRIPTEN_END_ASM\r\n(Module.asmGlobalArg, Module.asmLibraryArg, buffer);\r\n\r\nModule[\"asm\"] = asm;\r\nvar _DApi_AllocPacket = Module[\"_DApi_AllocPacket\"] = function() { return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null, arguments) };\r\nvar _DApi_Char = Module[\"_DApi_Char\"] = function() { return Module[\"asm\"][\"_DApi_Char\"].apply(null, arguments) };\r\nvar _DApi_Init = Module[\"_DApi_Init\"] = function() { return Module[\"asm\"][\"_DApi_Init\"].apply(null, arguments) };\r\nvar _DApi_Key = Module[\"_DApi_Key\"] = function() { return Module[\"asm\"][\"_DApi_Key\"].apply(null, arguments) };\r\nvar _DApi_Mouse = Module[\"_DApi_Mouse\"] = function() { return Module[\"asm\"][\"_DApi_Mouse\"].apply(null, arguments) };\r\nvar _DApi_Render = Module[\"_DApi_Render\"] = function() { return Module[\"asm\"][\"_DApi_Render\"].apply(null, arguments) };\r\nvar _DApi_SyncText = Module[\"_DApi_SyncText\"] = function() { return Module[\"asm\"][\"_DApi_SyncText\"].apply(null, arguments) };\r\nvar _DApi_SyncTextPtr = Module[\"_DApi_SyncTextPtr\"] = function() { return Module[\"asm\"][\"_DApi_SyncTextPtr\"].apply(null, arguments) };\r\nvar _SNet_InitWebsocket = Module[\"_SNet_InitWebsocket\"] = function() { return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null, arguments) };\r\nvar __GLOBAL__sub_I_msgcmd_cpp = Module[\"__GLOBAL__sub_I_msgcmd_cpp\"] = function() { return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null, arguments) };\r\nvar __GLOBAL__sub_I_snet_cpp = Module[\"__GLOBAL__sub_I_snet_cpp\"] = function() { return Module[\"asm\"][\"__GLOBAL__sub_I_snet_cpp\"].apply(null, arguments) };\r\nvar ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function() { return Module[\"asm\"][\"___cxa_can_catch\"].apply(null, arguments) };\r\nvar ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function() { return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null, arguments) };\r\nvar ___em_js___api_close_keyboard = Module[\"___em_js___api_close_keyboard\"] = function() { return Module[\"asm\"][\"___em_js___api_close_keyboard\"].apply(null, arguments) };\r\nvar ___em_js___api_open_keyboard = Module[\"___em_js___api_open_keyboard\"] = function() { return Module[\"asm\"][\"___em_js___api_open_keyboard\"].apply(null, arguments) };\r\nvar ___em_js__api_create_sound = Module[\"___em_js__api_create_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_create_sound_float = Module[\"___em_js__api_create_sound_float\"] = function() { return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null, arguments) };\r\nvar ___em_js__api_delete_sound = Module[\"___em_js__api_delete_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_begin = Module[\"___em_js__api_draw_begin\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_belt = Module[\"___em_js__api_draw_belt\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_blit = Module[\"___em_js__api_draw_blit\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_clip_text = Module[\"___em_js__api_draw_clip_text\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_end = Module[\"___em_js__api_draw_end\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null, arguments) };\r\nvar ___em_js__api_draw_text = Module[\"___em_js__api_draw_text\"] = function() { return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null, arguments) };\r\nvar ___em_js__api_duplicate_sound = Module[\"___em_js__api_duplicate_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_exit_game = Module[\"___em_js__api_exit_game\"] = function() { return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null, arguments) };\r\nvar ___em_js__api_play_sound = Module[\"___em_js__api_play_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_set_cursor = Module[\"___em_js__api_set_cursor\"] = function() { return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null, arguments) };\r\nvar ___em_js__api_set_volume = Module[\"___em_js__api_set_volume\"] = function() { return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null, arguments) };\r\nvar ___em_js__api_stop_sound = Module[\"___em_js__api_stop_sound\"] = function() { return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null, arguments) };\r\nvar ___em_js__api_websocket_closed = Module[\"___em_js__api_websocket_closed\"] = function() { return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null, arguments) };\r\nvar ___em_js__api_websocket_send = Module[\"___em_js__api_websocket_send\"] = function() { return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null, arguments) };\r\nvar ___em_js__exit_error = Module[\"___em_js__exit_error\"] = function() { return Module[\"asm\"][\"___em_js__exit_error\"].apply(null, arguments) };\r\nvar ___em_js__get_file_contents = Module[\"___em_js__get_file_contents\"] = function() { return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null, arguments) };\r\nvar ___em_js__get_file_size = Module[\"___em_js__get_file_size\"] = function() { return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null, arguments) };\r\nvar ___em_js__put_file_contents = Module[\"___em_js__put_file_contents\"] = function() { return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null, arguments) };\r\nvar ___em_js__remove_file = Module[\"___em_js__remove_file\"] = function() { return Module[\"asm\"][\"___em_js__remove_file\"].apply(null, arguments) };\r\nvar ___em_js__show_alert = Module[\"___em_js__show_alert\"] = function() { return Module[\"asm\"][\"___em_js__show_alert\"].apply(null, arguments) };\r\nvar ___em_js__trace_pop = Module[\"___em_js__trace_pop\"] = function() { return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null, arguments) };\r\nvar ___em_js__trace_push = Module[\"___em_js__trace_push\"] = function() { return Module[\"asm\"][\"___em_js__trace_push\"].apply(null, arguments) };\r\nvar _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function() { return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments) };\r\nvar _free = Module[\"_free\"] = function() { return Module[\"asm\"][\"_free\"].apply(null, arguments) };\r\nvar _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function() { return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments) };\r\nvar _malloc = Module[\"_malloc\"] = function() { return Module[\"asm\"][\"_malloc\"].apply(null, arguments) };\r\nvar _memcpy = Module[\"_memcpy\"] = function() { return Module[\"asm\"][\"_memcpy\"].apply(null, arguments) };\r\nvar _memmove = Module[\"_memmove\"] = function() { return Module[\"asm\"][\"_memmove\"].apply(null, arguments) };\r\nvar _memset = Module[\"_memset\"] = function() { return Module[\"asm\"][\"_memset\"].apply(null, arguments) };\r\nvar _sbrk = Module[\"_sbrk\"] = function() { return Module[\"asm\"][\"_sbrk\"].apply(null, arguments) };\r\nvar establishStackSpace = Module[\"establishStackSpace\"] = function() { return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments) };\r\nvar getTempRet0 = Module[\"getTempRet0\"] = function() { return Module[\"asm\"][\"getTempRet0\"].apply(null, arguments) };\r\nvar runPostSets = Module[\"runPostSets\"] = function() { return Module[\"asm\"][\"runPostSets\"].apply(null, arguments) };\r\nvar setTempRet0 = Module[\"setTempRet0\"] = function() { return Module[\"asm\"][\"setTempRet0\"].apply(null, arguments) };\r\nvar setThrew = Module[\"setThrew\"] = function() { return Module[\"asm\"][\"setThrew\"].apply(null, arguments) };\r\nvar stackAlloc = Module[\"stackAlloc\"] = function() { return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments) };\r\nvar stackRestore = Module[\"stackRestore\"] = function() { return Module[\"asm\"][\"stackRestore\"].apply(null, arguments) };\r\nvar stackSave = Module[\"stackSave\"] = function() { return Module[\"asm\"][\"stackSave\"].apply(null, arguments) };\r\nvar dynCall_i = Module[\"dynCall_i\"] = function() { return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments) };\r\nvar dynCall_ii = Module[\"dynCall_ii\"] = function() { return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments) };\r\nvar dynCall_iii = Module[\"dynCall_iii\"] = function() { return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments) };\r\nvar dynCall_iiii = Module[\"dynCall_iiii\"] = function() { return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments) };\r\nvar dynCall_iiiii = Module[\"dynCall_iiiii\"] = function() { return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments) };\r\nvar dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = function() { return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null, arguments) };\r\nvar dynCall_ji = Module[\"dynCall_ji\"] = function() { return Module[\"asm\"][\"dynCall_ji\"].apply(null, arguments) };\r\nvar dynCall_v = Module[\"dynCall_v\"] = function() { return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments) };\r\nvar dynCall_vi = Module[\"dynCall_vi\"] = function() { return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments) };\r\nvar dynCall_vii = Module[\"dynCall_vii\"] = function() { return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments) };\r\nvar dynCall_viii = Module[\"dynCall_viii\"] = function() { return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments) };\r\nvar dynCall_viiii = Module[\"dynCall_viiii\"] = function() { return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments) };\r\nvar dynCall_viiiii = Module[\"dynCall_viiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiiii = Module[\"dynCall_viiiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiiiiii = Module[\"dynCall_viiiiiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiiiiii\"].apply(null, arguments) };\r\nvar dynCall_viiiiiiiiii = Module[\"dynCall_viiiiiiiiii\"] = function() { return Module[\"asm\"][\"dynCall_viiiiiiiiii\"].apply(null, arguments) };\r\nvar dynCall_viij = Module[\"dynCall_viij\"] = function() { return Module[\"asm\"][\"dynCall_viij\"].apply(null, arguments) };\r\nvar dynCall_viji = Module[\"dynCall_viji\"] = function() { return Module[\"asm\"][\"dynCall_viji\"].apply(null, arguments) };\r\n;\r\n\r\n\r\n\r\n// === Auto-generated postamble setup entry stuff ===\r\n\r\nModule['asm'] = asm;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Modularize mode returns a function, which can be called to\r\n// create instances. The instances provide a then() method,\r\n// must like a Promise, that receives a callback. The callback\r\n// is called when the module is ready to run, with the module\r\n// as a parameter. (Like a Promise, it also returns the module\r\n// so you can use the output of .then(..)).\r\nModule['then'] = function(func) {\r\n // We may already be ready to run code at this time. if\r\n // so, just queue a call to the callback.\r\n if (Module['calledRun']) {\r\n func(Module);\r\n } else {\r\n // we are not ready to call then() yet. we must call it\r\n // at the same time we would call onRuntimeInitialized.\r\n var old = Module['onRuntimeInitialized'];\r\n Module['onRuntimeInitialized'] = function() {\r\n if (old) old();\r\n func(Module);\r\n };\r\n }\r\n return Module;\r\n};\r\n\r\n/**\r\n * @constructor\r\n * @extends {Error}\r\n * @this {ExitStatus}\r\n */\r\nfunction ExitStatus(status) {\r\n this.name = \"ExitStatus\";\r\n this.message = \"Program terminated with exit(\" + status + \")\";\r\n this.status = status;\r\n};\r\nExitStatus.prototype = new Error();\r\nExitStatus.prototype.constructor = ExitStatus;\r\n\r\nvar initialStackTop;\r\nvar calledMain = false;\r\n\r\ndependenciesFulfilled = function runCaller() {\r\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\r\n if (!Module['calledRun']) run();\r\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\r\n}\r\n\r\n\r\n\r\n\r\n\r\n/** @type {function(Array=)} */\r\nfunction run(args) {\r\n args = args || Module['arguments'];\r\n\r\n if (runDependencies > 0) {\r\n return;\r\n }\r\n\r\n\r\n preRun();\r\n\r\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\r\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\r\n\r\n function doRun() {\r\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\r\n Module['calledRun'] = true;\r\n\r\n if (ABORT) return;\r\n\r\n ensureInitRuntime();\r\n\r\n preMain();\r\n\r\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\r\n\r\n\r\n postRun();\r\n }\r\n\r\n if (Module['setStatus']) {\r\n Module['setStatus']('Running...');\r\n setTimeout(function() {\r\n setTimeout(function() {\r\n Module['setStatus']('');\r\n }, 1);\r\n doRun();\r\n }, 1);\r\n } else {\r\n doRun();\r\n }\r\n}\r\nModule['run'] = run;\r\n\r\n\r\nfunction exit(status, implicit) {\r\n\r\n // if this is just main exit-ing implicitly, and the status is 0, then we\r\n // don't need to do anything here and can just leave. if the status is\r\n // non-zero, though, then we need to report it.\r\n // (we may have warned about this earlier, if a situation justifies doing so)\r\n if (implicit && Module['noExitRuntime'] && status === 0) {\r\n return;\r\n }\r\n\r\n if (Module['noExitRuntime']) {\r\n } else {\r\n\r\n ABORT = true;\r\n EXITSTATUS = status;\r\n STACKTOP = initialStackTop;\r\n\r\n exitRuntime();\r\n\r\n if (Module['onExit']) Module['onExit'](status);\r\n }\r\n\r\n Module['quit'](status, new ExitStatus(status));\r\n}\r\n\r\nvar abortDecorators = [];\r\n\r\nfunction abort(what) {\r\n if (Module['onAbort']) {\r\n Module['onAbort'](what);\r\n }\r\n\r\n if (what !== undefined) {\r\n out(what);\r\n err(what);\r\n what = JSON.stringify(what)\r\n } else {\r\n what = '';\r\n }\r\n\r\n ABORT = true;\r\n EXITSTATUS = 1;\r\n\r\n throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\r\n}\r\nModule['abort'] = abort;\r\n\r\n// {{PRE_RUN_ADDITIONS}}\r\n\r\nif (Module['preInit']) {\r\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\r\n while (Module['preInit'].length > 0) {\r\n Module['preInit'].pop()();\r\n }\r\n}\r\n\r\n\r\nModule[\"noExitRuntime\"] = true;\r\n\r\nrun();\r\n\r\n// {{POST_RUN_ADDITIONS}}\r\n\r\n\r\n\r\n\r\n\r\n// {{MODULE_ADDITIONS}}\r\n\r\n\r\n\r\nModule['ready'] = new Promise(function (resolve, reject) {\r\n delete Module['then']\r\n Module['onAbort'] = function (what) {\r\n reject(what)\r\n }\r\n addOnPostRun(function () {\r\n resolve(Module)\r\n })\r\n});\r\n\r\n\r\n\r\n return DiabloSpawn;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1466809;\r\nconst SpawnSize = 1337416;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\n\r\nconst ChunkSize = 1 << 20;\r\nclass RemoteFile {\r\n constructor(url) {\r\n const request = new XMLHttpRequest();\r\n request.open('HEAD', url, false);\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n }\r\n this.byteLength = parseInt(request.getResponseHeader('Content-Length'));\r\n\r\n this.url = url;\r\n\r\n this.buffer = new Uint8Array(this.byteLength);\r\n this.chunks = new Uint8Array(((this.byteLength + ChunkSize - 1) >> 20) | 0);\r\n }\r\n\r\n subarray(start, end) {\r\n let chunk0 = (start / ChunkSize) | 0;\r\n let chunk1 = ((end + ChunkSize - 1) / ChunkSize) | 0;\r\n let missing0 = chunk1, missing1 = chunk0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n if (!this.chunks[i]) {\r\n missing0 = Math.min(missing0, i);\r\n missing1 = Math.max(missing1, i);\r\n }\r\n }\r\n if (missing0 <= missing1) {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', this.url, false);\r\n request.setRequestHeader('Range', `bytes=${missing0 * ChunkSize}-${Math.min(missing1 * ChunkSize + ChunkSize - 1, this.byteLength - 1)}`);\r\n request.responseType = 'arraybuffer';\r\n request.send();\r\n if (request.status < 200 || request.status >= 300) {\r\n worker.postMessage({action: \"error\", error: `Failed to load remote file`});\r\n } else {\r\n const header = request.getResponseHeader('Content-Range');\r\n let m, start = 0;\r\n if (header && (m = header.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/))) {\r\n start = parseInt(m[1]);\r\n }\r\n this.buffer.set(new Uint8Array(request.response), start);\r\n chunk0 = ((start + ChunkSize - 1) / ChunkSize) | 0;\r\n chunk1 = ((start + request.response.byteLength + ChunkSize - 1) / ChunkSize) | 0;\r\n for (let i = chunk0; i < chunk1; ++i) {\r\n this.chunks[i] = 1;\r\n }\r\n }\r\n }\r\n return this.buffer.subarray(start, end);\r\n }\r\n}\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.byteLength));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard(...args) {\r\n worker.postMessage({action: \"keyboard\", rect: [...args]});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", rect: null});\r\n },\r\n\r\n websocket_closed() {\r\n return false;\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound_raw\", \"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func !== \"duplicate_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func !== \"duplicate_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nlet packetBatch = null;\r\nDApi.websocket_send = function(data) {\r\n if (packetBatch) {\r\n packetBatch.push(data.slice().buffer);\r\n } else {\r\n worker.postMessage({action: \"packet\", buffer: data});\r\n }\r\n};\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction try_api(func) {\r\n try {\r\n func();\r\n } catch (e) {\r\n if (typeof e === \"string\") {\r\n worker.postMessage({action: \"\"})\r\n }\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction call_api(func, ...params) {\r\n try_api(() => {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n packetBatch = [];\r\n if (func !== \"text\") {\r\n wasm[\"_\" + func](...params);\r\n } else {\r\n const ptr = wasm._DApi_SyncTextPtr();\r\n const text = params[0];\r\n const length = Math.min(text.length, 255);\r\n const heap = wasm.HEAPU8;\r\n for (let i = 0; i < length; ++i) {\r\n heap[ptr + i] = text.charCodeAt(i);\r\n }\r\n heap[ptr + length] = 0;\r\n wasm._DApi_SyncText(params[1]);\r\n }\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n }\r\n if (packetBatch.length) {\r\n worker.postMessage({action: \"packetBatch\", batch: packetBatch}, packetBatch);\r\n }\r\n audioBatch = null;\r\n audioTransfer = null;\r\n packetBatch = null;\r\n });\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n if (!mpq) {\r\n const name = (spawn ? 'spawn.mpq' : 'diabdat.mpq');\r\n if (!files.has(name)) {\r\n // This should never happen, but we do support remote loading\r\n files.set(name, new RemoteFile(`${process.env.PUBLIC_URL}/${name}`));\r\n }\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._SNet_InitWebsocket();\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n case \"packet\":\r\n try_api(() => {\r\n const ptr = wasm._DApi_AllocPacket(data.buffer.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data.buffer), ptr);\r\n });\r\n break;\r\n case \"packetBatch\":\r\n try_api(() => {\r\n for (let packet of data.batch) {\r\n const ptr = wasm._DApi_AllocPacket(packet.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(packet), ptr);\r\n }\r\n });\r\n break;\r\n default:\r\n }\r\n});\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/index.html b/index.html index 7a7fec0..7e39c50 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -DIABLO
\ No newline at end of file +DIABLO
\ No newline at end of file diff --git a/precache-manifest.2de6133ecdcacdfff2221e0c76abb588.js b/precache-manifest.2de6133ecdcacdfff2221e0c76abb588.js new file mode 100644 index 0000000..26047cc --- /dev/null +++ b/precache-manifest.2de6133ecdcacdfff2221e0c76abb588.js @@ -0,0 +1,62 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "89cb32a691656161f6815807d3d3d44a", + "url": "/diabloweb/c35eead49d6ec2ebde70.worker.js" + }, + { + "revision": "402b5052fe83838be2283db3436a659c", + "url": "/diabloweb/index.html" + }, + { + "revision": "f1ca639f26970de275d2", + "url": "/diabloweb/static/css/main.23365a12.chunk.css" + }, + { + "revision": "3cf69fc31045d26b8c18", + "url": "/diabloweb/static/js/0.59ece602.chunk.js" + }, + { + "revision": "c8e3e000ad8d686e80ff", + "url": "/diabloweb/static/js/5.356be092.chunk.js" + }, + { + "revision": "f1ca639f26970de275d2", + "url": "/diabloweb/static/js/main.7cab8a01.chunk.js" + }, + { + "revision": "077fe45e700d7971de0b", + "url": "/diabloweb/static/js/runtime~main.bf17ce54.js" + }, + { + "revision": "4bb3ed3f7b20a9072773", + "url": "/diabloweb/static/js/runtime~storage.83a78cef.js" + }, + { + "revision": "df76980f824b0a5ccccc", + "url": "/diabloweb/static/js/storage.96fdea8b.chunk.js" + }, + { + "revision": "4a6435cb8f87797d3b5298e0b11c636d", + "url": "/diabloweb/static/media/Diablo.4a6435cb.wasm" + }, + { + "revision": "ef6314a9a7752c34bb50d9a499c1029e", + "url": "/diabloweb/static/media/DiabloSpawn.ef6314a9.wasm" + }, + { + "revision": "ddc5d817712fdde5a23034ba0b719c78", + "url": "/diabloweb/static/media/move.ddc5d817.svg" + }, + { + "revision": "bd1e6e6341fd8472679cd9774f8e25b0", + "url": "/diabloweb/static/media/rmb.bd1e6e63.svg" + }, + { + "revision": "b40e4a63264bd9ddb182072a2fc6b25d", + "url": "/diabloweb/static/media/shift.b40e4a63.svg" + }, + { + "revision": "d436101b7261d5a4b19e8b027781387d", + "url": "/diabloweb/storage.html" + } +]); \ No newline at end of file diff --git a/precache-manifest.ab9a649b4c2f90ae61a19774a3fc687e.js b/precache-manifest.ab9a649b4c2f90ae61a19774a3fc687e.js deleted file mode 100644 index 14719ac..0000000 --- a/precache-manifest.ab9a649b4c2f90ae61a19774a3fc687e.js +++ /dev/null @@ -1,62 +0,0 @@ -self.__precacheManifest = (self.__precacheManifest || []).concat([ - { - "revision": "fe779b0d666c6700beb8e6acb7b4661d", - "url": "/diabloweb/5570637a84db2587cb4d.worker.js" - }, - { - "revision": "c1b7dd439305a501f66484ad1ab30251", - "url": "/diabloweb/index.html" - }, - { - "revision": "a50223fada87607f75b3", - "url": "/diabloweb/static/css/main.e49ccae7.chunk.css" - }, - { - "revision": "2eb7b521389328fe1396", - "url": "/diabloweb/static/js/0.44a402c1.chunk.js" - }, - { - "revision": "12e19ac7963812b2bf02", - "url": "/diabloweb/static/js/5.79c615e0.chunk.js" - }, - { - "revision": "a50223fada87607f75b3", - "url": "/diabloweb/static/js/main.5218c077.chunk.js" - }, - { - "revision": "077fe45e700d7971de0b", - "url": "/diabloweb/static/js/runtime~main.bf17ce54.js" - }, - { - "revision": "4bb3ed3f7b20a9072773", - "url": "/diabloweb/static/js/runtime~storage.83a78cef.js" - }, - { - "revision": "ad2e81f4fdcdc9400793", - "url": "/diabloweb/static/js/storage.89e2ac50.chunk.js" - }, - { - "revision": "85de21cc3a6004d900e8f786249c3ffe", - "url": "/diabloweb/static/media/Diablo.85de21cc.wasm" - }, - { - "revision": "5292efdb8a382572e665ddea5e7acea2", - "url": "/diabloweb/static/media/DiabloSpawn.5292efdb.wasm" - }, - { - "revision": "ddc5d817712fdde5a23034ba0b719c78", - "url": "/diabloweb/static/media/move.ddc5d817.svg" - }, - { - "revision": "bd1e6e6341fd8472679cd9774f8e25b0", - "url": "/diabloweb/static/media/rmb.bd1e6e63.svg" - }, - { - "revision": "b40e4a63264bd9ddb182072a2fc6b25d", - "url": "/diabloweb/static/media/shift.b40e4a63.svg" - }, - { - "revision": "5c2f1447ae8acb1ceee02549798e2d4a", - "url": "/diabloweb/storage.html" - } -]); \ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 295f0c0..4f47d79 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/diabloweb/precache-manifest.ab9a649b4c2f90ae61a19774a3fc687e.js" + "/diabloweb/precache-manifest.2de6133ecdcacdfff2221e0c76abb588.js" ); self.addEventListener('message', (event) => { diff --git a/static/css/main.e49ccae7.chunk.css b/static/css/main.23365a12.chunk.css similarity index 84% rename from static/css/main.e49ccae7.chunk.css rename to static/css/main.23365a12.chunk.css index 5aafe03..5531819 100644 --- a/static/css/main.e49ccae7.chunk.css +++ b/static/css/main.23365a12.chunk.css @@ -1,2 +1,2 @@ -a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,button,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}#root,.App,body{overflow:hidden;position:absolute;left:0;top:0;right:0;bottom:0}.App{background-color:#000}.App.dropping{background-color:#111}.Body,.BodyV{height:auto;left:calc(50% - 66.66667vh);width:133.33333vh}.Body,.Body .inner,.BodyV{position:absolute;top:0;bottom:0}.Body .inner{left:0;right:0}@media (max-aspect-ratio:4/3){.Body{top:calc(50% - 37.5vw);height:75vw}.Body,.BodyV{left:0;right:0;width:auto}}.BodyV{pointer-events:none}@media (min-aspect-ratio:3/1){.App.keyboard .Body .inner{position:absolute;left:50%;top:50%;width:75vw;height:56.25vw;-webkit-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}}.App canvas{width:100%;height:100%;cursor:none;visibility:hidden}.App.started canvas{visibility:visible}.App .keyboard{position:absolute;pointer-events:auto;background:transparent;color:transparent;border:none;outline:none;z-index:100;display:none;cursor:none}.App .keyboard::-moz-selection{background:transparent;color:transparent}.App .keyboard::selection{background:transparent;color:transparent}.App.keyboard .keyboard{display:block}.App .error,.App .loading,.App .start{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.App .error,.App .start{max-width:90%;max-height:90%;overflow-y:auto;pointer-events:auto}.App .start{border:1px solid #888;padding:12px;color:#fff;font-size:18px;text-align:center;background:#000}.App .start p{margin:10px 0}.App .start .startButton{display:inline-block;border:1px solid #fff;background:#000;font-size:2em;padding:4px 18px;cursor:pointer;margin-top:6px;width:8em}.App .start .startButton:hover{background-color:#111}.App .error{display:block;border:1px solid #800;background:#300;padding:12px;color:#f33;font-size:18px;text-align:center}.App .error:hover{text-decoration:none}.App .error .header{font-weight:700;font-size:1.2em;margin-bottom:.3em}.App .error .body{font-family:monospace}.App .error .footer{margin-top:.5em;font-size:.8em}.App .loading{color:#888;font-size:32px;text-align:center;width:75%}.App .loading .progressBar{display:block;position:absolute;margin-top:16px;width:100%;height:40px;border:2px solid #888}.App .loading .progressBar span{position:absolute;left:3px;top:3px;bottom:3px;right:3px}.App .loading .progressBar span span{position:absolute;left:0;top:0;bottom:0;background-color:#888}.App .link,.App a{display:inline-block;color:#7070ff;text-decoration:none;cursor:pointer}.App .link:hover,.App a:hover{text-decoration:underline}.App .touch-ui{display:none;pointer-events:none;position:absolute;top:0;bottom:0;width:25vh}.App .touch-ui .touch-button{position:absolute;left:50%;background-color:#444;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);pointer-events:auto;-webkit-mask-size:100% 100%;mask-size:100% 100%}.App .touch-ui .touch-button.active{background-color:#fff}.App .touch-ui .touch-button-0{top:16.7vh}.App .touch-ui .touch-button-1{top:50vh}.App .touch-ui .touch-button-2{top:83.3vh}.App .touch-ui.touch-mods{left:0}.App .touch-ui.touch-mods .touch-button{width:20vh;height:20vh;border-radius:10vh}.App .touch-ui.touch-mods .touch-button-0{-webkit-mask-image:url(/diabloweb/static/media/move.ddc5d817.svg);mask-image:url(/diabloweb/static/media/move.ddc5d817.svg)}.App .touch-ui.touch-mods .touch-button-1{-webkit-mask-image:url(/diabloweb/static/media/rmb.bd1e6e63.svg);mask-image:url(/diabloweb/static/media/rmb.bd1e6e63.svg)}.App .touch-ui.touch-mods .touch-button-2{-webkit-mask-image:url(/diabloweb/static/media/shift.b40e4a63.svg);mask-image:url(/diabloweb/static/media/shift.b40e4a63.svg)}.App .touch-ui.touch-belt{right:0}.App .touch-ui.touch-belt .touch-button{width:14vh;height:14vh;font-size:1vh;border-radius:20%;overflow:hidden;background-color:#000;border:2px solid #444}.App .touch-ui.touch-belt .touch-button canvas{position:absolute;left:5%;top:5%;width:90%;height:90%}.App .touch-ui.touch-belt .touch-button:after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;border-radius:20%;box-shadow:inset 0 0 1em 1.5em #000}.App.touch .touch-ui{display:block}@media (max-aspect-ratio:11/6){.App .touch-ui{width:calc(50vw - 66.66667vh)}}@media (max-aspect-ratio:26/15){.App .touch-ui{width:20vh}}@media (max-aspect-ratio:4/3){.App .touch-ui{width:auto;height:20vw}.App .touch-ui .touch-button{top:50%}.App .touch-ui .touch-button-0{left:16.7vw}.App .touch-ui .touch-button-1{left:50vw}.App .touch-ui .touch-button-2{left:83.3vw}.App .touch-ui.touch-mods{top:auto;right:0}.App .touch-ui.touch-mods .touch-button{width:20vw;height:20vw;border-radius:10vw}.App .touch-ui.touch-belt{bottom:auto;left:0}.App .touch-ui.touch-belt .touch-button{width:14vw;height:14vw;font-size:1vw}}@media (max-aspect-ratio:20/23){.App .touch-ui{height:calc(50vh - 37.5vw)}}@media (max-aspect-ratio:4/5){.App .touch-ui{height:25vw}} -/*# sourceMappingURL=main.e49ccae7.chunk.css.map */ \ No newline at end of file +a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,button,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}#root,.App,body{overflow:hidden;position:absolute;left:0;top:0;right:0;bottom:0}.App{background-color:#000}.App.dropping{background-color:#111}.Body,.BodyV{height:auto;left:calc(50% - 66.66667vh);width:133.33333vh}.Body,.Body .inner,.BodyV{position:absolute;top:0;bottom:0}.Body .inner{left:0;right:0}@media (max-aspect-ratio:4/3){.Body{top:calc(50% - 37.5vw);height:75vw}.Body,.BodyV{left:0;right:0;width:auto}}.BodyV{pointer-events:none}@media (min-aspect-ratio:3/1){.App.keyboard .Body .inner{position:absolute;left:50%;top:50%;width:75vw;height:56.25vw;-webkit-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}}.App canvas{width:100%;height:100%;cursor:none;visibility:hidden}.App.started canvas{visibility:visible}.App .keyboard{position:absolute;pointer-events:auto;background:transparent;color:transparent;border:none;outline:none;z-index:100;display:none;cursor:none}.App .keyboard::-moz-selection{background:transparent;color:transparent}.App .keyboard::selection{background:transparent;color:transparent}.App.keyboard .keyboard{display:block}.App .error,.App .loading,.App .start{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.App .error,.App .start{max-width:90%;max-height:90%;overflow-y:auto;pointer-events:auto}.App .start{border:1px solid #888;padding:12px;color:#fff;font-size:18px;text-align:center;background:#000}.App .start p{margin:10px 0}.App .start .startButton{display:inline-block;border:1px solid #fff;background:#000;font-size:2em;padding:4px 18px;cursor:pointer;margin-top:6px;width:8em}.App .start .startButton:hover{background-color:#111}.App .error{display:block;border:1px solid #800;background:#300;padding:12px;color:#f33;font-size:18px;text-align:center}.App .error:hover{text-decoration:none}.App .error .header{font-weight:700;font-size:1.2em;margin-bottom:.3em}.App .error .body{font-family:monospace}.App .error .footer{margin-top:.5em;font-size:.8em}.App .loading{color:#888;font-size:32px;text-align:center;width:75%}.App .loading .progressBar{display:block;position:absolute;margin-top:16px;width:100%;height:40px;border:2px solid #888}.App .loading .progressBar span{position:absolute;left:3px;top:3px;bottom:3px;right:3px}.App .loading .progressBar span span{position:absolute;left:0;top:0;bottom:0;background-color:#888}.App .link,.App a{display:inline-block;color:#7070ff;text-decoration:none;cursor:pointer}.App .link:hover,.App a:hover{text-decoration:underline}.App .touch-ui{display:none;pointer-events:none;position:absolute;top:0;bottom:0;width:25vh}.App .touch-ui .touch-button{position:absolute;left:50%;background-color:#444;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);pointer-events:auto;-webkit-mask-size:100% 100%;mask-size:100% 100%}.App .touch-ui .touch-button.active{background-color:#fff}.App .touch-ui .touch-button-0{top:16.7vh}.App .touch-ui .touch-button-1{top:50vh}.App .touch-ui .touch-button-2{top:83.3vh}.App .touch-ui.touch-mods{left:0}.App .touch-ui.touch-mods .touch-button{width:20vh;height:20vh;border-radius:10vh}.App .touch-ui.touch-mods .touch-button-0{-webkit-mask-image:url(/diabloweb/static/media/move.ddc5d817.svg);mask-image:url(/diabloweb/static/media/move.ddc5d817.svg)}.App .touch-ui.touch-mods .touch-button-1{-webkit-mask-image:url(/diabloweb/static/media/rmb.bd1e6e63.svg);mask-image:url(/diabloweb/static/media/rmb.bd1e6e63.svg)}.App .touch-ui.touch-mods .touch-button-2{-webkit-mask-image:url(/diabloweb/static/media/shift.b40e4a63.svg);mask-image:url(/diabloweb/static/media/shift.b40e4a63.svg)}.App .touch-ui.touch-belt{right:0}.App .touch-ui.touch-belt .touch-button{width:14vh;height:14vh;font-size:1vh;border-radius:20%;overflow:hidden;background-color:#000;border:2px solid #444}.App .touch-ui.touch-belt .touch-button canvas{position:absolute;left:5%;top:5%;width:90%;height:90%}.App .touch-ui.touch-belt .touch-button:after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;border-radius:20%;box-shadow:inset 0 0 1em 1.5em #000}.App.touch .touch-ui{display:block}.App.touch.keyboard .touch-ui{display:none}@media (max-aspect-ratio:11/6){.App .touch-ui{width:calc(50vw - 66.66667vh)}}@media (max-aspect-ratio:26/15){.App .touch-ui{width:20vh}}@media (max-aspect-ratio:4/3){.App .touch-ui{width:auto;height:20vw}.App .touch-ui .touch-button{top:50%}.App .touch-ui .touch-button-0{left:16.7vw}.App .touch-ui .touch-button-1{left:50vw}.App .touch-ui .touch-button-2{left:83.3vw}.App .touch-ui.touch-mods{top:auto;right:0}.App .touch-ui.touch-mods .touch-button{width:20vw;height:20vw;border-radius:10vw}.App .touch-ui.touch-belt{bottom:auto;left:0}.App .touch-ui.touch-belt .touch-button{width:14vw;height:14vw;font-size:1vw}}@media (max-aspect-ratio:20/23){.App .touch-ui{height:calc(50vh - 37.5vw)}}@media (max-aspect-ratio:4/5){.App .touch-ui{height:25vw}} +/*# sourceMappingURL=main.23365a12.chunk.css.map */ \ No newline at end of file diff --git a/static/css/main.23365a12.chunk.css.map b/static/css/main.23365a12.chunk.css.map new file mode 100644 index 0000000..1f72d3d --- /dev/null +++ b/static/css/main.23365a12.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["reset.css","C:\\Projects\\diabloweb\\diabloweb/src\\App.scss"],"names":[],"mappings":"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","file":"main.23365a12.chunk.css","sourcesContent":["/* http://meyerweb.com/eric/tools/css/reset/ \r\n v2.0 | 20110126\r\n License: none (public domain)\r\n*/\r\n\r\nhtml, body, div, span, applet, object, iframe,\r\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\r\na, abbr, acronym, address, big, cite, code,\r\ndel, dfn, em, img, ins, kbd, q, s, samp,\r\nsmall, strike, strong, sub, sup, tt, var,\r\nb, u, i, center,\r\ndl, dt, dd, ol, ul, li,\r\nfieldset, form, label, legend,\r\ntable, caption, tbody, tfoot, thead, tr, th, td,\r\narticle, aside, canvas, details, embed, \r\nfigure, figcaption, footer, header, hgroup, \r\nmenu, nav, output, ruby, section, summary,\r\ntime, mark, audio, video, input, button {\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tborder: 0;\r\n\tfont-size: 100%;\r\n font: inherit;\r\n\tvertical-align: baseline;\r\n}\r\n/* HTML5 display-role reset for older browsers */\r\narticle, aside, details, figcaption, figure, \r\nfooter, header, hgroup, menu, nav, section {\r\n\tdisplay: block;\r\n}\r\n/*body {\r\n\tline-height: 1;\r\n}*/\r\nol, ul {\r\n\tlist-style: none;\r\n}\r\nblockquote, q {\r\n\tquotes: none;\r\n}\r\nblockquote:before, blockquote:after,\r\nq:before, q:after {\r\n\tcontent: '';\r\n\tcontent: none;\r\n}\r\ntable {\r\n\tborder-collapse: collapse;\r\n\tborder-spacing: 0;\r\n}\r\n","body, #root, .App {\r\n overflow: hidden;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n}\r\n.App {\r\n background-color: #000;\r\n &.dropping {\r\n background-color: #111;\r\n }\r\n}\r\n.Body, .BodyV {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n height: auto;\r\n left: calc(50% - 200vh / 3);\r\n width: calc(400vh / 3);\r\n}\r\n.Body .inner {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n}\r\n@media (max-aspect-ratio: 640/480) {\r\n .Body {\r\n left: 0;\r\n right: 0;\r\n width: auto;\r\n top: calc(50% - 37.5vw);\r\n height: 75vw;\r\n }\r\n .BodyV {\r\n left: 0;\r\n right: 0;\r\n width: auto;\r\n }\r\n}\r\n.BodyV {\r\n pointer-events: none;\r\n}\r\n\r\n@media (min-aspect-ratio: 3/1) {\r\n .App.keyboard .Body .inner {\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n width: 75vw;\r\n height: 56.25vw;\r\n transform: translate(-50%, -70%);\r\n }\r\n}\r\n\r\n.App {\r\n canvas {\r\n width: 100%;\r\n height: 100%;\r\n cursor: none;\r\n visibility: hidden;\r\n }\r\n &.started canvas {\r\n visibility: visible;\r\n }\r\n .keyboard {\r\n position: absolute;\r\n pointer-events: auto;\r\n background: rgba(0, 0, 0, 0);\r\n color: rgba(0, 0, 0, 0);\r\n border: none;\r\n outline: none;\r\n z-index: 100;\r\n display: none;\r\n cursor: none;\r\n &::selection {\r\n background: rgba(0, 0, 0, 0);\r\n color: rgba(0, 0, 0, 0);\r\n }\r\n }\r\n &.keyboard .keyboard {\r\n display: block;\r\n }\r\n\r\n .start, .error, .loading {\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n }\r\n\r\n .start, .error {\r\n max-width: 90%;\r\n max-height: 90%;\r\n overflow-y: auto;\r\n pointer-events: auto;\r\n }\r\n\r\n .start {\r\n border: 1px solid #888;\r\n padding: 12px;\r\n color: #fff;\r\n font-size: 18px;\r\n text-align: center;\r\n background: #000;\r\n p {\r\n margin: 10px 0;\r\n }\r\n .startButton {\r\n display: inline-block;\r\n border: 1px solid #fff;\r\n background: #000;\r\n font-size: 2em;\r\n padding: 4px 18px;\r\n cursor: pointer;\r\n margin-top: 6px;\r\n width: 8em;\r\n &:hover {\r\n background-color: #111;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.App {\r\n .error {\r\n display: block;\r\n border: 1px solid #800;\r\n background: #300;\r\n padding: 12px;\r\n color: #f33;\r\n font-size: 18px;\r\n text-align: center;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n .header {\r\n font-weight: bold;\r\n font-size: 1.2em;\r\n margin-bottom: 0.3em;\r\n }\r\n .body {\r\n font-family: monospace;\r\n }\r\n .footer {\r\n margin-top: 0.5em;\r\n font-size: 0.8em;\r\n }\r\n }\r\n\r\n .loading {\r\n color: #888;\r\n font-size: 32px;\r\n text-align: center;\r\n width: 75%;\r\n .progressBar {\r\n display: block;\r\n position: absolute;\r\n margin-top: 16px;\r\n width: 100%;\r\n height: 40px;\r\n border: 2px solid #888;\r\n span {\r\n position: absolute;\r\n left: 3px;\r\n top: 3px;\r\n bottom: 3px;\r\n right: 3px;\r\n }\r\n span span {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n background-color: #888;\r\n }\r\n }\r\n }\r\n a, .link {\r\n display: inline-block;\r\n color: rgb(112, 112, 255);\r\n text-decoration: none;\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.App {\r\n .touch-ui {\r\n display: none;\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: 25vh;\r\n .touch-button {\r\n position: absolute;\r\n left: 50%;\r\n background-color: #444;\r\n transform: translate(-50%, -50%);\r\n pointer-events: auto;\r\n &.active {\r\n background-color: #fff;\r\n }\r\n mask-size: 100% 100%;\r\n }\r\n .touch-button-0 {\r\n top: 16.7vh;\r\n }\r\n .touch-button-1 {\r\n top: 50vh;\r\n }\r\n .touch-button-2 {\r\n top: 83.3vh;\r\n }\r\n }\r\n .touch-ui.touch-mods {\r\n left: 0;\r\n .touch-button {\r\n width: 20vh;\r\n height: 20vh;\r\n border-radius: 10vh;\r\n }\r\n .touch-button-0 {\r\n mask-image: url(./icons/move.svg);\r\n }\r\n .touch-button-1 {\r\n mask-image: url(./icons/rmb.svg);\r\n }\r\n .touch-button-2 {\r\n mask-image: url(./icons/shift.svg);\r\n }\r\n }\r\n .touch-ui.touch-belt {\r\n right: 0;\r\n .touch-button {\r\n width: 14vh;\r\n height: 14vh;\r\n font-size: 1vh;\r\n border-radius: 20%;\r\n overflow: hidden;\r\n background-color: #000;\r\n border: 2px solid #444;\r\n canvas {\r\n position: absolute;\r\n left: 5%;\r\n top: 5%;\r\n width: 90%;\r\n height: 90%;\r\n }\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n border-radius: 20%;\r\n box-shadow: inset 0 0 1em 1.5em #000;\r\n }\r\n }\r\n }\r\n &.touch .touch-ui {\r\n display: block;\r\n }\r\n &.touch.keyboard .touch-ui {\r\n display: none;\r\n }\r\n}\r\n@media (max-aspect-ratio: 880/480) {\r\n .App .touch-ui {\r\n width: calc(50vw - 200vh / 3);\r\n }\r\n}\r\n@media (max-aspect-ratio: 832/480) {\r\n .App .touch-ui {\r\n width: 20vh;\r\n }\r\n}\r\n@media (max-aspect-ratio: 640/480) {\r\n .App .touch-ui {\r\n width: auto;\r\n height: 20vw;\r\n .touch-button {\r\n top: 50%;\r\n }\r\n .touch-button-0 {\r\n left: 16.7vw;\r\n }\r\n .touch-button-1 {\r\n left: 50vw;\r\n }\r\n .touch-button-2 {\r\n left: 83.3vw;\r\n }\r\n }\r\n .App .touch-ui.touch-mods {\r\n top: auto;\r\n right: 0;\r\n .touch-button {\r\n width: 20vw;\r\n height: 20vw;\r\n border-radius: 10vw;\r\n }\r\n }\r\n .App .touch-ui.touch-belt {\r\n bottom: auto;\r\n left: 0;\r\n .touch-button {\r\n width: 14vw;\r\n height: 14vw;\r\n font-size: 1vw;\r\n }\r\n }\r\n}\r\n@media (max-aspect-ratio: 640/736) {\r\n .App .touch-ui {\r\n height: calc(50vh - 75vw / 2);\r\n }\r\n}\r\n@media (max-aspect-ratio: 640/800) {\r\n .App .touch-ui {\r\n height: 25vw;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/static/css/main.e49ccae7.chunk.css.map b/static/css/main.e49ccae7.chunk.css.map deleted file mode 100644 index 6b7a9dd..0000000 --- a/static/css/main.e49ccae7.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["reset.css","C:\\Projects\\diabloweb\\diabloweb/src\\App.scss"],"names":[],"mappings":"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","file":"main.e49ccae7.chunk.css","sourcesContent":["/* http://meyerweb.com/eric/tools/css/reset/ \r\n v2.0 | 20110126\r\n License: none (public domain)\r\n*/\r\n\r\nhtml, body, div, span, applet, object, iframe,\r\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\r\na, abbr, acronym, address, big, cite, code,\r\ndel, dfn, em, img, ins, kbd, q, s, samp,\r\nsmall, strike, strong, sub, sup, tt, var,\r\nb, u, i, center,\r\ndl, dt, dd, ol, ul, li,\r\nfieldset, form, label, legend,\r\ntable, caption, tbody, tfoot, thead, tr, th, td,\r\narticle, aside, canvas, details, embed, \r\nfigure, figcaption, footer, header, hgroup, \r\nmenu, nav, output, ruby, section, summary,\r\ntime, mark, audio, video, input, button {\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tborder: 0;\r\n\tfont-size: 100%;\r\n font: inherit;\r\n\tvertical-align: baseline;\r\n}\r\n/* HTML5 display-role reset for older browsers */\r\narticle, aside, details, figcaption, figure, \r\nfooter, header, hgroup, menu, nav, section {\r\n\tdisplay: block;\r\n}\r\n/*body {\r\n\tline-height: 1;\r\n}*/\r\nol, ul {\r\n\tlist-style: none;\r\n}\r\nblockquote, q {\r\n\tquotes: none;\r\n}\r\nblockquote:before, blockquote:after,\r\nq:before, q:after {\r\n\tcontent: '';\r\n\tcontent: none;\r\n}\r\ntable {\r\n\tborder-collapse: collapse;\r\n\tborder-spacing: 0;\r\n}\r\n","body, #root, .App {\r\n overflow: hidden;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n}\r\n.App {\r\n background-color: #000;\r\n &.dropping {\r\n background-color: #111;\r\n }\r\n}\r\n.Body, .BodyV {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n height: auto;\r\n left: calc(50% - 200vh / 3);\r\n width: calc(400vh / 3);\r\n}\r\n.Body .inner {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n}\r\n@media (max-aspect-ratio: 640/480) {\r\n .Body {\r\n left: 0;\r\n right: 0;\r\n width: auto;\r\n top: calc(50% - 37.5vw);\r\n height: 75vw;\r\n }\r\n .BodyV {\r\n left: 0;\r\n right: 0;\r\n width: auto;\r\n }\r\n}\r\n.BodyV {\r\n pointer-events: none;\r\n}\r\n\r\n@media (min-aspect-ratio: 3/1) {\r\n .App.keyboard .Body .inner {\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n width: 75vw;\r\n height: 56.25vw;\r\n transform: translate(-50%, -70%);\r\n }\r\n}\r\n\r\n.App {\r\n canvas {\r\n width: 100%;\r\n height: 100%;\r\n cursor: none;\r\n visibility: hidden;\r\n }\r\n &.started canvas {\r\n visibility: visible;\r\n }\r\n .keyboard {\r\n position: absolute;\r\n pointer-events: auto;\r\n background: rgba(0, 0, 0, 0);\r\n color: rgba(0, 0, 0, 0);\r\n border: none;\r\n outline: none;\r\n z-index: 100;\r\n display: none;\r\n cursor: none;\r\n &::selection {\r\n background: rgba(0, 0, 0, 0);\r\n color: rgba(0, 0, 0, 0);\r\n }\r\n }\r\n &.keyboard .keyboard {\r\n display: block;\r\n }\r\n\r\n .start, .error, .loading {\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n }\r\n\r\n .start, .error {\r\n max-width: 90%;\r\n max-height: 90%;\r\n overflow-y: auto;\r\n pointer-events: auto;\r\n }\r\n\r\n .start {\r\n border: 1px solid #888;\r\n padding: 12px;\r\n color: #fff;\r\n font-size: 18px;\r\n text-align: center;\r\n background: #000;\r\n p {\r\n margin: 10px 0;\r\n }\r\n .startButton {\r\n display: inline-block;\r\n border: 1px solid #fff;\r\n background: #000;\r\n font-size: 2em;\r\n padding: 4px 18px;\r\n cursor: pointer;\r\n margin-top: 6px;\r\n width: 8em;\r\n &:hover {\r\n background-color: #111;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.App {\r\n .error {\r\n display: block;\r\n border: 1px solid #800;\r\n background: #300;\r\n padding: 12px;\r\n color: #f33;\r\n font-size: 18px;\r\n text-align: center;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n .header {\r\n font-weight: bold;\r\n font-size: 1.2em;\r\n margin-bottom: 0.3em;\r\n }\r\n .body {\r\n font-family: monospace;\r\n }\r\n .footer {\r\n margin-top: 0.5em;\r\n font-size: 0.8em;\r\n }\r\n }\r\n\r\n .loading {\r\n color: #888;\r\n font-size: 32px;\r\n text-align: center;\r\n width: 75%;\r\n .progressBar {\r\n display: block;\r\n position: absolute;\r\n margin-top: 16px;\r\n width: 100%;\r\n height: 40px;\r\n border: 2px solid #888;\r\n span {\r\n position: absolute;\r\n left: 3px;\r\n top: 3px;\r\n bottom: 3px;\r\n right: 3px;\r\n }\r\n span span {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n background-color: #888;\r\n }\r\n }\r\n }\r\n a, .link {\r\n display: inline-block;\r\n color: rgb(112, 112, 255);\r\n text-decoration: none;\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.App {\r\n .touch-ui {\r\n display: none;\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: 25vh;\r\n .touch-button {\r\n position: absolute;\r\n left: 50%;\r\n background-color: #444;\r\n transform: translate(-50%, -50%);\r\n pointer-events: auto;\r\n &.active {\r\n background-color: #fff;\r\n }\r\n mask-size: 100% 100%;\r\n }\r\n .touch-button-0 {\r\n top: 16.7vh;\r\n }\r\n .touch-button-1 {\r\n top: 50vh;\r\n }\r\n .touch-button-2 {\r\n top: 83.3vh;\r\n }\r\n }\r\n .touch-ui.touch-mods {\r\n left: 0;\r\n .touch-button {\r\n width: 20vh;\r\n height: 20vh;\r\n border-radius: 10vh;\r\n }\r\n .touch-button-0 {\r\n mask-image: url(./icons/move.svg);\r\n }\r\n .touch-button-1 {\r\n mask-image: url(./icons/rmb.svg);\r\n }\r\n .touch-button-2 {\r\n mask-image: url(./icons/shift.svg);\r\n }\r\n }\r\n .touch-ui.touch-belt {\r\n right: 0;\r\n .touch-button {\r\n width: 14vh;\r\n height: 14vh;\r\n font-size: 1vh;\r\n border-radius: 20%;\r\n overflow: hidden;\r\n background-color: #000;\r\n border: 2px solid #444;\r\n canvas {\r\n position: absolute;\r\n left: 5%;\r\n top: 5%;\r\n width: 90%;\r\n height: 90%;\r\n }\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n border-radius: 20%;\r\n box-shadow: inset 0 0 1em 1.5em #000;\r\n }\r\n }\r\n }\r\n &.touch .touch-ui {\r\n display: block;\r\n }\r\n}\r\n@media (max-aspect-ratio: 880/480) {\r\n .App .touch-ui {\r\n width: calc(50vw - 200vh / 3);\r\n }\r\n}\r\n@media (max-aspect-ratio: 832/480) {\r\n .App .touch-ui {\r\n width: 20vh;\r\n }\r\n}\r\n@media (max-aspect-ratio: 640/480) {\r\n .App .touch-ui {\r\n width: auto;\r\n height: 20vw;\r\n .touch-button {\r\n top: 50%;\r\n }\r\n .touch-button-0 {\r\n left: 16.7vw;\r\n }\r\n .touch-button-1 {\r\n left: 50vw;\r\n }\r\n .touch-button-2 {\r\n left: 83.3vw;\r\n }\r\n }\r\n .App .touch-ui.touch-mods {\r\n top: auto;\r\n right: 0;\r\n .touch-button {\r\n width: 20vw;\r\n height: 20vw;\r\n border-radius: 10vw;\r\n }\r\n }\r\n .App .touch-ui.touch-belt {\r\n bottom: auto;\r\n left: 0;\r\n .touch-button {\r\n width: 14vw;\r\n height: 14vw;\r\n font-size: 1vw;\r\n }\r\n }\r\n}\r\n@media (max-aspect-ratio: 640/736) {\r\n .App .touch-ui {\r\n height: calc(50vh - 75vw / 2);\r\n }\r\n}\r\n@media (max-aspect-ratio: 640/800) {\r\n .App .touch-ui {\r\n height: 25vw;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/static/js/0.44a402c1.chunk.js b/static/js/0.44a402c1.chunk.js deleted file mode 100644 index c2d7a30..0000000 --- a/static/js/0.44a402c1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{1:function(t,e,r){t.exports=r(41)},13:function(t,e,r){t.exports=a;var n=r(42).EventEmitter,o=r(43),i=r(44),s="undefined"===typeof window?self:window,u=s.indexedDB||s.mozIndexedDB||s.webkitIndexedDB||s.msIndexedDB;function a(t,e,r){var o=this;if("string"!==typeof t)throw new Error("A name must be supplied of type string");if(!u)throw new Error("IndexedDB not supported");if("function"===typeof e)return new a(t,null,e);if(!(o instanceof a))return new a(t,e,r);e||(e={}),n.call(o),o._db=null,o._closed=!1,o._channel=null,o._waiters=[];var i=e.channel||s.BroadcastChannel;i&&(o._channel=new i(t),o._channel.onmessage=function(t){"add"===t.data.method?o.emit("add",t.data):"set"===t.data.method?o.emit("set",t.data):"remove"===t.data.method&&o.emit("remove",t.data)});var c=u.open(t);function l(t){f(t),o._close(t.target.error)}function h(){o._close()}c.onerror=function(t){f(t),o._close(t.target.error),r&&r(t.target.error)},c.onsuccess=function(t){if(o._closed)t.target.result.close();else{for(var e in o._db=t.target.result,o._db.onclose=h,o._db.onerror=l,o._waiters)o._waiters[e]._init(null);o._waiters=null,r&&r(null),o.emit("open")}},c.onupgradeneeded=function(t){t.target.result.createObjectStore("kv",{autoIncrement:!0})},o.on("newListener",function(t){if("add"!==t&&"set"!==t&&"remove"!==t)return;if(!o._channel)return o.emit("error",new Error("No BroadcastChannel support"))})}function c(t,e,r){if("function"===typeof e)return new c(t,null,e);if(this._kvStore=t,this._mode=e||"readwrite",this._objectStore=null,this._waiters=null,this.finished=!1,this.onfinish=i(r),this.done=this.onfinish.promise,"readonly"!==this._mode&&"readwrite"!==this._mode)throw new Error('mode must be either "readonly" or "readwrite"')}function f(t,e){if(null==e)return f(null,t);e.preventDefault(),e.stopPropagation(),t&&t(e.target.error)}a.INDEXEDDB_SUPPORT=null!=u,a.BROADCAST_SUPPORT=null!=s.BroadcastChannel,o(a,n),a.prototype.get=function(t,e){return this.transaction("readonly").get(t,e)},a.prototype.getMultiple=function(t,e){return this.transaction("readonly").getMultiple(t,e)},a.prototype.set=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).set(t,e,function(t){n=t}),r.promise},a.prototype.json=function(t,e){return this.transaction("readonly").json(t,e)},a.prototype.keys=function(t,e){return this.transaction("readonly").keys(t,e)},a.prototype.values=function(t,e){return this.transaction("readonly").values(t,e)},a.prototype.remove=function(t,e){e=i(e);var r=null;return this.transaction("readwrite",function(t){e(r=r||t)}).remove(t,function(t){r=t}),e.promise},a.prototype.clear=function(t){t=i(t);var e=null;return this.transaction("readwrite",function(r){t(e=e||r)}).clear(function(t){e=t}),t.promise},a.prototype.count=function(t,e){return this.transaction("readonly").count(t,e)},a.prototype.add=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).add(t,e,function(t){n=t}),r.promise},a.prototype.iterator=function(t,e){return this.transaction("readonly").iterator(t,e)},a.prototype.transaction=function(t,e){if(this._closed)throw new Error("Database is closed");var r=new c(this,t,e);return this._db?r._init(null):this._waiters.push(r),r},a.prototype.close=function(){this._close()},a.prototype._close=function(t){if(!this._closed){for(var e in this._closed=!0,this._db&&this._db.close(),this._channel&&this._channel.close(),this._db=null,this._channel=null,t&&this.emit("error",t),this.emit("close"),this._waiters)this._waiters[e]._init(t||new Error("Database is closed"));this._waiters=null,this.removeAllListeners()}},c.prototype._init=function(t){var e=this;if(!e.finished){if(t)return e._close(t);var r=e._kvStore._db.transaction("kv",e._mode);for(var n in r.oncomplete=function(){e._close(null)},r.onerror=o,r.onabort=o,e._objectStore=r.objectStore("kv"),e._waiters)e._waiters[n](null,e._objectStore);e._waiters=null}function o(t){f(t),e._close(t.target.error)}},c.prototype._getObjectStore=function(t){if(this.finished)throw new Error("Transaction is finished");if(this._objectStore)return t(null,this._objectStore);this._waiters=this._waiters||[],this._waiters.push(t)},c.prototype.set=function(t,e,r){var n=this;if(null==t||null==e)throw new Error("A key and value must be given");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=i.put(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"set",key:t,value:e}),r(null)}}),r.promise},c.prototype.add=function(t,e,r){var n=this;if(null==e&&null!=t)return n.add(void 0,t,r);if("function"===typeof e||null==e&&null==r)return n.add(void 0,t,e);if(null==e)throw new Error("A value must be provided as an argument");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=null==t?i.add(e):i.add(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"add",key:t,value:e}),r(null)}}),r.promise},c.prototype.get=function(t,e){if(null==t)throw new Error("A key must be given as an argument");return e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=n.get(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise},c.prototype.getMultiple=function(t,e){if(null==t)throw new Error("An array of keys must be given as an argument");return e=i(e),0===t.length?(e(null,[]),e.promise):(this._getObjectStore(function(r,n){if(r)return e(r);var o=t.slice().sort(),i=0,s={},u=function(){return t.map(function(t){return s[t]})},a=n.openCursor();a.onerror=f.bind(this,e),a.onsuccess=function(t){var r=t.target.result;if(r){for(var n=r.key;n>o[i];)if(++i===o.length)return void e(null,u());n===o[i]?(s[n]=r.value,r.continue()):r.continue(o[i])}else e(null,u())}}),e.promise)},c.prototype.json=function(t,e){if("function"===typeof t)return this.json(null,t);e=i(e);var r={};return this.iterator(t,function(t,n){if(t)return e(t);n?(r[n.key]=n.value,n.continue()):e(null,r)}),e.promise},c.prototype.keys=function(t,e){if("function"===typeof t)return this.keys(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.key),n.continue()):e(null,r)}),e.promise},c.prototype.values=function(t,e){if("function"===typeof t)return this.values(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.value),n.continue()):e(null,r)}),e.promise},c.prototype.remove=function(t,e){var r=this;if(null==t)throw new Error("A key must be given as an argument");return e=i(e),r._getObjectStore(function(n,o){if(n)return e(n);try{var i=o.delete(t)}catch(s){return e(s)}i.onerror=f.bind(this,e),i.onsuccess=function(){r._kvStore._channel&&r._kvStore._channel.postMessage({method:"remove",key:t}),e(null)}}),e.promise},c.prototype.clear=function(t){return t=i(t),this._getObjectStore(function(e,r){if(e)return t(e);try{var n=r.clear()}catch(o){return t(o)}n.onerror=f.bind(this,t),n.onsuccess=function(){t(null)}}),t.promise},c.prototype.count=function(t,e){return"function"===typeof t?this.count(null,t):(e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.count():n.count(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise)},c.prototype.iterator=function(t,e){if("function"===typeof t)return this.iterator(null,t);if("function"!==typeof e)throw new Error("A function must be given");this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.openCursor():n.openCursor(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){var r=t.target.result;e(null,r)}})},c.prototype.abort=function(){if(this.finished)throw new Error("Transaction is finished");this._objectStore&&this._objectStore.transaction.abort(),this._close(new Error("Transaction aborted"))},c.prototype._close=function(t){if(!this.finished){for(var e in this.finished=!0,this._kvStore=null,this._objectStore=null,this._waiters)this._waiters[e](t||new Error("Transaction is finished"));this._waiters=null,this.onfinish&&this.onfinish(t),this.onfinish=null}}},2:function(t,e,r){"use strict";function n(t,e,r,n,o,i,s){try{var u=t[i](s),a=u.value}catch(c){return void r(c)}u.done?e(a):Promise.resolve(a).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise(function(o,i){var s=t.apply(e,r);function u(t){n(s,o,i,u,a,"next",t)}function a(t){n(s,o,i,u,a,"throw",t)}u(void 0)})}}r.d(e,"a",function(){return o})},41:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function a(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(n||[]);return i._invoke=function(t,e,r){var n=f;return function(o,i){if(n===h)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return P()}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var u=x(s,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=h;var a=c(t,e,r);if("normal"===a.type){if(n=r.done?p:l,a.arg===v)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(n=p,r.method="throw",r.arg=a.arg)}}}(t,r,s),i}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=a;var f="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function d(){}function y(){}function m(){}var w={};w[i]=function(){return this};var g=Object.getPrototypeOf,_=g&&g(g(k([])));_&&_!==r&&n.call(_,i)&&(w=_);var b=m.prototype=d.prototype=Object.create(w);function L(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function E(t){var e;this._invoke=function(r,o){function i(){return new Promise(function(e,i){!function e(r,o,i,s){var u=c(t[r],t,o);if("throw"!==u.type){var a=u.arg,f=a.value;return f&&"object"===typeof f&&n.call(f,"__await")?Promise.resolve(f.__await).then(function(t){e("next",t,i,s)},function(t){e("throw",t,i,s)}):Promise.resolve(f).then(function(t){a.value=t,i(a)},function(t){return e("throw",t,i,s)})}s(u.arg)}(r,o,e,i)})}return e=e?e.then(i,i):i()}}function x(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,x(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=c(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function k(t){if(t){var r=t[i];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function r(){for(;++o=0;--i){var s=this.tryEntries[i],u=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var a=n.call(s,"catchLoc"),c=n.call(s,"finallyLoc");if(a&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:k(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},42:function(t,e,r){"use strict";var n,o="object"===typeof Reflect?Reflect:null,i=o&&"function"===typeof o.apply?o.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};n=o&&"function"===typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var a=10;function c(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function f(t,e,r,n){var o,i,s,u;if("function"!==typeof r)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r);if(void 0===(i=t._events)?(i=t._events=Object.create(null),t._eventsCount=0):(void 0!==i.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),i=t._events),s=i[e]),void 0===s)s=i[e]=r,++t._eventsCount;else if("function"===typeof s?s=i[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(o=c(t))>0&&s.length>o&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=s.length,u=a,console&&console.warn&&console.warn(u)}return t}function l(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},o=function(){for(var t=[],e=0;e0&&(s=e[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var a=o[t];if(void 0===a)return!1;if("function"===typeof a)i(a,this,e);else{var c=a.length,f=v(a,c);for(r=0;r=0;i--)if(r[i]===e||r[i].listener===e){s=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return h(this,t,!0)},u.prototype.rawListeners=function(t){return h(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},u.prototype.listenerCount=p,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},43:function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},44:function(t,e){t.exports=function(t){var e,r,n;if(null!=t&&"function"!==typeof t)throw new Error("cb must be a function");null==t&&"undefined"!==typeof Promise&&(e=new Promise(function(t,e){r=t,n=e}));function o(o,i){if(e)o?n(o):r(i);else if(t)t(o,i);else if(o)throw o}return o.promise=e,o}},5:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,o=!1,i=void 0;try{for(var s,u=t[Symbol.iterator]();!(n=(s=u.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(a){o=!0,i=a}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}r.d(e,"a",function(){return n})}}]); -//# sourceMappingURL=0.44a402c1.chunk.js.map \ No newline at end of file diff --git a/static/js/0.44a402c1.chunk.js.map b/static/js/0.44a402c1.chunk.js.map deleted file mode 100644 index 934628f..0000000 --- a/static/js/0.44a402c1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/idb-kv-store/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/promisize/index.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js"],"names":["module","exports","__webpack_require__","IdbKvStore","EventEmitter","inherits","promisize","global","window","self","IDB","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","name","opts","cb","this","Error","call","_db","_closed","_channel","_waiters","Channel","channel","BroadcastChannel","onmessage","event","data","method","emit","request","open","onDbError","handleError","_close","target","error","onclose","onerror","onsuccess","result","close","i","_init","onupgradeneeded","createObjectStore","autoIncrement","on","Transaction","kvStore","mode","_kvStore","_mode","_objectStore","finished","onfinish","done","promise","preventDefault","stopPropagation","INDEXEDDB_SUPPORT","BROADCAST_SUPPORT","prototype","get","key","transaction","getMultiple","keys","set","value","err","json","range","values","remove","clear","count","add","iterator","next","push","removeAllListeners","oncomplete","onabort","objectStore","_getObjectStore","put","e","bind","postMessage","undefined","length","sortedKeys","slice","sort","resultsMap","getReturnValue","map","cursorReq","openCursor","cursor","continue","delete","abort","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","args","arguments","apply","d","__webpack_exports__","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","GenStateSuspendedYield","makeInvokeMethod","obj","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","forEach","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","TypeError","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","that","_addListener","listener","prepend","m","events","existing","warning","newListener","unshift","warned","w","String","emitter","console","warn","_onceWrap","fired","wrapFn","wrapped","removeListener","_listeners","unwrap","evlistener","arr","ret","Array","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","RangeError","setMaxListeners","getMaxListeners","doError","er","message","handler","len","listeners","addListener","prependListener","once","prependOnceListener","list","position","originalListener","shift","index","spliceOne","off","rawListeners","eventNames","superCtor","super_","writable","configurable","TempCtor","res","rej","intercept","_slicedToArray","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest"],"mappings":"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","file":"static/js/0.44a402c1.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","/* eslint-env browser */\nmodule.exports = IdbKvStore;\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar inherits = require('inherits');\n\nvar promisize = require('promisize');\n\nvar global = typeof window === 'undefined' ? self : window;\nvar IDB = global.indexedDB || global.mozIndexedDB || global.webkitIndexedDB || global.msIndexedDB;\nIdbKvStore.INDEXEDDB_SUPPORT = IDB != null;\nIdbKvStore.BROADCAST_SUPPORT = global.BroadcastChannel != null;\ninherits(IdbKvStore, EventEmitter);\n\nfunction IdbKvStore(name, opts, cb) {\n var self = this;\n if (typeof name !== 'string') throw new Error('A name must be supplied of type string');\n if (!IDB) throw new Error('IndexedDB not supported');\n if (typeof opts === 'function') return new IdbKvStore(name, null, opts);\n if (!(self instanceof IdbKvStore)) return new IdbKvStore(name, opts, cb);\n if (!opts) opts = {};\n EventEmitter.call(self);\n self._db = null;\n self._closed = false;\n self._channel = null;\n self._waiters = [];\n var Channel = opts.channel || global.BroadcastChannel;\n\n if (Channel) {\n self._channel = new Channel(name);\n self._channel.onmessage = onChange;\n }\n\n var request = IDB.open(name);\n request.onerror = onerror;\n request.onsuccess = onsuccess;\n request.onupgradeneeded = onupgradeneeded;\n self.on('newListener', onNewListener);\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n\n if (cb) cb(event.target.error);\n }\n\n function onDbError(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n\n function onsuccess(event) {\n if (self._closed) {\n event.target.result.close();\n } else {\n self._db = event.target.result;\n self._db.onclose = onclose;\n self._db.onerror = onDbError;\n\n for (var i in self._waiters) {\n self._waiters[i]._init(null);\n }\n\n self._waiters = null;\n if (cb) cb(null);\n self.emit('open');\n }\n }\n\n function onupgradeneeded(event) {\n var db = event.target.result;\n db.createObjectStore('kv', {\n autoIncrement: true\n });\n }\n\n function onclose() {\n self._close();\n }\n\n function onNewListener(event) {\n if (event !== 'add' && event !== 'set' && event !== 'remove') return;\n if (!self._channel) return self.emit('error', new Error('No BroadcastChannel support'));\n }\n\n function onChange(event) {\n if (event.data.method === 'add') self.emit('add', event.data);else if (event.data.method === 'set') self.emit('set', event.data);else if (event.data.method === 'remove') self.emit('remove', event.data);\n }\n}\n\nIdbKvStore.prototype.get = function (key, cb) {\n return this.transaction('readonly').get(key, cb);\n};\n\nIdbKvStore.prototype.getMultiple = function (keys, cb) {\n return this.transaction('readonly').getMultiple(keys, cb);\n};\n\nIdbKvStore.prototype.set = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.set(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.json = function (range, cb) {\n return this.transaction('readonly').json(range, cb);\n};\n\nIdbKvStore.prototype.keys = function (range, cb) {\n return this.transaction('readonly').keys(range, cb);\n};\n\nIdbKvStore.prototype.values = function (range, cb) {\n return this.transaction('readonly').values(range, cb);\n};\n\nIdbKvStore.prototype.remove = function (key, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.remove(key, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.clear = function (cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.clear(function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.count = function (range, cb) {\n return this.transaction('readonly').count(range, cb);\n};\n\nIdbKvStore.prototype.add = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.add(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.iterator = function (range, next) {\n return this.transaction('readonly').iterator(range, next);\n};\n\nIdbKvStore.prototype.transaction = function (mode, onfinish) {\n if (this._closed) throw new Error('Database is closed');\n var transaction = new Transaction(this, mode, onfinish);\n if (this._db) transaction._init(null);else this._waiters.push(transaction);\n return transaction;\n};\n\nIdbKvStore.prototype.close = function () {\n this._close();\n};\n\nIdbKvStore.prototype._close = function (err) {\n if (this._closed) return;\n this._closed = true;\n if (this._db) this._db.close();\n if (this._channel) this._channel.close();\n this._db = null;\n this._channel = null;\n if (err) this.emit('error', err);\n this.emit('close');\n\n for (var i in this._waiters) {\n this._waiters[i]._init(err || new Error('Database is closed'));\n }\n\n this._waiters = null;\n this.removeAllListeners();\n};\n\nfunction Transaction(kvStore, mode, cb) {\n if (typeof mode === 'function') return new Transaction(kvStore, null, mode);\n this._kvStore = kvStore;\n this._mode = mode || 'readwrite';\n this._objectStore = null;\n this._waiters = null;\n this.finished = false;\n this.onfinish = promisize(cb); // `onfinish` public variable for backwards compatibility with v4.3.1\n\n this.done = this.onfinish.promise;\n\n if (this._mode !== 'readonly' && this._mode !== 'readwrite') {\n throw new Error('mode must be either \"readonly\" or \"readwrite\"');\n }\n}\n\nTransaction.prototype._init = function (err) {\n var self = this;\n if (self.finished) return;\n if (err) return self._close(err);\n\n var transaction = self._kvStore._db.transaction('kv', self._mode);\n\n transaction.oncomplete = oncomplete;\n transaction.onerror = onerror;\n transaction.onabort = onerror;\n self._objectStore = transaction.objectStore('kv');\n\n for (var i in self._waiters) {\n self._waiters[i](null, self._objectStore);\n }\n\n self._waiters = null;\n\n function oncomplete() {\n self._close(null);\n }\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n};\n\nTransaction.prototype._getObjectStore = function (cb) {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) return cb(null, this._objectStore);\n this._waiters = this._waiters || [];\n\n this._waiters.push(cb);\n};\n\nTransaction.prototype.set = function (key, value, cb) {\n var self = this;\n if (key == null || value == null) throw new Error('A key and value must be given');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.put(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'set',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.add = function (key, value, cb) {\n var self = this;\n if (value == null && key != null) return self.add(undefined, key, cb);\n if (typeof value === 'function' || value == null && cb == null) return self.add(undefined, key, value);\n if (value == null) throw new Error('A value must be provided as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = key == null ? objectStore.add(value) : objectStore.add(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'add',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.get = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.get(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.getMultiple = function (keys, cb) {\n var self = this;\n if (keys == null) throw new Error('An array of keys must be given as an argument');\n cb = promisize(cb);\n\n if (keys.length === 0) {\n cb(null, []);\n return cb.promise;\n }\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err); // Implementation mostly taken from https://www.codeproject.com/Articles/744986/How-to-do-some-magic-with-indexedDB\n\n var sortedKeys = keys.slice().sort();\n var i = 0;\n var resultsMap = {};\n\n var getReturnValue = function getReturnValue() {\n return keys.map(function (key) {\n return resultsMap[key];\n });\n };\n\n var cursorReq = objectStore.openCursor();\n cursorReq.onerror = handleError.bind(this, cb);\n\n cursorReq.onsuccess = function (event) {\n var cursor = event.target.result;\n\n if (!cursor) {\n cb(null, getReturnValue());\n return;\n }\n\n var key = cursor.key;\n\n while (key > sortedKeys[i]) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n\n if (i === sortedKeys.length) {\n // There is no next. Stop searching.\n cb(null, getReturnValue());\n return;\n }\n }\n\n if (key === sortedKeys[i]) {\n resultsMap[key] = cursor.value; // The current cursor value should be included and we should continue\n // a single step in case next item has the same key or possibly our\n // next key in sortedKeys.\n\n cursor.continue();\n } else {\n // cursor.key not yet at sortedKeys[i]. Forward cursor to the next key to hunt for.\n cursor.continue(sortedKeys[i]);\n }\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.json = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.json(null, range);\n cb = promisize(cb);\n var json = {};\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n json[cursor.key] = cursor.value;\n cursor.continue();\n } else {\n cb(null, json);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.keys = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.keys(null, range);\n cb = promisize(cb);\n var keys = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n keys.push(cursor.key);\n cursor.continue();\n } else {\n cb(null, keys);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.values = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.values(null, range);\n cb = promisize(cb);\n var values = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n values.push(cursor.value);\n cursor.continue();\n } else {\n cb(null, values);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.remove = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.delete(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'remove',\n key: key\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.clear = function (cb) {\n var self = this;\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.clear();\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.count = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.count(null, range);\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = range == null ? objectStore.count() : objectStore.count(range);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.iterator = function (range, next) {\n var self = this;\n if (typeof range === 'function') return self.iterator(null, range);\n if (typeof next !== 'function') throw new Error('A function must be given');\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return next(err);\n\n try {\n var request = range == null ? objectStore.openCursor() : objectStore.openCursor(range);\n } catch (e) {\n return next(e);\n }\n\n request.onerror = handleError.bind(this, next);\n\n request.onsuccess = function (event) {\n var cursor = event.target.result;\n next(null, cursor);\n };\n });\n};\n\nTransaction.prototype.abort = function () {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) this._objectStore.transaction.abort();\n\n this._close(new Error('Transaction aborted'));\n};\n\nTransaction.prototype._close = function (err) {\n if (this.finished) return;\n this.finished = true;\n this._kvStore = null;\n this._objectStore = null;\n\n for (var i in this._waiters) {\n this._waiters[i](err || new Error('Transaction is finished'));\n }\n\n this._waiters = null;\n if (this.onfinish) this.onfinish(err);\n this.onfinish = null;\n};\n\nfunction handleError(cb, event) {\n if (event == null) return handleError(null, cb);\n event.preventDefault();\n event.stopPropagation();\n if (cb) cb(event.target.error);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = $getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","module.exports = promisize;\n\nfunction promisize(cb) {\n var promise;\n var res;\n var rej;\n if (cb != null && typeof cb !== 'function') throw new Error('cb must be a function');\n\n if (cb == null && typeof Promise !== 'undefined') {\n promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n }\n\n function intercept(err, result) {\n if (promise) {\n if (err) rej(err);else res(result);\n } else {\n if (cb) cb(err, result);else if (err) throw err;\n }\n }\n\n intercept.promise = promise;\n return intercept;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/0.59ece602.chunk.js b/static/js/0.59ece602.chunk.js new file mode 100644 index 0000000..a74a5a6 --- /dev/null +++ b/static/js/0.59ece602.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{1:function(t,e,r){t.exports=r(41)},13:function(t,e,r){t.exports=a;var n=r(42).EventEmitter,o=r(43),i=r(44),s="undefined"===typeof window?self:window,u=s.indexedDB||s.mozIndexedDB||s.webkitIndexedDB||s.msIndexedDB;function a(t,e,r){var o=this;if("string"!==typeof t)throw new Error("A name must be supplied of type string");if(!u)throw new Error("IndexedDB not supported");if("function"===typeof e)return new a(t,null,e);if(!(o instanceof a))return new a(t,e,r);e||(e={}),n.call(o),o._db=null,o._closed=!1,o._channel=null,o._waiters=[];var i=e.channel||s.BroadcastChannel;i&&(o._channel=new i(t),o._channel.onmessage=function(t){"add"===t.data.method?o.emit("add",t.data):"set"===t.data.method?o.emit("set",t.data):"remove"===t.data.method&&o.emit("remove",t.data)});var c=u.open(t);function l(t){f(t),o._close(t.target.error)}function h(){o._close()}c.onerror=function(t){f(t),o._close(t.target.error),r&&r(t.target.error)},c.onsuccess=function(t){if(o._closed)t.target.result.close();else{for(var e in o._db=t.target.result,o._db.onclose=h,o._db.onerror=l,o._waiters)o._waiters[e]._init(null);o._waiters=null,r&&r(null),o.emit("open")}},c.onupgradeneeded=function(t){t.target.result.createObjectStore("kv",{autoIncrement:!0})},o.on("newListener",function(t){if("add"!==t&&"set"!==t&&"remove"!==t)return;if(!o._channel)return o.emit("error",new Error("No BroadcastChannel support"))})}function c(t,e,r){if("function"===typeof e)return new c(t,null,e);if(this._kvStore=t,this._mode=e||"readwrite",this._objectStore=null,this._waiters=null,this.finished=!1,this.onfinish=i(r),this.done=this.onfinish.promise,"readonly"!==this._mode&&"readwrite"!==this._mode)throw new Error('mode must be either "readonly" or "readwrite"')}function f(t,e){if(null==e)return f(null,t);e.preventDefault(),e.stopPropagation(),t&&t(e.target.error)}a.INDEXEDDB_SUPPORT=null!=u,a.BROADCAST_SUPPORT=null!=s.BroadcastChannel,o(a,n),a.prototype.get=function(t,e){return this.transaction("readonly").get(t,e)},a.prototype.getMultiple=function(t,e){return this.transaction("readonly").getMultiple(t,e)},a.prototype.set=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).set(t,e,function(t){n=t}),r.promise},a.prototype.json=function(t,e){return this.transaction("readonly").json(t,e)},a.prototype.keys=function(t,e){return this.transaction("readonly").keys(t,e)},a.prototype.values=function(t,e){return this.transaction("readonly").values(t,e)},a.prototype.remove=function(t,e){e=i(e);var r=null;return this.transaction("readwrite",function(t){e(r=r||t)}).remove(t,function(t){r=t}),e.promise},a.prototype.clear=function(t){t=i(t);var e=null;return this.transaction("readwrite",function(r){t(e=e||r)}).clear(function(t){e=t}),t.promise},a.prototype.count=function(t,e){return this.transaction("readonly").count(t,e)},a.prototype.add=function(t,e,r){r=i(r);var n=null;return this.transaction("readwrite",function(t){r(n=n||t)}).add(t,e,function(t){n=t}),r.promise},a.prototype.iterator=function(t,e){return this.transaction("readonly").iterator(t,e)},a.prototype.transaction=function(t,e){if(this._closed)throw new Error("Database is closed");var r=new c(this,t,e);return this._db?r._init(null):this._waiters.push(r),r},a.prototype.close=function(){this._close()},a.prototype._close=function(t){if(!this._closed){for(var e in this._closed=!0,this._db&&this._db.close(),this._channel&&this._channel.close(),this._db=null,this._channel=null,t&&this.emit("error",t),this.emit("close"),this._waiters)this._waiters[e]._init(t||new Error("Database is closed"));this._waiters=null,this.removeAllListeners()}},c.prototype._init=function(t){var e=this;if(!e.finished){if(t)return e._close(t);var r=e._kvStore._db.transaction("kv",e._mode);for(var n in r.oncomplete=function(){e._close(null)},r.onerror=o,r.onabort=o,e._objectStore=r.objectStore("kv"),e._waiters)e._waiters[n](null,e._objectStore);e._waiters=null}function o(t){f(t),e._close(t.target.error)}},c.prototype._getObjectStore=function(t){if(this.finished)throw new Error("Transaction is finished");if(this._objectStore)return t(null,this._objectStore);this._waiters=this._waiters||[],this._waiters.push(t)},c.prototype.set=function(t,e,r){var n=this;if(null==t||null==e)throw new Error("A key and value must be given");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=i.put(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"set",key:t,value:e}),r(null)}}),r.promise},c.prototype.add=function(t,e,r){var n=this;if(null==e&&null!=t)return n.add(void 0,t,r);if("function"===typeof e||null==e&&null==r)return n.add(void 0,t,e);if(null==e)throw new Error("A value must be provided as an argument");return r=i(r),n._getObjectStore(function(o,i){if(o)return r(o);try{var s=null==t?i.add(e):i.add(e,t)}catch(u){return r(u)}s.onerror=f.bind(this,r),s.onsuccess=function(){n._kvStore._channel&&n._kvStore._channel.postMessage({method:"add",key:t,value:e}),r(null)}}),r.promise},c.prototype.get=function(t,e){if(null==t)throw new Error("A key must be given as an argument");return e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=n.get(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise},c.prototype.getMultiple=function(t,e){if(null==t)throw new Error("An array of keys must be given as an argument");return e=i(e),0===t.length?(e(null,[]),e.promise):(this._getObjectStore(function(r,n){if(r)return e(r);var o=t.slice().sort(),i=0,s={},u=function(){return t.map(function(t){return s[t]})},a=n.openCursor();a.onerror=f.bind(this,e),a.onsuccess=function(t){var r=t.target.result;if(r){for(var n=r.key;n>o[i];)if(++i===o.length)return void e(null,u());n===o[i]?(s[n]=r.value,r.continue()):r.continue(o[i])}else e(null,u())}}),e.promise)},c.prototype.json=function(t,e){if("function"===typeof t)return this.json(null,t);e=i(e);var r={};return this.iterator(t,function(t,n){if(t)return e(t);n?(r[n.key]=n.value,n.continue()):e(null,r)}),e.promise},c.prototype.keys=function(t,e){if("function"===typeof t)return this.keys(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.key),n.continue()):e(null,r)}),e.promise},c.prototype.values=function(t,e){if("function"===typeof t)return this.values(null,t);e=i(e);var r=[];return this.iterator(t,function(t,n){if(t)return e(t);n?(r.push(n.value),n.continue()):e(null,r)}),e.promise},c.prototype.remove=function(t,e){var r=this;if(null==t)throw new Error("A key must be given as an argument");return e=i(e),r._getObjectStore(function(n,o){if(n)return e(n);try{var i=o.delete(t)}catch(s){return e(s)}i.onerror=f.bind(this,e),i.onsuccess=function(){r._kvStore._channel&&r._kvStore._channel.postMessage({method:"remove",key:t}),e(null)}}),e.promise},c.prototype.clear=function(t){return t=i(t),this._getObjectStore(function(e,r){if(e)return t(e);try{var n=r.clear()}catch(o){return t(o)}n.onerror=f.bind(this,t),n.onsuccess=function(){t(null)}}),t.promise},c.prototype.count=function(t,e){return"function"===typeof t?this.count(null,t):(e=i(e),this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.count():n.count(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){e(null,t.target.result)}}),e.promise)},c.prototype.iterator=function(t,e){if("function"===typeof t)return this.iterator(null,t);if("function"!==typeof e)throw new Error("A function must be given");this._getObjectStore(function(r,n){if(r)return e(r);try{var o=null==t?n.openCursor():n.openCursor(t)}catch(i){return e(i)}o.onerror=f.bind(this,e),o.onsuccess=function(t){var r=t.target.result;e(null,r)}})},c.prototype.abort=function(){if(this.finished)throw new Error("Transaction is finished");this._objectStore&&this._objectStore.transaction.abort(),this._close(new Error("Transaction aborted"))},c.prototype._close=function(t){if(!this.finished){for(var e in this.finished=!0,this._kvStore=null,this._objectStore=null,this._waiters)this._waiters[e](t||new Error("Transaction is finished"));this._waiters=null,this.onfinish&&this.onfinish(t),this.onfinish=null}}},2:function(t,e,r){"use strict";function n(t,e,r,n,o,i,s){try{var u=t[i](s),a=u.value}catch(c){return void r(c)}u.done?e(a):Promise.resolve(a).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise(function(o,i){var s=t.apply(e,r);function u(t){n(s,o,i,u,a,"next",t)}function a(t){n(s,o,i,u,a,"throw",t)}u(void 0)})}}r.d(e,"a",function(){return o})},4:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,o=!1,i=void 0;try{for(var s,u=t[Symbol.iterator]();!(n=(s=u.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(a){o=!0,i=a}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}r.d(e,"a",function(){return n})},41:function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function a(t,e,r,n){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(n||[]);return i._invoke=function(t,e,r){var n=f;return function(o,i){if(n===h)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return P()}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var u=x(s,r);if(u){if(u===v)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=h;var a=c(t,e,r);if("normal"===a.type){if(n=r.done?p:l,a.arg===v)continue;return{value:a.arg,done:r.done}}"throw"===a.type&&(n=p,r.method="throw",r.arg=a.arg)}}}(t,r,s),i}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(n){return{type:"throw",arg:n}}}t.wrap=a;var f="suspendedStart",l="suspendedYield",h="executing",p="completed",v={};function d(){}function y(){}function m(){}var w={};w[i]=function(){return this};var g=Object.getPrototypeOf,_=g&&g(g(k([])));_&&_!==r&&n.call(_,i)&&(w=_);var b=m.prototype=d.prototype=Object.create(w);function L(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function E(t){var e;this._invoke=function(r,o){function i(){return new Promise(function(e,i){!function e(r,o,i,s){var u=c(t[r],t,o);if("throw"!==u.type){var a=u.arg,f=a.value;return f&&"object"===typeof f&&n.call(f,"__await")?Promise.resolve(f.__await).then(function(t){e("next",t,i,s)},function(t){e("throw",t,i,s)}):Promise.resolve(f).then(function(t){a.value=t,i(a)},function(t){return e("throw",t,i,s)})}s(u.arg)}(r,o,e,i)})}return e=e?e.then(i,i):i()}}function x(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,x(t,r),"throw"===r.method))return v;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=c(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function O(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function k(t){if(t){var r=t[i];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function r(){for(;++o=0;--i){var s=this.tryEntries[i],u=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var a=n.call(s,"catchLoc"),c=n.call(s,"finallyLoc");if(a&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),O(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;O(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:k(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},42:function(t,e,r){"use strict";var n,o="object"===typeof Reflect?Reflect:null,i=o&&"function"===typeof o.apply?o.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};n=o&&"function"===typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var a=10;function c(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function f(t,e,r,n){var o,i,s,u;if("function"!==typeof r)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r);if(void 0===(i=t._events)?(i=t._events=Object.create(null),t._eventsCount=0):(void 0!==i.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),i=t._events),s=i[e]),void 0===s)s=i[e]=r,++t._eventsCount;else if("function"===typeof s?s=i[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(o=c(t))>0&&s.length>o&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=s.length,u=a,console&&console.warn&&console.warn(u)}return t}function l(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},o=function(){for(var t=[],e=0;e0&&(s=e[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var a=o[t];if(void 0===a)return!1;if("function"===typeof a)i(a,this,e);else{var c=a.length,f=v(a,c);for(r=0;r=0;i--)if(r[i]===e||r[i].listener===e){s=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return h(this,t,!0)},u.prototype.rawListeners=function(t){return h(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},u.prototype.listenerCount=p,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},43:function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},44:function(t,e){t.exports=function(t){var e,r,n;if(null!=t&&"function"!==typeof t)throw new Error("cb must be a function");null==t&&"undefined"!==typeof Promise&&(e=new Promise(function(t,e){r=t,n=e}));function o(o,i){if(e)o?n(o):r(i);else if(t)t(o,i);else if(o)throw o}return o.promise=e,o}}}]); +//# sourceMappingURL=0.59ece602.chunk.js.map \ No newline at end of file diff --git a/static/js/0.59ece602.chunk.js.map b/static/js/0.59ece602.chunk.js.map new file mode 100644 index 0000000..cdb282e --- /dev/null +++ b/static/js/0.59ece602.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/idb-kv-store/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/promisize/index.js"],"names":["module","exports","__webpack_require__","IdbKvStore","EventEmitter","inherits","promisize","global","window","self","IDB","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","name","opts","cb","this","Error","call","_db","_closed","_channel","_waiters","Channel","channel","BroadcastChannel","onmessage","event","data","method","emit","request","open","onDbError","handleError","_close","target","error","onclose","onerror","onsuccess","result","close","i","_init","onupgradeneeded","createObjectStore","autoIncrement","on","Transaction","kvStore","mode","_kvStore","_mode","_objectStore","finished","onfinish","done","promise","preventDefault","stopPropagation","INDEXEDDB_SUPPORT","BROADCAST_SUPPORT","prototype","get","key","transaction","getMultiple","keys","set","value","err","json","range","values","remove","clear","count","add","iterator","next","push","removeAllListeners","oncomplete","onabort","objectStore","_getObjectStore","put","e","bind","postMessage","undefined","length","sortedKeys","slice","sort","resultsMap","getReturnValue","map","cursorReq","openCursor","cursor","continue","delete","abort","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","args","arguments","apply","d","__webpack_exports__","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","Symbol","_iterableToArrayLimit","TypeError","_nonIterableRest","runtime","Op","Object","hasOwn","hasOwnProperty","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","GenStateSuspendedYield","makeInvokeMethod","obj","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","forEach","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","that","_addListener","listener","prepend","m","events","existing","warning","newListener","unshift","warned","w","String","emitter","console","warn","_onceWrap","fired","wrapFn","wrapped","removeListener","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","RangeError","setMaxListeners","getMaxListeners","doError","er","message","handler","len","listeners","addListener","prependListener","once","prependOnceListener","list","position","originalListener","shift","index","spliceOne","off","rawListeners","eventNames","superCtor","super_","writable","configurable","TempCtor","res","rej","intercept"],"mappings":"2EAAAA,EAAAC,QAAiBC,EAAQ,wBCCzBF,EAAAC,QAAAE,EAEA,IAAAC,EAAmBF,EAAQ,IAAQE,aAEnCC,EAAeH,EAAQ,IAEvBI,EAAgBJ,EAAQ,IAExBK,EAAA,qBAAAC,OAAAC,KAAAD,OACAE,EAAAH,EAAAI,WAAAJ,EAAAK,cAAAL,EAAAM,iBAAAN,EAAAO,YAKA,SAAAX,EAAAY,EAAAC,EAAAC,GACA,IAAAR,EAAAS,KACA,qBAAAH,EAAA,UAAAI,MAAA,0CACA,IAAAT,EAAA,UAAAS,MAAA,2BACA,uBAAAH,EAAA,WAAAb,EAAAY,EAAA,KAAAC,GACA,KAAAP,aAAAN,GAAA,WAAAA,EAAAY,EAAAC,EAAAC,GACAD,MAAA,IACAZ,EAAAgB,KAAAX,GACAA,EAAAY,IAAA,KACAZ,EAAAa,SAAA,EACAb,EAAAc,SAAA,KACAd,EAAAe,SAAA,GACA,IAAAC,EAAAT,EAAAU,SAAAnB,EAAAoB,iBAEAF,IACAhB,EAAAc,SAAA,IAAAE,EAAAV,GACAN,EAAAc,SAAAK,UAyDA,SAAAC,GACA,QAAAA,EAAAC,KAAAC,OAAAtB,EAAAuB,KAAA,MAAAH,EAAAC,MAAkE,QAAAD,EAAAC,KAAAC,OAAAtB,EAAAuB,KAAA,MAAAH,EAAAC,MAAmE,WAAAD,EAAAC,KAAAC,QAAAtB,EAAAuB,KAAA,SAAAH,EAAAC,QAvDrI,IAAAG,EAAAvB,EAAAwB,KAAAnB,GAcA,SAAAoB,EAAAN,GACAO,EAAAP,GAEApB,EAAA4B,OAAAR,EAAAS,OAAAC,OA4BA,SAAAC,IACA/B,EAAA4B,SA7CAJ,EAAAQ,QAKA,SAAAZ,GACAO,EAAAP,GAEApB,EAAA4B,OAAAR,EAAAS,OAAAC,OAEAtB,KAAAY,EAAAS,OAAAC,QATAN,EAAAS,UAkBA,SAAAb,GACA,GAAApB,EAAAa,QACAO,EAAAS,OAAAK,OAAAC,YACK,CAKL,QAAAC,KAJApC,EAAAY,IAAAQ,EAAAS,OAAAK,OACAlC,EAAAY,IAAAmB,UACA/B,EAAAY,IAAAoB,QAAAN,EAEA1B,EAAAe,SACAf,EAAAe,SAAAqB,GAAAC,MAAA,MAGArC,EAAAe,SAAA,KACAP,KAAA,MACAR,EAAAuB,KAAA,UA/BAC,EAAAc,gBAmCA,SAAAlB,GACAA,EAAAS,OAAAK,OACAK,kBAAA,MACAC,eAAA,KArCAxC,EAAAyC,GAAA,cA6CA,SAAArB,GACA,WAAAA,GAAA,QAAAA,GAAA,WAAAA,EAAA,OACA,IAAApB,EAAAc,SAAA,OAAAd,EAAAuB,KAAA,YAAAb,MAAA,kCAqHA,SAAAgC,EAAAC,EAAAC,EAAApC,GACA,uBAAAoC,EAAA,WAAAF,EAAAC,EAAA,KAAAC,GAUA,GATAnC,KAAAoC,SAAAF,EACAlC,KAAAqC,MAAAF,GAAA,YACAnC,KAAAsC,aAAA,KACAtC,KAAAM,SAAA,KACAN,KAAAuC,UAAA,EACAvC,KAAAwC,SAAApD,EAAAW,GAEAC,KAAAyC,KAAAzC,KAAAwC,SAAAE,QAEA,aAAA1C,KAAAqC,OAAA,cAAArC,KAAAqC,MACA,UAAApC,MAAA,iDAmXA,SAAAiB,EAAAnB,EAAAY,GACA,SAAAA,EAAA,OAAAO,EAAA,KAAAnB,GACAY,EAAAgC,iBACAhC,EAAAiC,kBACA7C,KAAAY,EAAAS,OAAAC,OAlkBApC,EAAA4D,kBAAA,MAAArD,EACAP,EAAA6D,kBAAA,MAAAzD,EAAAoB,iBACAtB,EAAAF,EAAAC,GAgFAD,EAAA8D,UAAAC,IAAA,SAAAC,EAAAlD,GACA,OAAAC,KAAAkD,YAAA,YAAAF,IAAAC,EAAAlD,IAGAd,EAAA8D,UAAAI,YAAA,SAAAC,EAAArD,GACA,OAAAC,KAAAkD,YAAA,YAAAC,YAAAC,EAAArD,IAGAd,EAAA8D,UAAAM,IAAA,SAAAJ,EAAAK,EAAAvD,GACAA,EAAAX,EAAAW,GACA,IAAAsB,EAAA,KAQA,OAPArB,KAAAkD,YAAA,qBAAAK,GAEAxD,EADAsB,KAAAkC,KAGAF,IAAAJ,EAAAK,EAAA,SAAAC,GACAlC,EAAAkC,IAEAxD,EAAA2C,SAGAzD,EAAA8D,UAAAS,KAAA,SAAAC,EAAA1D,GACA,OAAAC,KAAAkD,YAAA,YAAAM,KAAAC,EAAA1D,IAGAd,EAAA8D,UAAAK,KAAA,SAAAK,EAAA1D,GACA,OAAAC,KAAAkD,YAAA,YAAAE,KAAAK,EAAA1D,IAGAd,EAAA8D,UAAAW,OAAA,SAAAD,EAAA1D,GACA,OAAAC,KAAAkD,YAAA,YAAAQ,OAAAD,EAAA1D,IAGAd,EAAA8D,UAAAY,OAAA,SAAAV,EAAAlD,GACAA,EAAAX,EAAAW,GACA,IAAAsB,EAAA,KAQA,OAPArB,KAAAkD,YAAA,qBAAAK,GAEAxD,EADAsB,KAAAkC,KAGAI,OAAAV,EAAA,SAAAM,GACAlC,EAAAkC,IAEAxD,EAAA2C,SAGAzD,EAAA8D,UAAAa,MAAA,SAAA7D,GACAA,EAAAX,EAAAW,GACA,IAAAsB,EAAA,KAQA,OAPArB,KAAAkD,YAAA,qBAAAK,GAEAxD,EADAsB,KAAAkC,KAGAK,MAAA,SAAAL,GACAlC,EAAAkC,IAEAxD,EAAA2C,SAGAzD,EAAA8D,UAAAc,MAAA,SAAAJ,EAAA1D,GACA,OAAAC,KAAAkD,YAAA,YAAAW,MAAAJ,EAAA1D,IAGAd,EAAA8D,UAAAe,IAAA,SAAAb,EAAAK,EAAAvD,GACAA,EAAAX,EAAAW,GACA,IAAAsB,EAAA,KAQA,OAPArB,KAAAkD,YAAA,qBAAAK,GAEAxD,EADAsB,KAAAkC,KAGAO,IAAAb,EAAAK,EAAA,SAAAC,GACAlC,EAAAkC,IAEAxD,EAAA2C,SAGAzD,EAAA8D,UAAAgB,SAAA,SAAAN,EAAAO,GACA,OAAAhE,KAAAkD,YAAA,YAAAa,SAAAN,EAAAO,IAGA/E,EAAA8D,UAAAG,YAAA,SAAAf,EAAAK,GACA,GAAAxC,KAAAI,QAAA,UAAAH,MAAA,sBACA,IAAAiD,EAAA,IAAAjB,EAAAjC,KAAAmC,EAAAK,GAEA,OADAxC,KAAAG,IAAA+C,EAAAtB,MAAA,MAAwC5B,KAAAM,SAAA2D,KAAAf,GACxCA,GAGAjE,EAAA8D,UAAArB,MAAA,WACA1B,KAAAmB,UAGAlC,EAAA8D,UAAA5B,OAAA,SAAAoC,GACA,IAAAvD,KAAAI,QAAA,CASA,QAAAuB,KARA3B,KAAAI,SAAA,EACAJ,KAAAG,KAAAH,KAAAG,IAAAuB,QACA1B,KAAAK,UAAAL,KAAAK,SAAAqB,QACA1B,KAAAG,IAAA,KACAH,KAAAK,SAAA,KACAkD,GAAAvD,KAAAc,KAAA,QAAAyC,GACAvD,KAAAc,KAAA,SAEAd,KAAAM,SACAN,KAAAM,SAAAqB,GAAAC,MAAA2B,GAAA,IAAAtD,MAAA,uBAGAD,KAAAM,SAAA,KACAN,KAAAkE,uBAmBAjC,EAAAc,UAAAnB,MAAA,SAAA2B,GACA,IAAAhE,EAAAS,KACA,IAAAT,EAAAgD,SAAA,CACA,GAAAgB,EAAA,OAAAhE,EAAA4B,OAAAoC,GAEA,IAAAL,EAAA3D,EAAA6C,SAAAjC,IAAA+C,YAAA,KAAA3D,EAAA8C,OAOA,QAAAV,KALAuB,EAAAiB,WAWA,WACA5E,EAAA4B,OAAA,OAXA+B,EAAA3B,UACA2B,EAAAkB,QAAA7C,EACAhC,EAAA+C,aAAAY,EAAAmB,YAAA,MAEA9E,EAAAe,SACAf,EAAAe,SAAAqB,GAAA,KAAApC,EAAA+C,cAGA/C,EAAAe,SAAA,KAMA,SAAAiB,EAAAZ,GACAO,EAAAP,GAEApB,EAAA4B,OAAAR,EAAAS,OAAAC,SAIAY,EAAAc,UAAAuB,gBAAA,SAAAvE,GACA,GAAAC,KAAAuC,SAAA,UAAAtC,MAAA,2BACA,GAAAD,KAAAsC,aAAA,OAAAvC,EAAA,KAAAC,KAAAsC,cACAtC,KAAAM,SAAAN,KAAAM,UAAA,GAEAN,KAAAM,SAAA2D,KAAAlE,IAGAkC,EAAAc,UAAAM,IAAA,SAAAJ,EAAAK,EAAAvD,GACA,IAAAR,EAAAS,KACA,SAAAiD,GAAA,MAAAK,EAAA,UAAArD,MAAA,iCA2BA,OA1BAF,EAAAX,EAAAW,GAEAR,EAAA+E,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IACA,IAAAxC,EAAAsD,EAAAE,IAAAjB,EAAAL,GACK,MAAAuB,GACL,OAAAzE,EAAAyE,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAgB,EAAAS,UAAA,WACAjC,EAAA6C,SAAA/B,UACAd,EAAA6C,SAAA/B,SAAAqE,YAAA,CACA7D,OAAA,MACAoC,MACAK,UAIAvD,EAAA,SAIAA,EAAA2C,SAGAT,EAAAc,UAAAe,IAAA,SAAAb,EAAAK,EAAAvD,GACA,IAAAR,EAAAS,KACA,SAAAsD,GAAA,MAAAL,EAAA,OAAA1D,EAAAuE,SAAAa,EAAA1B,EAAAlD,GACA,uBAAAuD,GAAA,MAAAA,GAAA,MAAAvD,EAAA,OAAAR,EAAAuE,SAAAa,EAAA1B,EAAAK,GACA,SAAAA,EAAA,UAAArD,MAAA,2CA2BA,OA1BAF,EAAAX,EAAAW,GAEAR,EAAA+E,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IACA,IAAAxC,EAAA,MAAAkC,EAAAoB,EAAAP,IAAAR,GAAAe,EAAAP,IAAAR,EAAAL,GACK,MAAAuB,GACL,OAAAzE,EAAAyE,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAgB,EAAAS,UAAA,WACAjC,EAAA6C,SAAA/B,UACAd,EAAA6C,SAAA/B,SAAAqE,YAAA,CACA7D,OAAA,MACAoC,MACAK,UAIAvD,EAAA,SAIAA,EAAA2C,SAGAT,EAAAc,UAAAC,IAAA,SAAAC,EAAAlD,GAEA,SAAAkD,EAAA,UAAAhD,MAAA,sCAmBA,OAlBAF,EAAAX,EAAAW,GAFAC,KAIAsE,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IACA,IAAAxC,EAAAsD,EAAArB,IAAAC,GACK,MAAAuB,GACL,OAAAzE,EAAAyE,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAgB,EAAAS,UAAA,SAAAb,GACAZ,EAAA,KAAAY,EAAAS,OAAAK,WAIA1B,EAAA2C,SAGAT,EAAAc,UAAAI,YAAA,SAAAC,EAAArD,GAEA,SAAAqD,EAAA,UAAAnD,MAAA,iDAGA,OAFAF,EAAAX,EAAAW,GAEA,IAAAqD,EAAAwB,QACA7E,EAAA,SACAA,EAAA2C,UANA1C,KASAsE,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IAAAsB,EAAAzB,EAAA0B,QAAAC,OACApD,EAAA,EACAqD,EAAA,GAEAC,EAAA,WACA,OAAA7B,EAAA8B,IAAA,SAAAjC,GACA,OAAA+B,EAAA/B,MAIAkC,EAAAd,EAAAe,aACAD,EAAA5D,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAoF,EAAA3D,UAAA,SAAAb,GACA,IAAA0E,EAAA1E,EAAAS,OAAAK,OAEA,GAAA4D,EAAA,CAOA,IAFA,IAAApC,EAAAoC,EAAApC,IAEAA,EAAA4B,EAAAlD,IAIA,KAFAA,IAEAkD,EAAAD,OAGA,YADA7E,EAAA,KAAAkF,KAKAhC,IAAA4B,EAAAlD,IACAqD,EAAA/B,GAAAoC,EAAA/B,MAIA+B,EAAAC,YAGAD,EAAAC,SAAAT,EAAAlD,SAzBA5B,EAAA,KAAAkF,QA8BAlF,EAAA2C,UAGAT,EAAAc,UAAAS,KAAA,SAAAC,EAAA1D,GAEA,uBAAA0D,EAAA,OADAzD,KACAwD,KAAA,KAAAC,GACA1D,EAAAX,EAAAW,GACA,IAAAyD,EAAA,GAWA,OAdAxD,KAIA+D,SAAAN,EAAA,SAAAF,EAAA8B,GACA,GAAA9B,EAAA,OAAAxD,EAAAwD,GAEA8B,GACA7B,EAAA6B,EAAApC,KAAAoC,EAAA/B,MACA+B,EAAAC,YAEAvF,EAAA,KAAAyD,KAGAzD,EAAA2C,SAGAT,EAAAc,UAAAK,KAAA,SAAAK,EAAA1D,GAEA,uBAAA0D,EAAA,OADAzD,KACAoD,KAAA,KAAAK,GACA1D,EAAAX,EAAAW,GACA,IAAAqD,EAAA,GAWA,OAdApD,KAIA+D,SAAAN,EAAA,SAAAF,EAAA8B,GACA,GAAA9B,EAAA,OAAAxD,EAAAwD,GAEA8B,GACAjC,EAAAa,KAAAoB,EAAApC,KACAoC,EAAAC,YAEAvF,EAAA,KAAAqD,KAGArD,EAAA2C,SAGAT,EAAAc,UAAAW,OAAA,SAAAD,EAAA1D,GAEA,uBAAA0D,EAAA,OADAzD,KACA0D,OAAA,KAAAD,GACA1D,EAAAX,EAAAW,GACA,IAAA2D,EAAA,GAWA,OAdA1D,KAIA+D,SAAAN,EAAA,SAAAF,EAAA8B,GACA,GAAA9B,EAAA,OAAAxD,EAAAwD,GAEA8B,GACA3B,EAAAO,KAAAoB,EAAA/B,OACA+B,EAAAC,YAEAvF,EAAA,KAAA2D,KAGA3D,EAAA2C,SAGAT,EAAAc,UAAAY,OAAA,SAAAV,EAAAlD,GACA,IAAAR,EAAAS,KACA,SAAAiD,EAAA,UAAAhD,MAAA,sCA0BA,OAzBAF,EAAAX,EAAAW,GAEAR,EAAA+E,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IACA,IAAAxC,EAAAsD,EAAAkB,OAAAtC,GACK,MAAAuB,GACL,OAAAzE,EAAAyE,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAgB,EAAAS,UAAA,WACAjC,EAAA6C,SAAA/B,UACAd,EAAA6C,SAAA/B,SAAAqE,YAAA,CACA7D,OAAA,SACAoC,QAIAlD,EAAA,SAIAA,EAAA2C,SAGAT,EAAAc,UAAAa,MAAA,SAAA7D,GAoBA,OAlBAA,EAAAX,EAAAW,GADAC,KAGAsE,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IACA,IAAAxC,EAAAsD,EAAAT,QACK,MAAAY,GACL,OAAAzE,EAAAyE,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAgB,EAAAS,UAAA,WACAzB,EAAA,SAIAA,EAAA2C,SAGAT,EAAAc,UAAAc,MAAA,SAAAJ,EAAA1D,GAEA,0BAAA0D,EADAzD,KACA6D,MAAA,KAAAJ,IACA1D,EAAAX,EAAAW,GAFAC,KAIAsE,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAxD,EAAAwD,GAEA,IACA,IAAAxC,EAAA,MAAA0C,EAAAY,EAAAR,QAAAQ,EAAAR,MAAAJ,GACK,MAAAe,GACL,OAAAzE,EAAAyE,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAD,GAEAgB,EAAAS,UAAA,SAAAb,GACAZ,EAAA,KAAAY,EAAAS,OAAAK,WAIA1B,EAAA2C,UAGAT,EAAAc,UAAAgB,SAAA,SAAAN,EAAAO,GAEA,uBAAAP,EAAA,OADAzD,KACA+D,SAAA,KAAAN,GACA,uBAAAO,EAAA,UAAA/D,MAAA,4BAFAD,KAIAsE,gBAAA,SAAAf,EAAAc,GACA,GAAAd,EAAA,OAAAS,EAAAT,GAEA,IACA,IAAAxC,EAAA,MAAA0C,EAAAY,EAAAe,aAAAf,EAAAe,WAAA3B,GACK,MAAAe,GACL,OAAAR,EAAAQ,GAGAzD,EAAAQ,QAAAL,EAAAuD,KAAAzE,KAAAgE,GAEAjD,EAAAS,UAAA,SAAAb,GACA,IAAA0E,EAAA1E,EAAAS,OAAAK,OACAuC,EAAA,KAAAqB,OAKApD,EAAAc,UAAAyC,MAAA,WACA,GAAAxF,KAAAuC,SAAA,UAAAtC,MAAA,2BACAD,KAAAsC,cAAAtC,KAAAsC,aAAAY,YAAAsC,QAEAxF,KAAAmB,OAAA,IAAAlB,MAAA,yBAGAgC,EAAAc,UAAA5B,OAAA,SAAAoC,GACA,IAAAvD,KAAAuC,SAAA,CAKA,QAAAZ,KAJA3B,KAAAuC,UAAA,EACAvC,KAAAoC,SAAA,KACApC,KAAAsC,aAAA,KAEAtC,KAAAM,SACAN,KAAAM,SAAAqB,GAAA4B,GAAA,IAAAtD,MAAA,4BAGAD,KAAAM,SAAA,KACAN,KAAAwC,UAAAxC,KAAAwC,SAAAe,GACAvD,KAAAwC,SAAA,uCCtkBA,SAAAiD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7C,EAAA8C,GACA,IACA,IAAAC,EAAAN,EAAAzC,GAAA8C,GACAzC,EAAA0C,EAAA1C,MACG,MAAAjC,GAEH,YADAuE,EAAAvE,GAIA2E,EAAAvD,KACAkD,EAAArC,GAEA2C,QAAAN,QAAArC,GAAA4C,KAAAL,EAAAC,GAIe,SAAAK,EAAAC,GACf,kBACA,IAAA7G,EAAAS,KACAqG,EAAAC,UACA,WAAAL,QAAA,SAAAN,EAAAC,GACA,IAAAF,EAAAU,EAAAG,MAAAhH,EAAA8G,GAEA,SAAAR,EAAAvC,GACAmC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxC,GAGA,SAAAwC,EAAAvC,GACAkC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAAvC,GAGAsC,OAAAlB,MA/BA3F,EAAAwH,EAAAC,EAAA,sBAAAN,oCCGe,SAAAO,EAAAC,EAAAhF,GACf,OCJe,SAAAgF,GACf,GAAAC,MAAAC,QAAAF,GAAA,OAAAA,EDGSG,CAAcH,IEJR,SAAAA,EAAAhF,GACf,IAAAoF,EAAA,GACAC,GAAA,EACAC,GAAA,EACAC,OAAAvC,EAEA,IACA,QAAAwC,EAAAC,EAAAT,EAAAU,OAAAtD,cAA6CiD,GAAAG,EAAAC,EAAApD,QAAAvB,QAC7CsE,EAAA9C,KAAAkD,EAAA7D,QAEA3B,GAAAoF,EAAAnC,SAAAjD,GAH4EqF,GAAA,IAKzE,MAAAzD,GACH0D,GAAA,EACAC,EAAA3D,EACG,QACH,IACAyD,GAAA,MAAAI,EAAA,QAAAA,EAAA,SACK,QACL,GAAAH,EAAA,MAAAC,GAIA,OAAAH,EFnBgCO,CAAoBX,EAAAhF,IGJrC,WACf,UAAA4F,UAAA,wDHGgEC,GAJhExI,EAAAwH,EAAAC,EAAA,sBAAAC,wBIMA,IAAAe,EAAA,SAAA1I,GACA,aAEA,IAEA4F,EAFA+C,EAAAC,OAAA5E,UACA6E,EAAAF,EAAAG,eAGAC,EAAA,oBAAAT,cAAA,GACAU,EAAAD,EAAA/D,UAAA,aACAiE,EAAAF,EAAAG,eAAA,kBACAC,EAAAJ,EAAAK,aAAA,gBAEA,SAAAC,EAAAC,EAAAC,EAAA/I,EAAAgJ,GAEA,IAAAC,EAAAF,KAAAvF,qBAAA0F,EAAAH,EAAAG,EACAC,EAAAf,OAAAgB,OAAAH,EAAAzF,WACA6F,EAAA,IAAAC,EAAAN,GAAA,IAIA,OADAG,EAAAI,QA8LA,SAAAT,EAAA9I,EAAAqJ,GACA,IAAAG,EAAAC,EACA,gBAAAnI,EAAAkF,GACA,GAAAgD,IAAAE,EACA,UAAAhJ,MAAA,gCAGA,GAAA8I,IAAAG,EAAA,CACA,aAAArI,EACA,MAAAkF,EAKA,OAAAoD,IAMA,IAHAP,EAAA/H,SACA+H,EAAA7C,QAEA,CACA,IAAAqD,EAAAR,EAAAQ,SAEA,GAAAA,EAAA,CACA,IAAAC,EAAAC,EAAAF,EAAAR,GAEA,GAAAS,EAAA,CACA,GAAAA,IAAAE,EAAA,SACA,OAAAF,GAIA,YAAAT,EAAA/H,OAGA+H,EAAAY,KAAAZ,EAAAa,MAAAb,EAAA7C,SACS,aAAA6C,EAAA/H,OAAA,CACT,GAAAkI,IAAAC,EAEA,MADAD,EAAAG,EACAN,EAAA7C,IAGA6C,EAAAc,kBAAAd,EAAA7C,SACS,WAAA6C,EAAA/H,QACT+H,EAAAe,OAAA,SAAAf,EAAA7C,KAGAgD,EAAAE,EACA,IAAAW,EAAAC,EAAAxB,EAAA9I,EAAAqJ,GAEA,cAAAgB,EAAAE,KAAA,CAKA,GAFAf,EAAAH,EAAAnG,KAAAyG,EAAAa,EAEAH,EAAA7D,MAAAwD,EACA,SAGA,OACAjG,MAAAsG,EAAA7D,IACAtD,KAAAmG,EAAAnG,MAES,UAAAmH,EAAAE,OACTf,EAAAG,EAGAN,EAAA/H,OAAA,QACA+H,EAAA7C,IAAA6D,EAAA7D,OAlQAiE,CAAA3B,EAAA9I,EAAAqJ,GACAF,EAcA,SAAAmB,EAAAzD,EAAA6D,EAAAlE,GACA,IACA,OACA+D,KAAA,SACA/D,IAAAK,EAAAlG,KAAA+J,EAAAlE,IAEK,MAAAxC,GACL,OACAuG,KAAA,QACA/D,IAAAxC,IApBAxE,EAAAqJ,OAyBA,IAAAY,EAAA,iBACAe,EAAA,iBACAd,EAAA,YACAC,EAAA,YAGAK,EAAA,GAKA,SAAAd,KAEA,SAAAyB,KAEA,SAAAC,KAIA,IAAAC,EAAA,GAEAA,EAAArC,GAAA,WACA,OAAA/H,MAGA,IAAAqK,EAAA1C,OAAA2C,eACAC,EAAAF,OAAA3G,EAAA,MAEA6G,OAAA7C,GAAAE,EAAA1H,KAAAqK,EAAAxC,KAGAqC,EAAAG,GAGA,IAAAC,EAAAL,EAAApH,UAAA0F,EAAA1F,UAAA4E,OAAAgB,OAAAyB,GAMA,SAAAK,EAAA1H,GACA,0BAAA2H,QAAA,SAAA7J,GACAkC,EAAAlC,GAAA,SAAAkF,GACA,OAAA/F,KAAA8I,QAAAjI,EAAAkF,MAqCA,SAAA4E,EAAAjC,GAgCA,IAAAkC,EA4BA5K,KAAA8I,QA1BA,SAAAjI,EAAAkF,GACA,SAAA8E,IACA,WAAA5E,QAAA,SAAAN,EAAAC,IAnCA,SAAAkF,EAAAjK,EAAAkF,EAAAJ,EAAAC,GACA,IAAAgE,EAAAC,EAAAnB,EAAA7H,GAAA6H,EAAA3C,GAEA,aAAA6D,EAAAE,KAEO,CACP,IAAArI,EAAAmI,EAAA7D,IACAzC,EAAA7B,EAAA6B,MAEA,OAAAA,GAAA,kBAAAA,GAAAsE,EAAA1H,KAAAoD,EAAA,WACA2C,QAAAN,QAAArC,EAAAyH,SAAA7E,KAAA,SAAA5C,GACAwH,EAAA,OAAAxH,EAAAqC,EAAAC,IACW,SAAArC,GACXuH,EAAA,QAAAvH,EAAAoC,EAAAC,KAIAK,QAAAN,QAAArC,GAAA4C,KAAA,SAAA8E,GAIAvJ,EAAA6B,MAAA0H,EACArF,EAAAlE,IACS,SAAAJ,GAGT,OAAAyJ,EAAA,QAAAzJ,EAAAsE,EAAAC,KAtBAA,EAAAgE,EAAA7D,KAgCA+E,CAAAjK,EAAAkF,EAAAJ,EAAAC,KAIA,OAAAgF,EAYAA,IAAA1E,KAAA2E,EAEAA,QAwGA,SAAAvB,EAAAF,EAAAR,GACA,IAAA/H,EAAAuI,EAAArF,SAAA6E,EAAA/H,QAEA,GAAAA,IAAA8D,EAAA,CAKA,GAFAiE,EAAAQ,SAAA,KAEA,UAAAR,EAAA/H,OAAA,CAEA,GAAAuI,EAAArF,SAAA,SAGA6E,EAAA/H,OAAA,SACA+H,EAAA7C,IAAApB,EACA2E,EAAAF,EAAAR,GAEA,UAAAA,EAAA/H,QAGA,OAAA0I,EAIAX,EAAA/H,OAAA,QACA+H,EAAA7C,IAAA,IAAAwB,UAAA,kDAGA,OAAAgC,EAGA,IAAAK,EAAAC,EAAAhJ,EAAAuI,EAAArF,SAAA6E,EAAA7C,KAEA,aAAA6D,EAAAE,KAIA,OAHAlB,EAAA/H,OAAA,QACA+H,EAAA7C,IAAA6D,EAAA7D,IACA6C,EAAAQ,SAAA,KACAG,EAGA,IAAAvD,EAAA4D,EAAA7D,IAEA,OAAAC,EAOAA,EAAAvD,MAGAmG,EAAAQ,EAAA6B,YAAAjF,EAAA1C,MAEAsF,EAAA5E,KAAAoF,EAAA8B,QAOA,WAAAtC,EAAA/H,SACA+H,EAAA/H,OAAA,OACA+H,EAAA7C,IAAApB,GASAiE,EAAAQ,SAAA,KACAG,GANAvD,GAxBA4C,EAAA/H,OAAA,QACA+H,EAAA7C,IAAA,IAAAwB,UAAA,oCACAqB,EAAAQ,SAAA,KACAG,GA+CA,SAAA4B,EAAAC,GACA,IAAAC,EAAA,CACAC,OAAAF,EAAA,IAGA,KAAAA,IACAC,EAAAE,SAAAH,EAAA,IAGA,KAAAA,IACAC,EAAAG,WAAAJ,EAAA,GACAC,EAAAI,SAAAL,EAAA,IAGApL,KAAA0L,WAAAzH,KAAAoH,GAGA,SAAAM,EAAAN,GACA,IAAAzB,EAAAyB,EAAAO,YAAA,GACAhC,EAAAE,KAAA,gBACAF,EAAA7D,IACAsF,EAAAO,WAAAhC,EAGA,SAAAf,EAAAN,GAIAvI,KAAA0L,WAAA,EACAJ,OAAA,SAEA/C,EAAAmC,QAAAS,EAAAnL,MACAA,KAAA6L,OAAA,GAgCA,SAAAnI,EAAAoI,GACA,GAAAA,EAAA,CACA,IAAAC,EAAAD,EAAA/D,GAEA,GAAAgE,EACA,OAAAA,EAAA7L,KAAA4L,GAGA,uBAAAA,EAAA9H,KACA,OAAA8H,EAGA,IAAAE,MAAAF,EAAAlH,QAAA,CACA,IAAAjD,GAAA,EACAqC,EAAA,SAAAA,IACA,OAAArC,EAAAmK,EAAAlH,QACA,GAAAgD,EAAA1H,KAAA4L,EAAAnK,GAGA,OAFAqC,EAAAV,MAAAwI,EAAAnK,GACAqC,EAAAvB,MAAA,EACAuB,EAMA,OAFAA,EAAAV,MAAAqB,EACAX,EAAAvB,MAAA,EACAuB,GAGA,OAAAA,UAKA,OACAA,KAAAmF,GAMA,SAAAA,IACA,OACA7F,MAAAqB,EACAlC,MAAA,GA+LA,OAnlBAyH,EAAAnH,UAAAyH,EAAAyB,YAAA9B,EACAA,EAAA8B,YAAA/B,EACAC,EAAAjC,GAAAgC,EAAAgC,YAAA,oBAWAnN,EAAAoN,oBAAA,SAAAC,GACA,IAAAC,EAAA,oBAAAD,KAAAH,YACA,QAAAI,QAAAnC,GAEA,uBAAAmC,EAAAH,aAAAG,EAAAxM,QAGAd,EAAAuN,KAAA,SAAAF,GAYA,OAXAzE,OAAA4E,eACA5E,OAAA4E,eAAAH,EAAAjC,IAEAiC,EAAAI,UAAArC,EAEAjC,KAAAkE,IACAA,EAAAlE,GAAA,sBAIAkE,EAAArJ,UAAA4E,OAAAgB,OAAA6B,GACA4B,GAOArN,EAAA0N,MAAA,SAAA1G,GACA,OACAgF,QAAAhF,IAmEA0E,EAAAE,EAAA5H,WAEA4H,EAAA5H,UAAAiF,GAAA,WACA,OAAAhI,MAGAjB,EAAA4L,gBAIA5L,EAAA2N,MAAA,SAAArE,EAAAC,EAAA/I,EAAAgJ,GACA,IAAAoE,EAAA,IAAAhC,EAAAvC,EAAAC,EAAAC,EAAA/I,EAAAgJ,IACA,OAAAxJ,EAAAoN,oBAAA7D,GAAAqE,EACAA,EAAA3I,OAAAkC,KAAA,SAAAzE,GACA,OAAAA,EAAAgB,KAAAhB,EAAA6B,MAAAqJ,EAAA3I,UAgKAyG,EAAAD,GACAA,EAAAtC,GAAA,YAMAsC,EAAAzC,GAAA,WACA,OAAA/H,MAGAwK,EAAAoC,SAAA,WACA,4BAsCA7N,EAAAqE,KAAA,SAAAyJ,GACA,IAAAzJ,EAAA,GAEA,QAAAH,KAAA4J,EACAzJ,EAAAa,KAAAhB,GAMA,OAHAG,EAAA0J,UAGA,SAAA9I,IACA,KAAAZ,EAAAwB,QAAA,CACA,IAAA3B,EAAAG,EAAA2J,MAEA,GAAA9J,KAAA4J,EAGA,OAFA7I,EAAAV,MAAAL,EACAe,EAAAvB,MAAA,EACAuB,EAQA,OADAA,EAAAvB,MAAA,EACAuB,IA0CAjF,EAAA2E,SASAmF,EAAA9F,UAAA,CACAkJ,YAAApD,EACAgD,MAAA,SAAAmB,GAYA,GAXAhN,KAAAiN,KAAA,EACAjN,KAAAgE,KAAA,EAGAhE,KAAAwJ,KAAAxJ,KAAAyJ,MAAA9E,EACA3E,KAAAyC,MAAA,EACAzC,KAAAoJ,SAAA,KACApJ,KAAAa,OAAA,OACAb,KAAA+F,IAAApB,EACA3E,KAAA0L,WAAAhB,QAAAiB,IAEAqB,EACA,QAAAnN,KAAAG,KAEA,MAAAH,EAAAqN,OAAA,IAAAtF,EAAA1H,KAAAF,KAAAH,KAAAmM,OAAAnM,EAAAiF,MAAA,MACA9E,KAAAH,GAAA8E,IAKAwI,KAAA,WACAnN,KAAAyC,MAAA,EACA,IACA2K,EADApN,KAAA0L,WAAA,GACAE,WAEA,aAAAwB,EAAAtD,KACA,MAAAsD,EAAArH,IAGA,OAAA/F,KAAAqN,MAEA3D,kBAAA,SAAA4D,GACA,GAAAtN,KAAAyC,KACA,MAAA6K,EAGA,IAAA1E,EAAA5I,KAEA,SAAAuN,EAAAC,EAAAC,GAYA,OAXA7D,EAAAE,KAAA,QACAF,EAAA7D,IAAAuH,EACA1E,EAAA5E,KAAAwJ,EAEAC,IAGA7E,EAAA/H,OAAA,OACA+H,EAAA7C,IAAApB,KAGA8I,EAGA,QAAA9L,EAAA3B,KAAA0L,WAAA9G,OAAA,EAA8CjD,GAAA,IAAQA,EAAA,CACtD,IAAA0J,EAAArL,KAAA0L,WAAA/J,GACAiI,EAAAyB,EAAAO,WAEA,YAAAP,EAAAC,OAIA,OAAAiC,EAAA,OAGA,GAAAlC,EAAAC,QAAAtL,KAAAiN,KAAA,CACA,IAAAS,EAAA9F,EAAA1H,KAAAmL,EAAA,YACAsC,EAAA/F,EAAA1H,KAAAmL,EAAA,cAEA,GAAAqC,GAAAC,EAAA,CACA,GAAA3N,KAAAiN,KAAA5B,EAAAE,SACA,OAAAgC,EAAAlC,EAAAE,UAAA,GACa,GAAAvL,KAAAiN,KAAA5B,EAAAG,WACb,OAAA+B,EAAAlC,EAAAG,iBAEW,GAAAkC,GACX,GAAA1N,KAAAiN,KAAA5B,EAAAE,SACA,OAAAgC,EAAAlC,EAAAE,UAAA,OAEW,KAAAoC,EAKX,UAAA1N,MAAA,0CAJA,GAAAD,KAAAiN,KAAA5B,EAAAG,WACA,OAAA+B,EAAAlC,EAAAG,gBAQA7B,OAAA,SAAAG,EAAA/D,GACA,QAAApE,EAAA3B,KAAA0L,WAAA9G,OAAA,EAA8CjD,GAAA,IAAQA,EAAA,CACtD,IAAA0J,EAAArL,KAAA0L,WAAA/J,GAEA,GAAA0J,EAAAC,QAAAtL,KAAAiN,MAAArF,EAAA1H,KAAAmL,EAAA,eAAArL,KAAAiN,KAAA5B,EAAAG,WAAA,CACA,IAAAoC,EAAAvC,EACA,OAIAuC,IAAA,UAAA9D,GAAA,aAAAA,IAAA8D,EAAAtC,QAAAvF,MAAA6H,EAAApC,aAGAoC,EAAA,MAGA,IAAAhE,EAAAgE,IAAAhC,WAAA,GAIA,OAHAhC,EAAAE,OACAF,EAAA7D,MAEA6H,GACA5N,KAAAa,OAAA,OACAb,KAAAgE,KAAA4J,EAAApC,WACAjC,GAGAvJ,KAAA6N,SAAAjE,IAEAiE,SAAA,SAAAjE,EAAA6B,GACA,aAAA7B,EAAAE,KACA,MAAAF,EAAA7D,IAaA,MAVA,UAAA6D,EAAAE,MAAA,aAAAF,EAAAE,KACA9J,KAAAgE,KAAA4F,EAAA7D,IACO,WAAA6D,EAAAE,MACP9J,KAAAqN,KAAArN,KAAA+F,IAAA6D,EAAA7D,IACA/F,KAAAa,OAAA,SACAb,KAAAgE,KAAA,OACO,WAAA4F,EAAAE,MAAA2B,IACPzL,KAAAgE,KAAAyH,GAGAlC,GAEAuE,OAAA,SAAAtC,GACA,QAAA7J,EAAA3B,KAAA0L,WAAA9G,OAAA,EAA8CjD,GAAA,IAAQA,EAAA,CACtD,IAAA0J,EAAArL,KAAA0L,WAAA/J,GAEA,GAAA0J,EAAAG,eAGA,OAFAxL,KAAA6N,SAAAxC,EAAAO,WAAAP,EAAAI,UACAE,EAAAN,GACA9B,IAIAwE,MAAA,SAAAzC,GACA,QAAA3J,EAAA3B,KAAA0L,WAAA9G,OAAA,EAA8CjD,GAAA,IAAQA,EAAA,CACtD,IAAA0J,EAAArL,KAAA0L,WAAA/J,GAEA,GAAA0J,EAAAC,WAAA,CACA,IAAA1B,EAAAyB,EAAAO,WAEA,aAAAhC,EAAAE,KAAA,CACA,IAAAkE,EAAApE,EAAA7D,IACA4F,EAAAN,GAGA,OAAA2C,GAMA,UAAA/N,MAAA,0BAEAgO,cAAA,SAAAnC,EAAAb,EAAAC,GAaA,OAZAlL,KAAAoJ,SAAA,CACArF,SAAAL,EAAAoI,GACAb,aACAC,WAGA,SAAAlL,KAAAa,SAGAb,KAAA+F,IAAApB,GAGA4E,IAOAxK,EAtqBA,CA2qB0BD,EAAAC,SAE1B,IACAmP,mBAAAzG,EACC,MAAA0G,GAUDC,SAAA,6BAAAA,CAAA3G,qCCzqBA,IAIA4G,EAJAC,EAAA,kBAAAC,gBAAA,KACAC,EAAAF,GAAA,oBAAAA,EAAA/H,MAAA+H,EAAA/H,MAAA,SAAAnF,EAAAqN,EAAApI,GACA,OAAA+H,SAAArL,UAAAwD,MAAArG,KAAAkB,EAAAqN,EAAApI,IAKAgI,EADAC,GAAA,oBAAAA,EAAAI,QACAJ,EAAAI,QACC/G,OAAAgH,sBACD,SAAAvN,GACA,OAAAuG,OAAAiH,oBAAAxN,GAAAyN,OAAAlH,OAAAgH,sBAAAvN,KAGA,SAAAA,GACA,OAAAuG,OAAAiH,oBAAAxN,IAQA,IAAA0N,EAAAC,OAAA/C,OAAA,SAAA1I,GACA,OAAAA,OAGA,SAAApE,IACAA,EAAA8P,KAAA9O,KAAAF,MAGAlB,EAAAC,QAAAG,EAEAA,iBACAA,EAAA6D,UAAAkM,aAAAtK,EACAzF,EAAA6D,UAAAmM,aAAA,EACAhQ,EAAA6D,UAAAoM,mBAAAxK,EAGA,IAAAyK,EAAA,GAmCA,SAAAC,EAAAC,GACA,YAAA3K,IAAA2K,EAAAH,cAAAjQ,EAAAkQ,oBACAE,EAAAH,cAmDA,SAAAI,EAAAnO,EAAA0I,EAAA0F,EAAAC,GACA,IAAAC,EACAC,EACAC,EA/GAC,EAiHA,uBAAAL,EACA,UAAAjI,UAAA,0EAAAiI,GAqBA,QAhBA7K,KAFAgL,EAAAvO,EAAA6N,UAGAU,EAAAvO,EAAA6N,QAAAtH,OAAAgB,OAAA,MACAvH,EAAA8N,aAAA,SAIAvK,IAAAgL,EAAAG,cACA1O,EAAAN,KAAA,cAAAgJ,EAAA0F,yBAGAG,EAAAvO,EAAA6N,SAGAW,EAAAD,EAAA7F,SAGAnF,IAAAiL,EAEAA,EAAAD,EAAA7F,GAAA0F,IACApO,EAAA8N,kBAcA,GAZA,oBAAAU,EAEAA,EAAAD,EAAA7F,GAAA2F,EAAA,CAAAD,EAAAI,GAAA,CAAAA,EAAAJ,GACKC,EACLG,EAAAG,QAAAP,GAEAI,EAAA3L,KAAAuL,IAIAE,EAAAL,EAAAjO,IAEA,GAAAwO,EAAAhL,OAAA8K,IAAAE,EAAAI,OAAA,CACAJ,EAAAI,QAAA,EAGA,IAAAC,EAAA,IAAAhQ,MAAA,+CAAA2P,EAAAhL,OAAA,IAAAsL,OAAApG,GAAA,qEACAmG,EAAApQ,KAAA,8BACAoQ,EAAAE,QAAA/O,EACA6O,EAAAnG,OACAmG,EAAApM,MAAA+L,EAAAhL,OAhKAiL,EAiKAI,EAhKAG,iBAAAC,MAAAD,QAAAC,KAAAR,GAoKA,OAAAzO,EA2BA,SAAAkP,EAAAlP,EAAA0I,EAAA0F,GACA,IAAAzG,EAAA,CACAwH,OAAA,EACAC,YAAA7L,EACAvD,SACA0I,OACA0F,YAEAiB,EAtBA,WAGA,IAFA,IAAApK,EAAA,GAEA1E,EAAA,EAAiBA,EAAA2E,UAAA1B,OAAsBjD,IACvC0E,EAAApC,KAAAqC,UAAA3E,IAGA3B,KAAAuQ,QACAvQ,KAAAoB,OAAAsP,eAAA1Q,KAAA8J,KAAA9J,KAAAwQ,QACAxQ,KAAAuQ,OAAA,EACA/B,EAAAxO,KAAAwP,SAAAxP,KAAAoB,OAAAiF,KAYA5B,KAAAsE,GAGA,OAFA0H,EAAAjB,WACAzG,EAAAyH,OAAAC,EACAA,EA8GA,SAAAE,EAAAvP,EAAA0I,EAAA8G,GACA,IAAAjB,EAAAvO,EAAA6N,QACA,QAAAtK,IAAAgL,EAAA,SACA,IAAAkB,EAAAlB,EAAA7F,GACA,YAAAnF,IAAAkM,EAAA,GACA,oBAAAA,EAAAD,EAAA,CAAAC,EAAArB,UAAAqB,GAAA,CAAAA,GACAD,EA2DA,SAAAjK,GAGA,IAFA,IAAAmK,EAAA,IAAAlK,MAAAD,EAAA/B,QAEAjD,EAAA,EAAiBA,EAAAmP,EAAAlM,SAAgBjD,EACjCmP,EAAAnP,GAAAgF,EAAAhF,GAAA6N,UAAA7I,EAAAhF,GAGA,OAAAmP,EAlEAC,CAAAF,GAAAG,EAAAH,IAAAjM,QAqBA,SAAAqM,EAAAnH,GACA,IAAA6F,EAAA3P,KAAAiP,QAEA,QAAAtK,IAAAgL,EAAA,CACA,IAAAkB,EAAAlB,EAAA7F,GAEA,uBAAA+G,EACA,SACK,QAAAlM,IAAAkM,EACL,OAAAA,EAAAjM,OAIA,SAOA,SAAAoM,EAAArK,EAAAuK,GAGA,IAFA,IAAAC,EAAA,IAAAvK,MAAAsK,GAEAvP,EAAA,EAAiBA,EAAAuP,IAAOvP,EACxBwP,EAAAxP,GAAAgF,EAAAhF,GAGA,OAAAwP,EA1VAxJ,OAAAyJ,eAAAlS,EAAA,uBACAmS,YAAA,EACArO,IAAA,WACA,OAAAoM,GAEA/L,IAAA,SAAA0C,GACA,qBAAAA,KAAA,GAAA+I,EAAA/I,GACA,UAAAuL,WAAA,kGAAAvL,EAAA,KAGAqJ,EAAArJ,KAIA7G,EAAA8P,KAAA,gBACArK,IAAA3E,KAAAiP,SAAAjP,KAAAiP,UAAAtH,OAAA2C,eAAAtK,MAAAiP,UACAjP,KAAAiP,QAAAtH,OAAAgB,OAAA,MACA3I,KAAAkP,aAAA,GAGAlP,KAAAmP,cAAAnP,KAAAmP,oBAAAxK,GAKAzF,EAAA6D,UAAAwO,gBAAA,SAAAL,GACA,qBAAAA,KAAA,GAAApC,EAAAoC,GACA,UAAAI,WAAA,gFAAAJ,EAAA,KAIA,OADAlR,KAAAmP,cAAA+B,EACAlR,MAQAd,EAAA6D,UAAAyO,gBAAA,WACA,OAAAnC,EAAArP,OAGAd,EAAA6D,UAAAjC,KAAA,SAAAgJ,GAGA,IAFA,IAAAzD,EAAA,GAEA1E,EAAA,EAAiBA,EAAA2E,UAAA1B,OAAsBjD,IACvC0E,EAAApC,KAAAqC,UAAA3E,IAGA,IAAA8P,EAAA,UAAA3H,EACA6F,EAAA3P,KAAAiP,QACA,QAAAtK,IAAAgL,EAAA8B,UAAA9M,IAAAgL,EAAAtO,WAA4E,IAAAoQ,EAAA,SAE5E,GAAAA,EAAA,CACA,IAAAC,EAGA,GAFArL,EAAAzB,OAAA,IAAA8M,EAAArL,EAAA,IAEAqL,aAAAzR,MAGA,MAAAyR,EAIA,IAAAnO,EAAA,IAAAtD,MAAA,oBAAAyR,EAAA,KAAAA,EAAAC,QAAA,SAEA,MADApO,EAAAqF,QAAA8I,EACAnO,EAGA,IAAAqO,EAAAjC,EAAA7F,GACA,QAAAnF,IAAAiN,EAAA,SAEA,uBAAAA,EACApD,EAAAoD,EAAA5R,KAAAqG,OAEA,KAAAwL,EAAAD,EAAAhN,OACAkN,EAAAd,EAAAY,EAAAC,GAEA,IAAAlQ,EAAA,EAAmBA,EAAAkQ,IAASlQ,EAC5B6M,EAAAsD,EAAAnQ,GAAA3B,KAAAqG,GAIA,UA+DAnH,EAAA6D,UAAAgP,YAAA,SAAAjI,EAAA0F,GACA,OAAAD,EAAAvP,KAAA8J,EAAA0F,GAAA,IAGAtQ,EAAA6D,UAAAf,GAAA9C,EAAA6D,UAAAgP,YAEA7S,EAAA6D,UAAAiP,gBAAA,SAAAlI,EAAA0F,GACA,OAAAD,EAAAvP,KAAA8J,EAAA0F,GAAA,IA+BAtQ,EAAA6D,UAAAkP,KAAA,SAAAnI,EAAA0F,GACA,uBAAAA,EACA,UAAAjI,UAAA,0EAAAiI,GAIA,OADAxP,KAAAgC,GAAA8H,EAAAwG,EAAAtQ,KAAA8J,EAAA0F,IACAxP,MAGAd,EAAA6D,UAAAmP,oBAAA,SAAApI,EAAA0F,GACA,uBAAAA,EACA,UAAAjI,UAAA,0EAAAiI,GAIA,OADAxP,KAAAgS,gBAAAlI,EAAAwG,EAAAtQ,KAAA8J,EAAA0F,IACAxP,MAIAd,EAAA6D,UAAA2N,eAAA,SAAA5G,EAAA0F,GACA,IAAA2C,EAAAxC,EAAAyC,EAAAzQ,EAAA0Q,EAEA,uBAAA7C,EACA,UAAAjI,UAAA,0EAAAiI,GAIA,QAAA7K,KADAgL,EAAA3P,KAAAiP,SACA,OAAAjP,KAEA,QAAA2E,KADAwN,EAAAxC,EAAA7F,IACA,OAAA9J,KAEA,GAAAmS,IAAA3C,GAAA2C,EAAA3C,aACA,MAAAxP,KAAAkP,aAAAlP,KAAAiP,QAAAtH,OAAAgB,OAAA,cACAgH,EAAA7F,GACA6F,EAAAe,gBAAA1Q,KAAAc,KAAA,iBAAAgJ,EAAAqI,EAAA3C,mBAEG,uBAAA2C,EAAA,CAGH,IAFAC,GAAA,EAEAzQ,EAAAwQ,EAAAvN,OAAA,EAA6BjD,GAAA,EAAQA,IACrC,GAAAwQ,EAAAxQ,KAAA6N,GAAA2C,EAAAxQ,GAAA6N,aAAA,CACA6C,EAAAF,EAAAxQ,GAAA6N,SACA4C,EAAAzQ,EACA,MAIA,GAAAyQ,EAAA,SAAApS,KACA,IAAAoS,EAAAD,EAAAG,QAoHA,SAAAH,EAAAI,GACA,KAAQA,EAAA,EAAAJ,EAAAvN,OAAyB2N,IACjCJ,EAAAI,GAAAJ,EAAAI,EAAA,GAGAJ,EAAApF,MAxHAyF,CAAAL,EAAAC,GAEA,IAAAD,EAAAvN,SAAA+K,EAAA7F,GAAAqI,EAAA,SACAxN,IAAAgL,EAAAe,gBAAA1Q,KAAAc,KAAA,iBAAAgJ,EAAAuI,GAAA7C,GAGA,OAAAxP,MAGAd,EAAA6D,UAAA0P,IAAAvT,EAAA6D,UAAA2N,eAEAxR,EAAA6D,UAAAmB,mBAAA,SAAA4F,GACA,IAAAgI,EAAAnC,EAAAhO,EAEA,QAAAgD,KADAgL,EAAA3P,KAAAiP,SACA,OAAAjP,KAEA,QAAA2E,IAAAgL,EAAAe,eAQA,OAPA,IAAApK,UAAA1B,QACA5E,KAAAiP,QAAAtH,OAAAgB,OAAA,MACA3I,KAAAkP,aAAA,QACKvK,IAAAgL,EAAA7F,KACL,MAAA9J,KAAAkP,aAAAlP,KAAAiP,QAAAtH,OAAAgB,OAAA,aAAwEgH,EAAA7F,IAGxE9J,KAIA,OAAAsG,UAAA1B,OAAA,CACA,IACA3B,EADAG,EAAAuE,OAAAvE,KAAAuM,GAGA,IAAAhO,EAAA,EAAeA,EAAAyB,EAAAwB,SAAiBjD,EAEhC,oBADAsB,EAAAG,EAAAzB,KAEA3B,KAAAkE,mBAAAjB,GAMA,OAHAjD,KAAAkE,mBAAA,kBACAlE,KAAAiP,QAAAtH,OAAAgB,OAAA,MACA3I,KAAAkP,aAAA,EACAlP,KAKA,uBAFA8R,EAAAnC,EAAA7F,IAGA9J,KAAA0Q,eAAA5G,EAAAgI,QACG,QAAAnN,IAAAmN,EAEH,IAAAnQ,EAAAmQ,EAAAlN,OAAA,EAAkCjD,GAAA,EAAQA,IAC1C3B,KAAA0Q,eAAA5G,EAAAgI,EAAAnQ,IAIA,OAAA3B,MAYAd,EAAA6D,UAAA+O,UAAA,SAAAhI,GACA,OAAA6G,EAAA3Q,KAAA8J,GAAA,IAGA5K,EAAA6D,UAAA2P,aAAA,SAAA5I,GACA,OAAA6G,EAAA3Q,KAAA8J,GAAA,IAGA5K,EAAA+R,cAAA,SAAAd,EAAArG,GACA,0BAAAqG,EAAAc,cACAd,EAAAc,cAAAnH,GAEAmH,EAAA/Q,KAAAiQ,EAAArG,IAIA5K,EAAA6D,UAAAkO,gBAkBA/R,EAAA6D,UAAA4P,WAAA,WACA,OAAA3S,KAAAkP,aAAA,EAAAb,EAAArO,KAAAiP,SAAA,sBC7YA,oBAAAtH,OAAAgB,OAEA7J,EAAAC,QAAA,SAAAsN,EAAAuG,GACAA,IACAvG,EAAAwG,OAAAD,EACAvG,EAAAtJ,UAAA4E,OAAAgB,OAAAiK,EAAA7P,UAAA,CACAkJ,YAAA,CACA3I,MAAA+I,EACAgF,YAAA,EACAyB,UAAA,EACAC,cAAA,OAOAjU,EAAAC,QAAA,SAAAsN,EAAAuG,GACA,GAAAA,EAAA,CACAvG,EAAAwG,OAAAD,EAEA,IAAAI,EAAA,aAEAA,EAAAjQ,UAAA6P,EAAA7P,UACAsJ,EAAAtJ,UAAA,IAAAiQ,EACA3G,EAAAtJ,UAAAkJ,YAAAI,sBCzBAvN,EAAAC,QAEA,SAAAgB,GACA,IAAA2C,EACAuQ,EACAC,EACA,SAAAnT,GAAA,oBAAAA,EAAA,UAAAE,MAAA,yBAEA,MAAAF,GAAA,qBAAAkG,UACAvD,EAAA,IAAAuD,QAAA,SAAAN,EAAAC,GACAqN,EAAAtN,EACAuN,EAAAtN,KAIA,SAAAuN,EAAA5P,EAAA9B,GACA,GAAAiB,EACAa,EAAA2P,EAAA3P,GAAwB0P,EAAAxR,QAExB,GAAA1B,IAAAwD,EAAA9B,QAA8B,GAAA8B,EAAA,MAAAA,EAK9B,OADA4P,EAAAzQ,UACAyQ","file":"static/js/0.59ece602.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","/* eslint-env browser */\nmodule.exports = IdbKvStore;\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar inherits = require('inherits');\n\nvar promisize = require('promisize');\n\nvar global = typeof window === 'undefined' ? self : window;\nvar IDB = global.indexedDB || global.mozIndexedDB || global.webkitIndexedDB || global.msIndexedDB;\nIdbKvStore.INDEXEDDB_SUPPORT = IDB != null;\nIdbKvStore.BROADCAST_SUPPORT = global.BroadcastChannel != null;\ninherits(IdbKvStore, EventEmitter);\n\nfunction IdbKvStore(name, opts, cb) {\n var self = this;\n if (typeof name !== 'string') throw new Error('A name must be supplied of type string');\n if (!IDB) throw new Error('IndexedDB not supported');\n if (typeof opts === 'function') return new IdbKvStore(name, null, opts);\n if (!(self instanceof IdbKvStore)) return new IdbKvStore(name, opts, cb);\n if (!opts) opts = {};\n EventEmitter.call(self);\n self._db = null;\n self._closed = false;\n self._channel = null;\n self._waiters = [];\n var Channel = opts.channel || global.BroadcastChannel;\n\n if (Channel) {\n self._channel = new Channel(name);\n self._channel.onmessage = onChange;\n }\n\n var request = IDB.open(name);\n request.onerror = onerror;\n request.onsuccess = onsuccess;\n request.onupgradeneeded = onupgradeneeded;\n self.on('newListener', onNewListener);\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n\n if (cb) cb(event.target.error);\n }\n\n function onDbError(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n\n function onsuccess(event) {\n if (self._closed) {\n event.target.result.close();\n } else {\n self._db = event.target.result;\n self._db.onclose = onclose;\n self._db.onerror = onDbError;\n\n for (var i in self._waiters) {\n self._waiters[i]._init(null);\n }\n\n self._waiters = null;\n if (cb) cb(null);\n self.emit('open');\n }\n }\n\n function onupgradeneeded(event) {\n var db = event.target.result;\n db.createObjectStore('kv', {\n autoIncrement: true\n });\n }\n\n function onclose() {\n self._close();\n }\n\n function onNewListener(event) {\n if (event !== 'add' && event !== 'set' && event !== 'remove') return;\n if (!self._channel) return self.emit('error', new Error('No BroadcastChannel support'));\n }\n\n function onChange(event) {\n if (event.data.method === 'add') self.emit('add', event.data);else if (event.data.method === 'set') self.emit('set', event.data);else if (event.data.method === 'remove') self.emit('remove', event.data);\n }\n}\n\nIdbKvStore.prototype.get = function (key, cb) {\n return this.transaction('readonly').get(key, cb);\n};\n\nIdbKvStore.prototype.getMultiple = function (keys, cb) {\n return this.transaction('readonly').getMultiple(keys, cb);\n};\n\nIdbKvStore.prototype.set = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.set(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.json = function (range, cb) {\n return this.transaction('readonly').json(range, cb);\n};\n\nIdbKvStore.prototype.keys = function (range, cb) {\n return this.transaction('readonly').keys(range, cb);\n};\n\nIdbKvStore.prototype.values = function (range, cb) {\n return this.transaction('readonly').values(range, cb);\n};\n\nIdbKvStore.prototype.remove = function (key, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.remove(key, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.clear = function (cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.clear(function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.count = function (range, cb) {\n return this.transaction('readonly').count(range, cb);\n};\n\nIdbKvStore.prototype.add = function (key, value, cb) {\n cb = promisize(cb);\n var error = null;\n var t = this.transaction('readwrite', function (err) {\n error = error || err;\n cb(error);\n });\n t.add(key, value, function (err) {\n error = err;\n });\n return cb.promise;\n};\n\nIdbKvStore.prototype.iterator = function (range, next) {\n return this.transaction('readonly').iterator(range, next);\n};\n\nIdbKvStore.prototype.transaction = function (mode, onfinish) {\n if (this._closed) throw new Error('Database is closed');\n var transaction = new Transaction(this, mode, onfinish);\n if (this._db) transaction._init(null);else this._waiters.push(transaction);\n return transaction;\n};\n\nIdbKvStore.prototype.close = function () {\n this._close();\n};\n\nIdbKvStore.prototype._close = function (err) {\n if (this._closed) return;\n this._closed = true;\n if (this._db) this._db.close();\n if (this._channel) this._channel.close();\n this._db = null;\n this._channel = null;\n if (err) this.emit('error', err);\n this.emit('close');\n\n for (var i in this._waiters) {\n this._waiters[i]._init(err || new Error('Database is closed'));\n }\n\n this._waiters = null;\n this.removeAllListeners();\n};\n\nfunction Transaction(kvStore, mode, cb) {\n if (typeof mode === 'function') return new Transaction(kvStore, null, mode);\n this._kvStore = kvStore;\n this._mode = mode || 'readwrite';\n this._objectStore = null;\n this._waiters = null;\n this.finished = false;\n this.onfinish = promisize(cb); // `onfinish` public variable for backwards compatibility with v4.3.1\n\n this.done = this.onfinish.promise;\n\n if (this._mode !== 'readonly' && this._mode !== 'readwrite') {\n throw new Error('mode must be either \"readonly\" or \"readwrite\"');\n }\n}\n\nTransaction.prototype._init = function (err) {\n var self = this;\n if (self.finished) return;\n if (err) return self._close(err);\n\n var transaction = self._kvStore._db.transaction('kv', self._mode);\n\n transaction.oncomplete = oncomplete;\n transaction.onerror = onerror;\n transaction.onabort = onerror;\n self._objectStore = transaction.objectStore('kv');\n\n for (var i in self._waiters) {\n self._waiters[i](null, self._objectStore);\n }\n\n self._waiters = null;\n\n function oncomplete() {\n self._close(null);\n }\n\n function onerror(event) {\n handleError(event);\n\n self._close(event.target.error);\n }\n};\n\nTransaction.prototype._getObjectStore = function (cb) {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) return cb(null, this._objectStore);\n this._waiters = this._waiters || [];\n\n this._waiters.push(cb);\n};\n\nTransaction.prototype.set = function (key, value, cb) {\n var self = this;\n if (key == null || value == null) throw new Error('A key and value must be given');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.put(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'set',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.add = function (key, value, cb) {\n var self = this;\n if (value == null && key != null) return self.add(undefined, key, cb);\n if (typeof value === 'function' || value == null && cb == null) return self.add(undefined, key, value);\n if (value == null) throw new Error('A value must be provided as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = key == null ? objectStore.add(value) : objectStore.add(value, key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'add',\n key: key,\n value: value\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.get = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.get(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.getMultiple = function (keys, cb) {\n var self = this;\n if (keys == null) throw new Error('An array of keys must be given as an argument');\n cb = promisize(cb);\n\n if (keys.length === 0) {\n cb(null, []);\n return cb.promise;\n }\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err); // Implementation mostly taken from https://www.codeproject.com/Articles/744986/How-to-do-some-magic-with-indexedDB\n\n var sortedKeys = keys.slice().sort();\n var i = 0;\n var resultsMap = {};\n\n var getReturnValue = function getReturnValue() {\n return keys.map(function (key) {\n return resultsMap[key];\n });\n };\n\n var cursorReq = objectStore.openCursor();\n cursorReq.onerror = handleError.bind(this, cb);\n\n cursorReq.onsuccess = function (event) {\n var cursor = event.target.result;\n\n if (!cursor) {\n cb(null, getReturnValue());\n return;\n }\n\n var key = cursor.key;\n\n while (key > sortedKeys[i]) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n\n if (i === sortedKeys.length) {\n // There is no next. Stop searching.\n cb(null, getReturnValue());\n return;\n }\n }\n\n if (key === sortedKeys[i]) {\n resultsMap[key] = cursor.value; // The current cursor value should be included and we should continue\n // a single step in case next item has the same key or possibly our\n // next key in sortedKeys.\n\n cursor.continue();\n } else {\n // cursor.key not yet at sortedKeys[i]. Forward cursor to the next key to hunt for.\n cursor.continue(sortedKeys[i]);\n }\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.json = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.json(null, range);\n cb = promisize(cb);\n var json = {};\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n json[cursor.key] = cursor.value;\n cursor.continue();\n } else {\n cb(null, json);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.keys = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.keys(null, range);\n cb = promisize(cb);\n var keys = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n keys.push(cursor.key);\n cursor.continue();\n } else {\n cb(null, keys);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.values = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.values(null, range);\n cb = promisize(cb);\n var values = [];\n self.iterator(range, function (err, cursor) {\n if (err) return cb(err);\n\n if (cursor) {\n values.push(cursor.value);\n cursor.continue();\n } else {\n cb(null, values);\n }\n });\n return cb.promise;\n};\n\nTransaction.prototype.remove = function (key, cb) {\n var self = this;\n if (key == null) throw new Error('A key must be given as an argument');\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.delete(key);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n if (self._kvStore._channel) {\n self._kvStore._channel.postMessage({\n method: 'remove',\n key: key\n });\n }\n\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.clear = function (cb) {\n var self = this;\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = objectStore.clear();\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function () {\n cb(null);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.count = function (range, cb) {\n var self = this;\n if (typeof range === 'function') return self.count(null, range);\n cb = promisize(cb);\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return cb(err);\n\n try {\n var request = range == null ? objectStore.count() : objectStore.count(range);\n } catch (e) {\n return cb(e);\n }\n\n request.onerror = handleError.bind(this, cb);\n\n request.onsuccess = function (event) {\n cb(null, event.target.result);\n };\n });\n\n return cb.promise;\n};\n\nTransaction.prototype.iterator = function (range, next) {\n var self = this;\n if (typeof range === 'function') return self.iterator(null, range);\n if (typeof next !== 'function') throw new Error('A function must be given');\n\n self._getObjectStore(function (err, objectStore) {\n if (err) return next(err);\n\n try {\n var request = range == null ? objectStore.openCursor() : objectStore.openCursor(range);\n } catch (e) {\n return next(e);\n }\n\n request.onerror = handleError.bind(this, next);\n\n request.onsuccess = function (event) {\n var cursor = event.target.result;\n next(null, cursor);\n };\n });\n};\n\nTransaction.prototype.abort = function () {\n if (this.finished) throw new Error('Transaction is finished');\n if (this._objectStore) this._objectStore.transaction.abort();\n\n this._close(new Error('Transaction aborted'));\n};\n\nTransaction.prototype._close = function (err) {\n if (this.finished) return;\n this.finished = true;\n this._kvStore = null;\n this._objectStore = null;\n\n for (var i in this._waiters) {\n this._waiters[i](err || new Error('Transaction is finished'));\n }\n\n this._waiters = null;\n if (this.onfinish) this.onfinish(err);\n this.onfinish = null;\n};\n\nfunction handleError(cb, event) {\n if (event == null) return handleError(null, cb);\n event.preventDefault();\n event.stopPropagation();\n if (cb) cb(event.target.error);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = $getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","module.exports = promisize;\n\nfunction promisize(cb) {\n var promise;\n var res;\n var rej;\n if (cb != null && typeof cb !== 'function') throw new Error('cb must be a function');\n\n if (cb == null && typeof Promise !== 'undefined') {\n promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n }\n\n function intercept(err, result) {\n if (promise) {\n if (err) rej(err);else res(result);\n } else {\n if (cb) cb(err, result);else if (err) throw err;\n }\n }\n\n intercept.promise = promise;\n return intercept;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5.79c615e0.chunk.js b/static/js/5.356be092.chunk.js similarity index 99% rename from static/js/5.79c615e0.chunk.js rename to static/js/5.356be092.chunk.js index ffb5cc4..6d23940 100644 --- a/static/js/5.79c615e0.chunk.js +++ b/static/js/5.356be092.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],[function(e,t,n){"use strict";e.exports=n(32)},,,function(e,t,n){"use strict";var r=n(16),o=n(46),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function u(e){return null!==e&&"object"===typeof e}function l(e){return"[object Function]"===i.call(e)}function c(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n0){var e=new Uint8Array(this._pieces);r.useArrayBufferView||(e=e.buffer),this._parts.push(e),this._pieces=[]}},i.prototype.getBuffer=function(){if(this.flush(),r.useBlobBuilder){for(var e=new o,t=0,n=this._parts.length;t>23&255)-127;return(0==e>>31?1:-1)*(8388607&e|8388608)*Math.pow(2,t-23)},a.prototype.unpack_double=function(){var e=this.unpack_uint32(),t=this.unpack_uint32(),n=(e>>20&2047)-1023;return(0==e>>31?1:-1)*((1048575&e|1048576)*Math.pow(2,n-20)+t*Math.pow(2,n-52))},a.prototype.read=function(e){var t=this.index;if(t+e<=this.length)return this.dataView.subarray(t,t+e);throw new Error("BinaryPackFailure: read index out of range")},u.prototype.getBuffer=function(){return this.bufferBuilder.getBuffer()},u.prototype.pack=function(e){var t=typeof e;if("string"==t)this.pack_string(e);else if("number"==t)Math.floor(e)===e?this.pack_integer(e):this.pack_double(e);else if("boolean"==t)!0===e?this.bufferBuilder.append(195):!1===e&&this.bufferBuilder.append(194);else if("undefined"==t)this.bufferBuilder.append(192);else{if("object"!=t)throw new Error('Type "'+t+'" not yet supported');if(null===e)this.bufferBuilder.append(192);else{var n=e.constructor;if(n==Array)this.pack_array(e);else if(n==Blob||n==File)this.pack_bin(e);else if(n==ArrayBuffer)o.useArrayBufferView?this.pack_bin(new Uint8Array(e)):this.pack_bin(e);else if("BYTES_PER_ELEMENT"in e)o.useArrayBufferView?this.pack_bin(new Uint8Array(e.buffer)):this.pack_bin(e.buffer);else if(n==Object)this.pack_object(e);else if(n==Date)this.pack_string(e.toString());else{if("function"!=typeof e.toBinaryPack)throw new Error('Type "'+n.toString()+'" not yet supported');this.bufferBuilder.append(e.toBinaryPack())}}}this.bufferBuilder.flush()},u.prototype.pack_bin=function(e){var t=e.length||e.byteLength||e.size;if(t<=15)this.pack_uint8(160+t);else if(t<=65535)this.bufferBuilder.append(218),this.pack_uint16(t);else{if(!(t<=4294967295))throw new Error("Invalid length");this.bufferBuilder.append(219),this.pack_uint32(t)}this.bufferBuilder.append(e)},u.prototype.pack_string=function(e){var t=function(e){return e.length>600?new Blob([e]).size:e.replace(/[^\u0000-\u007F]/g,l).length}(e);if(t<=15)this.pack_uint8(176+t);else if(t<=65535)this.bufferBuilder.append(216),this.pack_uint16(t);else{if(!(t<=4294967295))throw new Error("Invalid length");this.bufferBuilder.append(217),this.pack_uint32(t)}this.bufferBuilder.append(e)},u.prototype.pack_array=function(e){var t=e.length;if(t<=15)this.pack_uint8(144+t);else if(t<=65535)this.bufferBuilder.append(220),this.pack_uint16(t);else{if(!(t<=4294967295))throw new Error("Invalid length");this.bufferBuilder.append(221),this.pack_uint32(t)}for(var n=0;n>8),this.bufferBuilder.append(255&e)},u.prototype.pack_uint32=function(e){var t=4294967295&e;this.bufferBuilder.append((4278190080&t)>>>24),this.bufferBuilder.append((16711680&t)>>>16),this.bufferBuilder.append((65280&t)>>>8),this.bufferBuilder.append(255&t)},u.prototype.pack_uint64=function(e){var t=e/Math.pow(2,32),n=e%Math.pow(2,32);this.bufferBuilder.append((4278190080&t)>>>24),this.bufferBuilder.append((16711680&t)>>>16),this.bufferBuilder.append((65280&t)>>>8),this.bufferBuilder.append(255&t),this.bufferBuilder.append((4278190080&n)>>>24),this.bufferBuilder.append((16711680&n)>>>16),this.bufferBuilder.append((65280&n)>>>8),this.bufferBuilder.append(255&n)},u.prototype.pack_int8=function(e){this.bufferBuilder.append(255&e)},u.prototype.pack_int16=function(e){this.bufferBuilder.append((65280&e)>>8),this.bufferBuilder.append(255&e)},u.prototype.pack_int32=function(e){this.bufferBuilder.append(e>>>24&255),this.bufferBuilder.append((16711680&e)>>>16),this.bufferBuilder.append((65280&e)>>>8),this.bufferBuilder.append(255&e)},u.prototype.pack_int64=function(e){var t=Math.floor(e/Math.pow(2,32)),n=e%Math.pow(2,32);this.bufferBuilder.append((4278190080&t)>>>24),this.bufferBuilder.append((16711680&t)>>>16),this.bufferBuilder.append((65280&t)>>>8),this.bufferBuilder.append(255&t),this.bufferBuilder.append((4278190080&n)>>>24),this.bufferBuilder.append((16711680&n)>>>16),this.bufferBuilder.append((65280&n)>>>8),this.bufferBuilder.append(255&n)}},{"./bufferbuilder":"vHo1"}],sXtV:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RTCSessionDescription=window.RTCSessionDescription||window.mozRTCSessionDescription,n.RTCPeerConnection=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection,n.RTCIceCandidate=window.RTCIceCandidate||window.mozRTCIceCandidate},{}],BHXf:[function(e,t,n){arguments[3],arguments[3];var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(n,"__esModule",{value:!0});var o=r(e("js-binarypack")),i=e("./adapter"),a={iceServers:[{urls:"stun:stun.l.google.com:19302"}],sdpSemantics:"unified-plan"},u=function(){function e(){}var t;return e.noop=function(){},e.validateId=function(e){return!e||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(e)},e.chunk=function(t){for(var n,r=[],o=t.size,i=Math.ceil(o/e.chunkedMTU),a=n=0;a0)&&!(r=i.next()).done;)a.push(r.value)}catch(u){o={error:u}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t=i.All&&this._print.apply(this,o([i.All],e))},e.prototype.warn=function(){for(var e=[],t=0;t=i.Warnings&&this._print.apply(this,o([i.Warnings],e))},e.prototype.error=function(){for(var e=[],t=0;t=i.Errors&&this._print.apply(this,o([i.Errors],e))},e.prototype.setLogFunction=function(e){this._print=e},e.prototype._print=function(e){for(var t=[],n=1;n=i.All?console.log.apply(console,o(r)):e>=i.Warnings?console.warn.apply(console,o(["WARNING"],r)):e>=i.Errors&&console.error.apply(console,o(["ERROR"],r))},e}();n.default=new a},{}],"9ZRY":[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e){e.Open="open",e.Stream="stream",e.Data="data",e.Close="close",e.Error="error",e.IceStateChanged="iceStateChanged"}(n.ConnectionEventType||(n.ConnectionEventType={})),function(e){e.Data="data",e.Media="media"}(n.ConnectionType||(n.ConnectionType={})),function(e){e.Open="open",e.Close="close",e.Connection="connection",e.Call="call",e.Disconnected="disconnected",e.Error="error"}(n.PeerEventType||(n.PeerEventType={})),function(e){e.BrowserIncompatible="browser-incompatible",e.Disconnected="disconnected",e.InvalidID="invalid-id",e.InvalidKey="invalid-key",e.Network="network",e.PeerUnavailable="peer-unavailable",e.SslUnavailable="ssl-unavailable",e.ServerError="server-error",e.SocketError="socket-error",e.SocketClosed="socket-closed",e.UnavailableID="unavailable-id",e.WebRTC="webrtc"}(n.PeerErrorType||(n.PeerErrorType={})),function(e){e.Binary="binary",e.BinaryUTF8="binary-utf8",e.JSON="json"}(n.SerializationType||(n.SerializationType={})),function(e){e.Message="message",e.Disconnected="disconnected",e.Error="error",e.Close="close"}(n.SocketEventType||(n.SocketEventType={})),function(e){e.Heartbeat="HEARTBEAT",e.Candidate="CANDIDATE",e.Offer="OFFER",e.Answer="ANSWER",e.Open="OPEN",e.Error="ERROR",e.IdTaken="ID-TAKEN",e.InvalidKey="INVALID-KEY",e.Leave="LEAVE",e.Expire="EXPIRE"}(n.ServerMessageType||(n.ServerMessageType={}))},{}],wJlv:[function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},i=this&&this.__spread||function(){for(var e=[],t=0;t=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});var l=e("eventemitter3"),c=u(e("./logger")),s=e("./enums"),f=function(e){function t(t,n,r,o,i){var a=e.call(this)||this;a.WEB_SOCKET_PING_INTERVAL=2e4,a._disconnected=!1,a._messagesQueue=[];var u=t?"wss://":"ws://";return a._wsUrl=u+n+":"+r+o+"peerjs?key="+i,a}return r(t,e),t.prototype.start=function(e,t){this._id=e,this._wsUrl+="&id="+e+"&token="+t,this._startWebSocket()},t.prototype._startWebSocket=function(){var e=this;this._socket||(this._socket=new WebSocket(this._wsUrl),this._socket.onmessage=function(t){var n;try{n=JSON.parse(t.data)}catch(a){return void c.default.log("Invalid server message",t.data)}e.emit(s.SocketEventType.Message,n)},this._socket.onclose=function(t){c.default.log("Socket closed.",t),e._disconnected=!0,clearTimeout(e._wsPingTimer),e.emit(s.SocketEventType.Disconnected)},this._socket.onopen=function(){e._disconnected||(e._sendQueuedMessages(),c.default.log("Socket open"),e._scheduleHeartbeat())})},t.prototype._scheduleHeartbeat=function(){var e=this;this._wsPingTimer=setTimeout(function(){e._sendHeartbeat()},this.WEB_SOCKET_PING_INTERVAL)},t.prototype._sendHeartbeat=function(){if(this._wsOpen()){var e=JSON.stringify({type:s.ServerMessageType.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}else c.default.log("Cannot send heartbeat, because socket closed")},t.prototype._wsOpen=function(){return!!this._socket&&1==this._socket.readyState},t.prototype._sendQueuedMessages=function(){var e,t,n=i(this._messagesQueue);this._messagesQueue=[];try{for(var r=a(n),o=r.next();!o.done;o=r.next()){var u=o.value;this.send(u)}}catch(f){e={error:f}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},t.prototype.send=function(e){if(!this._disconnected)if(this._id)if(e.type){if(this._wsOpen()){var t=JSON.stringify(e);this._socket.send(t)}}else this.emit(s.SocketEventType.Error,"Invalid message");else this._messagesQueue.push(e)},t.prototype.close=function(){!this._disconnected&&this._socket&&(this._socket.close(),this._disconnected=!0,clearTimeout(this._wsPingTimer))},t}(l.EventEmitter);n.Socket=f},{eventemitter3:"2JJl","./logger":"8WOs","./enums":"9ZRY"}],T9kO:[function(e,t,n){arguments[3],arguments[3];var r=e("js-binarypack"),o={debug:!1,inherits:function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},extend:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},pack:r.pack,unpack:r.unpack,log:function(){if(o.debug){for(var e=[],t=0;t=t.chunks.length?(r.log("Time: ",new Date-t.timer),delete this._outgoing[n]):this._processAcks()}break;case"chunk":if(!(t=o)){if(!0===this._received[n])break;t={ack:["ack",n,0],chunks:[]},this._incoming[n]=t}var l=e[2],c=e[3];t.chunks[l]=new Uint8Array(c),l===t.ack[2]&&this._calculateNextAck(n),this._ack(n);break;default:this._handleSend(e)}},o.prototype._chunk=function(e){for(var t=[],n=e.size,o=0;o=n.length&&o.push(["end",e,n.length]),o._multiple=!0,this._handleSend(o)},o.prototype._complete=function(e){r.log("Completed called for",e);var t=this,n=this._incoming[e].chunks,o=new Blob(n);r.blobToArrayBuffer(o,function(e){t.onmessage(r.unpack(e))}),delete this._incoming[e]},o.higherBandwidthSDP=function(e){var t=navigator.appVersion.match(/Chrome\/(.*?) /);if(t&&(t=parseInt(t[1].split(".").shift()))<31){var n=e.split("b=AS:30");if(n.length>1)return n[0]+"b=AS:102400"+n[1]}return e},o.prototype.onmessage=function(e){},t.exports=o},{"./util":"T9kO"}],HCdX:[function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});var u=e("./util"),l=a(e("./logger")),c=e("./negotiator"),s=e("./enums"),f=function(e){function t(n,r,o){var i=e.call(this,n,r,o)||this;return i._localStream=i.options._stream,i.connectionId=i.options.connectionId||t.ID_PREFIX+u.util.randomToken(),i._negotiator=new c.Negotiator(i),i._localStream&&i._negotiator.startConnection({_stream:i._localStream,originator:!0}),i}return r(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return s.ConnectionType.Media},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"localStream",{get:function(){return this._localStream},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"remoteStream",{get:function(){return this._remoteStream},enumerable:!0,configurable:!0}),t.prototype.addStream=function(t){l.default.log("Receiving stream",t),this._remoteStream=t,e.prototype.emit.call(this,s.ConnectionEventType.Stream,t)},t.prototype.handleMessage=function(e){var t=e.type,n=e.payload;switch(e.type){case s.ServerMessageType.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case s.ServerMessageType.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:l.default.warn("Unrecognized message type:"+t+" from peer:"+this.peer)}},t.prototype.answer=function(e,t){var n,r;if(void 0===t&&(t={}),this._localStream)l.default.warn("Local stream already exists on this MediaConnection. Are you answering a call twice?");else{this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection(o({},this.options._payload,{_stream:e}));var a=this.provider._getMessages(this.connectionId);try{for(var u=i(a),c=u.next();!c.done;c=u.next()){var s=c.value;this.handleMessage(s)}}catch(f){n={error:f}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}this._open=!0}},t.prototype.close=function(){this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this._localStream=null,this._remoteStream=null,this.provider&&(this.provider._removeConnection(this),this.provider=null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,e.prototype.emit.call(this,s.ConnectionEventType.Close))},t.ID_PREFIX="mc_",t}(e("./baseconnection").BaseConnection);n.MediaConnection=f},{"./util":"BHXf","./logger":"8WOs","./negotiator":"HCdX","./enums":"9ZRY","./baseconnection":"tQFK"}],GBTQ:[function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=this&&this.__values||function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(n,"__esModule",{value:!0});var a=e("reliable"),u=e("./util"),l=i(e("./logger")),c=e("./negotiator"),s=e("./enums"),f=function(e){function t(n,r,o){var i=e.call(this,n,r,o)||this;return i._buffer=[],i._bufferSize=0,i._buffering=!1,i._chunkedData={},i.connectionId=i.options.connectionId||t.ID_PREFIX+u.util.randomToken(),i.label=i.options.label||i.connectionId,i.serialization=i.options.serialization||s.SerializationType.Binary,i.reliable=i.options.reliable,i.options._payload&&(i._peerBrowser=i.options._payload.browser),i._negotiator=new c.Negotiator(i),i._negotiator.startConnection(i.options._payload||{originator:!0}),i}return r(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return s.ConnectionType.Data},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dataChannel",{get:function(){return this._dc},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bufferSize",{get:function(){return this._bufferSize},enumerable:!0,configurable:!0}),t.prototype.initialize=function(e){this._dc=e,this._configureDataChannel()},t.prototype._configureDataChannel=function(){var e=this;if(u.util.supports.sctp&&(this.dataChannel.binaryType="arraybuffer"),this.dataChannel.onopen=function(){l.default.log("Data channel connection success"),e._open=!0,e.emit(s.ConnectionEventType.Open)},!u.util.supports.sctp&&this.reliable){var t=l.default.logLevel>l.LogLevel.Disabled;this._reliable=new a.Reliable(this.dataChannel,t)}this._reliable?this._reliable.onmessage=function(t){e.emit(s.ConnectionEventType.Data,t)}:this.dataChannel.onmessage=function(t){e._handleDataMessage(t)},this.dataChannel.onclose=function(){l.default.log("DataChannel closed for:",e.peer),e.close()}},t.prototype._handleDataMessage=function(t){var n=this,r=t.data,o=r.constructor,i=r;if(this.serialization===s.SerializationType.Binary||this.serialization===s.SerializationType.BinaryUTF8){if(o===Blob)return void u.util.blobToArrayBuffer(r,function(e){var t=u.util.unpack(e);n.emit(s.ConnectionEventType.Data,t)});if(o===ArrayBuffer)i=u.util.unpack(r);else if(o===String){var a=u.util.binaryStringToArrayBuffer(r);i=u.util.unpack(a)}}else this.serialization===s.SerializationType.JSON&&(i=JSON.parse(r));i.__peerData?this._handleChunk(i):e.prototype.emit.call(this,s.ConnectionEventType.Data,i)},t.prototype._handleChunk=function(e){var t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(n.data[e.n]=e.data,n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];var r=new Blob(n.data);this._handleDataMessage({data:r})}},t.prototype.close=function(){this._buffer=[],this._bufferSize=0,this._chunkedData={},this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this.provider&&(this.provider._removeConnection(this),this.provider=null),this.open&&(this._open=!1,e.prototype.emit.call(this,s.ConnectionEventType.Close))},t.prototype.send=function(t,n){var r=this;if(this.open)if(this._reliable)this._reliable.send(t);else if(this.serialization===s.SerializationType.JSON)this._bufferedSend(JSON.stringify(t));else if(this.serialization===s.SerializationType.Binary||this.serialization===s.SerializationType.BinaryUTF8){var o=u.util.pack(t);if((u.util.chunkedBrowsers[this._peerBrowser]||u.util.chunkedBrowsers[u.util.browser])&&!n&&o.size>u.util.chunkedMTU)return void this._sendChunks(o);u.util.supports.sctp?u.util.supports.binaryBlob?this._bufferedSend(o):u.util.blobToArrayBuffer(o,function(e){r._bufferedSend(e)}):u.util.blobToBinaryString(o,function(e){r._bufferedSend(e)})}else this._bufferedSend(t);else e.prototype.emit.call(this,s.ConnectionEventType.Error,new Error("Connection is not open. You should listen for the `open` event before sending messages."))},t.prototype._bufferedSend=function(e){!this._buffering&&this._trySend(e)||(this._buffer.push(e),this._bufferSize=this._buffer.length)},t.prototype._trySend=function(t){var n=this;if(!this.open)return!1;try{this.dataChannel.send(t)}catch(e){return this._buffering=!0,setTimeout(function(){n._buffering=!1,n._tryBuffer()},100),!1}return!0},t.prototype._tryBuffer=function(){if(this.open&&0!==this._buffer.length){var e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}},t.prototype._sendChunks=function(e){var t,n,r=u.util.chunk(e);try{for(var i=o(r),a=i.next();!a.done;a=i.next()){var l=a.value;this.send(l,!0)}}catch(f){t={error:f}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}},t.prototype.handleMessage=function(e){var t=e.payload;switch(e.type){case s.ServerMessageType.Answer:this._peerBrowser=t.browser,this._negotiator.handleSDP(e.type,t.sdp);break;case s.ServerMessageType.Candidate:this._negotiator.handleCandidate(t.candidate);break;default:l.default.warn("Unrecognized message type:",e.type,"from peer:",this.peer)}},t.ID_PREFIX="dc_",t}(e("./baseconnection").BaseConnection);n.DataConnection=f},{reliable:"aYFJ","./util":"BHXf","./logger":"8WOs","./negotiator":"HCdX","./enums":"9ZRY","./baseconnection":"tQFK"}],in7L:[function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function u(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}},a=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0});var l=e("eventemitter3"),c=e("./util"),s=u(e("./logger")),f=e("./socket"),p=e("./mediaconnection"),d=e("./dataconnection"),h=e("./enums"),y=e("./api"),m=function(e){function t(n,r){var i=e.call(this)||this;return i._destroyed=!1,i._disconnected=!1,i._open=!1,i._connections=new Map,i._lostMessages=new Map,n&&n.constructor==Object?(r=n,n=void 0):n&&(n=n.toString()),r=o({debug:0,host:c.util.CLOUD_HOST,port:c.util.CLOUD_PORT,path:"/",key:t.DEFAULT_KEY,token:c.util.randomToken(),config:c.util.defaultConfig},r),i._options=r,"/"===r.host&&(r.host=window.location.hostname),"/"!==r.path[0]&&(r.path="/"+r.path),"/"!==r.path[r.path.length-1]&&(r.path+="/"),void 0===r.secure&&r.host!==c.util.CLOUD_HOST?r.secure=c.util.isSecure():r.host==c.util.CLOUD_HOST&&(r.secure=!0),r.logFunction&&s.default.setLogFunction(r.logFunction),s.default.logLevel=r.debug,c.util.supports.audioVideo||c.util.supports.data?c.util.validateId(n)?(i._api=new y.API(r),i._initializeServerConnection(),n?i._initialize(n):i._api.retrieveId().then(function(e){return i._initialize(e)}).catch(function(e){return i._abort(h.PeerErrorType.ServerError,e)}),i):(i._delayedAbort(h.PeerErrorType.InvalidID,'ID "'+n+'" is invalid'),i):(i._delayedAbort(h.PeerErrorType.BrowserIncompatible,"The current browser does not support WebRTC"),i)}return r(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this._options},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"open",{get:function(){return this._open},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"socket",{get:function(){return this._socket},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"connections",{get:function(){var e,t,n=Object.create(null);try{for(var r=i(this._connections),o=r.next();!o.done;o=r.next()){var u=a(o.value,2),l=u[0],c=u[1];n[l]=c}}catch(d){e={error:d}}finally{try{o&&!o.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disconnected",{get:function(){return this._disconnected},enumerable:!0,configurable:!0}),t.prototype._initializeServerConnection=function(){var e=this;this._socket=new f.Socket(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key),this.socket.on(h.SocketEventType.Message,function(t){e._handleMessage(t)}),this.socket.on(h.SocketEventType.Error,function(t){e._abort(h.PeerErrorType.SocketError,t)}),this.socket.on(h.SocketEventType.Disconnected,function(){e.disconnected||(e.emitError(h.PeerErrorType.Network,"Lost connection to server."),e.disconnect())}),this.socket.on(h.SocketEventType.Close,function(){e.disconnected||e._abort(h.PeerErrorType.SocketClosed,"Underlying socket is already closed.")})},t.prototype._initialize=function(e){this._id=e,this.socket.start(this.id,this._options.token)},t.prototype._handleMessage=function(e){var t,n,r=e.type,o=e.payload,a=e.src;switch(r){case h.ServerMessageType.Open:this.emit(h.PeerEventType.Open,this.id),this._open=!0;break;case h.ServerMessageType.Error:this._abort(h.PeerErrorType.ServerError,o.msg);break;case h.ServerMessageType.IdTaken:this._abort(h.PeerErrorType.UnavailableID,'ID "'+this.id+'" is taken');break;case h.ServerMessageType.InvalidKey:this._abort(h.PeerErrorType.InvalidKey,'API KEY "'+this._options.key+'" is invalid');break;case h.ServerMessageType.Leave:s.default.log("Received leave message from",a),this._cleanupPeer(a),this._connections.delete(a);break;case h.ServerMessageType.Expire:this.emitError(h.PeerErrorType.PeerUnavailable,"Could not connect to peer "+a);break;case h.ServerMessageType.Offer:var u=o.connectionId;if((m=this.getConnection(a,u))&&(m.close(),s.default.warn("Offer received for existing Connection ID:",u)),o.type===h.ConnectionType.Media)m=new p.MediaConnection(a,this,{connectionId:u,_payload:o,metadata:o.metadata}),this._addConnection(a,m),this.emit(h.PeerEventType.Call,m);else{if(o.type!==h.ConnectionType.Data)return void s.default.warn("Received malformed connection type:",o.type);m=new d.DataConnection(a,this,{connectionId:u,_payload:o,metadata:o.metadata,label:o.label,serialization:o.serialization,reliable:o.reliable}),this._addConnection(a,m),this.emit(h.PeerEventType.Connection,m)}var l=this._getMessages(u);try{for(var c=i(l),f=c.next();!f.done;f=c.next()){var y=f.value;m.handleMessage(y)}}catch(v){t={error:v}}finally{try{f&&!f.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}break;default:if(!o)return void s.default.warn("You received a malformed message from "+a+" of type "+r);var m;u=o.connectionId,(m=this.getConnection(a,u))&&m.peerConnection?m.handleMessage(e):u?this._storeMessage(u,e):s.default.warn("You received an unrecognized message:",e)}},t.prototype._storeMessage=function(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)},t.prototype._getMessages=function(e){var t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]},t.prototype.connect=function(e,t){if(void 0===t&&(t={}),this.disconnected)return s.default.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available."),void this.emitError(h.PeerErrorType.Disconnected,"Cannot connect to new Peer after disconnecting from server.");var n=new d.DataConnection(e,this,t);return this._addConnection(e,n),n},t.prototype.call=function(e,t,n){if(void 0===n&&(n={}),this.disconnected)return s.default.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect."),void this.emitError(h.PeerErrorType.Disconnected,"Cannot connect to new Peer after disconnecting from server.");if(t){n._stream=t;var r=new p.MediaConnection(e,this,n);return this._addConnection(e,r),r}s.default.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.")},t.prototype._addConnection=function(e,t){s.default.log("add connection "+t.type+":"+t.connectionId+"\n to peerId:"+e),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)},t.prototype._removeConnection=function(e){var t=this._connections.get(e.peer);if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)},t.prototype.getConnection=function(e,t){var n,r,o=this._connections.get(e);if(!o)return null;try{for(var a=i(o),u=a.next();!u.done;u=a.next()){var l=u.value;if(l.connectionId===t)return l}}catch(p){n={error:p}}finally{try{u&&!u.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}return null},t.prototype._delayedAbort=function(e,t){var n=this;setTimeout(function(){n._abort(e,t)},0)},t.prototype._abort=function(e,t){s.default.error("Aborting!"),this._lastServerId?this.disconnect():this.destroy(),this.emitError(e,t)},t.prototype.emitError=function(e,t){s.default.error("Error:",t),"string"==typeof t&&(t=new Error(t)),t.type=e,this.emit(h.PeerEventType.Error,t)},t.prototype.destroy=function(){this.destroyed||(this._cleanup(),this.disconnect(),this._destroyed=!0)},t.prototype._cleanup=function(){var e,t;try{for(var n=i(this._connections.keys()),r=n.next();!r.done;r=n.next()){var o=r.value;this._cleanupPeer(o),this._connections.delete(o)}}catch(c){e={error:c}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.emit(h.PeerEventType.Close)},t.prototype._cleanupPeer=function(e){var t,n,r=this._connections.get(e);if(r)try{for(var o=i(r),a=o.next();!a.done;a=o.next())a.value.close()}catch(s){t={error:s}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}},t.prototype.disconnect=function(){var e=this;setTimeout(function(){e.disconnected||(e._disconnected=!0,e._open=!1,e.socket&&e.socket.close(),e.emit(h.PeerEventType.Disconnected,e.id),e._lastServerId=e.id,e._id=null)},0)},t.prototype.reconnect=function(){if(this.disconnected&&!this.destroyed)s.default.log("Attempting reconnection to server with ID "+this._lastServerId),this._disconnected=!1,this._initializeServerConnection(),this._initialize(this._lastServerId);else{if(this.destroyed)throw new Error("This peer cannot reconnect to the server. It has already been destroyed.");if(this.disconnected||this.open)throw new Error("Peer "+this.id+" cannot reconnect because it is not disconnected from the server!");s.default.error("In a hurry? We're still trying to make the initial connection!")}},t.prototype.listAllPeers=function(e){var t=this;void 0===e&&(e=function(e){}),this._api.listAllPeers().then(function(t){return e(t)}).catch(function(e){return t._abort(h.PeerErrorType.ServerError,e)})},t.DEFAULT_KEY="peerjs",t}(l.EventEmitter);n.Peer=m},{eventemitter3:"2JJl","./util":"BHXf","./logger":"8WOs","./socket":"wJlv","./mediaconnection":"dbHP","./dataconnection":"GBTQ","./enums":"9ZRY","./api":"in7L"}],iTK6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./util"),o=e("./peer");n.peerjs={Peer:o.Peer,util:r.util},n.default=o.Peer,window.peerjs=n.peerjs,window.Peer=o.Peer},{"./util":"BHXf","./peer":"Hxpd"}]},{},["iTK6"])},,function(e,t,n){"use strict";var r={};n.r(r),n.d(r,"initialize",function(){return U}),n.d(r,"ga",function(){return F}),n.d(r,"set",function(){return W}),n.d(r,"send",function(){return H}),n.d(r,"pageview",function(){return V}),n.d(r,"modalview",function(){return q}),n.d(r,"timing",function(){return $}),n.d(r,"event",function(){return Q}),n.d(r,"exception",function(){return K}),n.d(r,"plugin",function(){return Y}),n.d(r,"outboundLink",function(){return J}),n.d(r,"testModeAPI",function(){return X}),n.d(r,"default",function(){return G});var o=n(0),i=n.n(o),a=n(10),u=n.n(a);function l(e){console.warn("[react-ga]",e)}function c(e){return(c="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function f(e,t){for(var n=0;n0&&t+e.length!==n.length&&e.search(_)>-1&&":"!==n.charAt(t-2)&&("-"!==n.charAt(t+e.length)||"-"===n.charAt(t-1))&&n.charAt(t-1).search(/[^\s-]/)<0?e.toLowerCase():e.substr(1).search(/[A-Z]|\../)>-1?e:e.charAt(0).toUpperCase()+e.substr(1)}):e}var T=function(e){var t,n,r,o,i,a,u,l="https://www.google-analytics.com/analytics.js";e&&e.gaAddress?l=e.gaAddress:e&&e.debug&&(l="https://www.google-analytics.com/analytics_debug.js"),t=window,n=document,r="script",o=l,i="ga",t.GoogleAnalyticsObject=i,t.ga=t.ga||function(){(t.ga.q=t.ga.q||[]).push(arguments)},t.ga.l=1*new Date,a=n.createElement(r),u=n.getElementsByTagName(r)[0],a.async=1,a.src=o,u.parentNode.insertBefore(a,u)};function x(e){console.info("[react-ga]",e)}var S=[],C={calls:S,ga:function(){for(var e=arguments.length,t=new Array(e),n=0;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){return(O="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function N(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1?t-1:0),r=1;r0&&(j.apply(void 0,t),D&&(x("called ga('arguments');"),x("with arguments: ".concat(JSON.stringify(t))))),window.ga}function W(e,t){e?"object"===O(e)?(0===Object.keys(e).length&&l("empty `fieldsObject` given to .set()"),L(t,"set",e),D&&(x("called ga('set', fieldsObject);"),x("with fieldsObject: ".concat(JSON.stringify(e))))):l("Expected `fieldsObject` arg to be an Object"):l("`fieldsObject` is required in .set()")}function H(e,t){L(t,"send",e),D&&(x("called ga('send', fieldObject);"),x("with fieldObject: ".concat(JSON.stringify(e))),x("with trackers: ".concat(JSON.stringify(t))))}function V(e,t,n){if(e){var r=b(e);if(""!==r){var o={};if(n&&(o.title=n),L(t,"send",function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.category,n=e.variable,r=e.value,o=e.label,i=arguments.length>1?arguments[1]:void 0;if(t&&n&&r&&"number"===typeof r){var a={hitType:"timing",timingCategory:B(t),timingVar:B(n),timingValue:r};o&&(a.timingLabel=B(o)),H(a,i)}else l("args.category, args.variable AND args.value are required in timing() AND args.value has to be a number")}function Q(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.category,n=e.action,r=e.label,o=e.value,i=e.nonInteraction,a=e.transport,u=E(e,["category","action","label","value","nonInteraction","transport"]),c=arguments.length>1?arguments[1]:void 0;if(t&&n){var s={hitType:"event",eventCategory:B(t),eventAction:B(n)};r&&(s.eventLabel=B(r)),"undefined"!==typeof o&&("number"!==typeof o?l("Expected `args.value` arg to be a Number."):s.eventValue=o),"undefined"!==typeof i&&("boolean"!==typeof i?l("`args.nonInteraction` must be a boolean."):s.nonInteraction=i),"undefined"!==typeof a&&("string"!==typeof a?l("`args.transport` must be a string."):(-1===["beacon","xhr","image"].indexOf(a)&&l("`args.transport` must be either one of these values: `beacon`, `xhr` or `image`"),s.transport=a)),Object.keys(u).filter(function(e){return"dimension"===e.substr(0,"dimension".length)}).forEach(function(e){s[e]=u[e]}),Object.keys(u).filter(function(e){return"metric"===e.substr(0,"metric".length)}).forEach(function(e){s[e]=u[e]}),H(s,c)}else l("args.category AND args.action are required in event()")}function K(e,t){var n=e.description,r=e.fatal,o={hitType:"exception"};n&&(o.exDescription=B(n)),"undefined"!==typeof r&&("boolean"!==typeof r?l("`args.fatal` must be a boolean."):o.exFatal=r),H(o,t)}var Y={require:function(e,t){if(e){var n=b(e);if(""!==n)if(t){if("object"!==O(t))return void l("Expected `options` arg to be an Object");0===Object.keys(t).length&&l("Empty `options` given to .require()"),F("require",n,t),D&&x("called ga('require', '".concat(n,"', ").concat(JSON.stringify(t)))}else F("require",n),D&&x("called ga('require', '".concat(n,"');"));else l("`name` cannot be an empty string in .require()")}else l("`name` is required in .require()")},execute:function(e,t){var n,r;if(1===(arguments.length<=2?0:arguments.length-2)?n=arguments.length<=2?void 0:arguments[2]:(r=arguments.length<=2?void 0:arguments[2],n=arguments.length<=3?void 0:arguments[3]),"string"!==typeof e)l("Expected `pluginName` arg to be a String.");else if("string"!==typeof t)l("Expected `action` arg to be a String.");else{var o="".concat(e,":").concat(t);n=n||null,r&&n?(F(o,r,n),D&&(x("called ga('".concat(o,"');")),x('actionType: "'.concat(r,'" with payload: ').concat(JSON.stringify(n))))):n?(F(o,n),D&&(x("called ga('".concat(o,"');")),x("with payload: ".concat(JSON.stringify(n))))):(F(o),D&&x("called ga('".concat(o,"');")))}}};function J(e,t,n){if("function"===typeof t)if(e&&e.label){var r={hitType:"event",eventCategory:"Outbound",eventAction:"Click",eventLabel:B(e.label)},o=!1,i=setTimeout(function(){o=!0,t()},250);r.hitCallback=function(){clearTimeout(i),o||t()},H(r,n)}else l("args.label is required in outboundLink()");else l("hitCallback function is required")}var X=C,G={initialize:U,ga:F,set:W,send:H,pageview:V,modalview:q,timing:$,event:Q,exception:K,plugin:Y,outboundLink:J,testModeAPI:C};function Z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}g.origTrackLink=g.trackLink,g.trackLink=J;var ee=g;t.a=function(e){for(var t=1;t=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(this,n(51))},function(e,t,n){"use strict";var r=n(3),o=n(53),i=n(17),a=n(55),u=n(56),l=n(21);e.exports=function(e){return new Promise(function(t,c){var s=e.data,f=e.headers;r.isFormData(s)&&delete f["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var d=e.auth.username||"",h=e.auth.password||"";f.Authorization="Basic "+btoa(d+":"+h)}if(p.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in p?a(p.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};o(t,c,r),p=null}},p.onabort=function(){p&&(c(l("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){c(l("Network Error",e,null,p)),p=null},p.ontimeout=function(){c(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var y=n(57),m=(e.withCredentials||u(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;m&&(f[e.xsrfHeaderName]=m)}if("setRequestHeader"in p&&r.forEach(f,function(e,t){"undefined"===typeof s&&"content-type"===t.toLowerCase()?delete f[t]:p.setRequestHeader(t,e)}),e.withCredentials&&(p.withCredentials=!0),e.responseType)try{p.responseType=e.responseType}catch(v){if("json"!==e.responseType)throw v}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){p&&(p.abort(),c(e),p=null)}),void 0===s&&(s=null),p.send(s)})}},function(e,t,n){"use strict";var r=n(54);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t){t=t||{};var n={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof t[e]&&(n[e]=t[e])}),r.forEach(["headers","auth","proxy"],function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):"undefined"!==typeof t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):"undefined"!==typeof e[o]&&(n[o]=e[o])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof t[r]?n[r]=t[r]:"undefined"!==typeof e[r]&&(n[r]=e[r])}),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(33)},function(e,t,n){"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,"a",function(){return r})},,function(e,t,n){e.exports=n(45)},function(e,t,n){"use strict";function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e){return(o="function"===typeof Symbol&&"symbol"===r(Symbol.iterator)?function(e){return r(e)}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":r(e)})(e)}var i=n(6);function a(e,t){return!t||"object"!==o(t)&&"function"!==typeof t?Object(i.a)(e):t}n.d(t,"a",function(){return a})},function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}n.d(t,"a",function(){return o})},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,"a",function(){return r})},,function(e,t,n){"use strict";var r=n(15),o="function"===typeof Symbol&&Symbol.for,i=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,u=o?Symbol.for("react.fragment"):60107,l=o?Symbol.for("react.strict_mode"):60108,c=o?Symbol.for("react.profiler"):60114,s=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.concurrent_mode"):60111,d=o?Symbol.for("react.forward_ref"):60112,h=o?Symbol.for("react.suspense"):60113,y=o?Symbol.for("react.memo"):60115,m=o?Symbol.for("react.lazy"):60116,v="function"===typeof Symbol&&Symbol.iterator;function g(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;rD.length&&D.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,o){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+j(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;cthis.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=ce,e.release=se}o(le.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ae)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ae)},persist:function(){this.isPersistent=ae},isPersistent:ue,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=ue,this._dispatchInstances=this._dispatchListeners=null}}),le.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},le.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(le);var pe=le.extend({data:null}),de=le.extend({data:null}),he=[9,13,27,32],ye=q&&"CompositionEvent"in window,me=null;q&&"documentMode"in document&&(me=document.documentMode);var ve=q&&"TextEvent"in window&&!me,ge=q&&(!ye||me&&8=me),be=String.fromCharCode(32),_e={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},we=!1;function ke(e,t){switch(e){case"keyup":return-1!==he.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Te(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var xe=!1;var Se={eventTypes:_e,extractEvents:function(e,t,n,r){var o=void 0,i=void 0;if(ye)e:{switch(e){case"compositionstart":o=_e.compositionStart;break e;case"compositionend":o=_e.compositionEnd;break e;case"compositionupdate":o=_e.compositionUpdate;break e}o=void 0}else xe?ke(e,n)&&(o=_e.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=_e.compositionStart);return o?(ge&&"ko"!==n.locale&&(xe||o!==_e.compositionStart?o===_e.compositionEnd&&xe&&(i=ie()):(re="value"in(ne=r)?ne.value:ne.textContent,xe=!0)),o=pe.getPooled(o,t,n,r),i?o.data=i:null!==(i=Te(n))&&(o.data=i),V(o),i=o):i=null,(e=ve?function(e,t){switch(e){case"compositionend":return Te(t);case"keypress":return 32!==t.which?null:(we=!0,be);case"textInput":return(e=t.data)===be&&we?null:e;default:return null}}(e,n):function(e,t){if(xe)return"compositionend"===e||!ye&&ke(e,t)?(e=ie(),oe=re=ne=null,xe=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1