diff --git a/9117ffbb9dbceb01de24.worker.js b/25340ede01a50ea61a08.worker.js similarity index 99% rename from 9117ffbb9dbceb01de24.worker.js rename to 25340ede01a50ea61a08.worker.js index c1c8468..1ad82ab 100644 --- a/9117ffbb9dbceb01de24.worker.js +++ b/25340ede01a50ea61a08.worker.js @@ -1,2 +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),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function u(e){return null!==e&&"object"===typeof e}function s(e){return"[object Function]"===o.call(e)}function c(e,n){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(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;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,i="/"===a.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),a="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+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("/")),o=r(t.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){r=o;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,o=0,a=e.length-1;a>=0;--a){var u=e.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){t=a+1;break}}return-1===n||-1===r||0===o||1===o&&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(o)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),o=t(6),a=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(),o(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 _?a(_.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,o){var a=new Error(e);return r(a,n,t,i,o)}},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.d4c3df3a.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 o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.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 a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof Ae))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.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("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},f&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.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)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var b={"f64-rem":function(e,n){return e%n},debugger:function(){}},E=(new Array(0),0);function w(e,n){e||Oe("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<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 C,S,x,j,R,N,D,L,I,M,P=65536,k=16777216,B=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=j=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=R=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=M=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!he(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Ce){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return ve(e)}catch(Ce){}}function ue(){var e=oe.last;if(!e)return 0|(be(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(be(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ge(4)),j[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(be(r[i]),e);return e=j[e>>2],0|(be(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,j[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(E=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new Ae(e))}(e)}var le={};var fe=1,_e={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};M=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),I=g(D+H),j[M>>2]=I,a.wasmTableSize=1112,a.wasmMaxTableSize=1112,a.asmGlobalArg={},a.asmLibraryArg={abort:Oe,enlargeMemory:function(){var e=a.usingWasm?P:k,n=2147483648-e;if(j[M>>2]>n)return!1;var t=G;for(G=Math.max(G,B);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Oe("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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=we();try{return a.dynCall_i(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=we();try{return a.dynCall_ii(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=we();try{return a.dynCall_iii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=we();try{return a.dynCall_iiii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=we();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=we();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=we();try{return a.dynCall_ji(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_v:function(e){var n=we();try{a.dynCall_v(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=we();try{a.dynCall_vi(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=we();try{a.dynCall_vii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=we();try{a.dynCall_viii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=we();try{a.dynCall_viiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=we();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiiiii:function(e,n,t,r,i,o,u,s){var c=we();try{a.dynCall_viiiiiii(e,n,t,r,i,o,u,s)}catch(Ce){if(Ee(c),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=we();try{a.dynCall_viji(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Oe("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ge(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_get_exception_ptr:function(e){return e},___cxa_pure_virtual:function(){throw E=!0,"Pure virtual function called!"},___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(j[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),j[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Ce){return"undefined"!==typeof FS&&Ce instanceof FS.ErrnoError||Oe(Ce),-Ce.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=j[i+(8*u+4)>>2],l=0;l>2]=fe,le[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in le?(le[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(j[e>>2]=n),n},DYNAMICTOP_PTR:M,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=a.__GLOBAL__sub_I_snet_cpp=function(){return a.asm.__GLOBAL__sub_I_snet_cpp.apply(null,arguments)},he=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),ve=a._free=function(){return a.asm._free.apply(null,arguments)},ge=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},be=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),we=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Ae(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Te(e){function n(){a.calledRun||(a.calledRun=!0,E||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Oe(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",E=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},Ae.prototype=new Error,Ae.prototype.constructor=Ae,ee=function e(){a.calledRun||Te(),a.calledRun||(ee=e)},a.run=Te,a.abort=Oe,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Te(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.b36c403f.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 o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.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 a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof Ae))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.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("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},f&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.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)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var b={"f64-rem":function(e,n){return e%n},debugger:function(){}},E=(new Array(0),0);function w(e,n){e||Oe("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<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 C,S,x,j,R,N,D,L,I,M,P=65536,k=16777216,B=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=j=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=R=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=M=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!he(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Ce){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return ve(e)}catch(Ce){}}function ue(){var e=oe.last;if(!e)return 0|(be(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(be(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ge(4)),j[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(be(r[i]),e);return e=j[e>>2],0|(be(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,j[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(E=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new Ae(e))}(e)}var le={};var fe=1,_e={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};M=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),I=g(D+H),j[M>>2]=I,a.wasmTableSize=1112,a.wasmMaxTableSize=1112,a.asmGlobalArg={},a.asmLibraryArg={abort:Oe,enlargeMemory:function(){var e=a.usingWasm?P:k,n=2147483648-e;if(j[M>>2]>n)return!1;var t=G;for(G=Math.max(G,B);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Oe("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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=we();try{return a.dynCall_i(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=we();try{return a.dynCall_ii(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=we();try{return a.dynCall_iii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=we();try{return a.dynCall_iiii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=we();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=we();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=we();try{return a.dynCall_ji(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_v:function(e){var n=we();try{a.dynCall_v(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=we();try{a.dynCall_vi(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=we();try{a.dynCall_vii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=we();try{a.dynCall_viii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=we();try{a.dynCall_viiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=we();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiiiii:function(e,n,t,r,i,o,u,s){var c=we();try{a.dynCall_viiiiiii(e,n,t,r,i,o,u,s)}catch(Ce){if(Ee(c),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=we();try{a.dynCall_viji(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Oe("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ge(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_get_exception_ptr:function(e){return e},___cxa_pure_virtual:function(){throw E=!0,"Pure virtual function called!"},___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(j[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),j[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Ce){return"undefined"!==typeof FS&&Ce instanceof FS.ErrnoError||Oe(Ce),-Ce.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=j[i+(8*u+4)>>2],l=0;l>2]=fe,le[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in le?(le[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(j[e>>2]=n),n},DYNAMICTOP_PTR:M,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=a.__GLOBAL__sub_I_snet_cpp=function(){return a.asm.__GLOBAL__sub_I_snet_cpp.apply(null,arguments)},he=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),ve=a._free=function(){return a.asm._free.apply(null,arguments)},ge=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},be=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),we=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Ae(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Te(e){function n(){a.calledRun||(a.calledRun=!0,E||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Oe(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",E=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},Ae.prototype=new Error,Ae.prototype.constructor=Ae,ee=function e(){a.calledRun||Te(),a.calledRun||(ee=e)},a.run=Te,a.abort=Oe,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Te(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),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:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof m?n:m,o=Object.create(i.prototype),a=new S(r||[]);return o._invoke=function(e,n,t){var r=l;return function(i,o){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var u=T(a,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,a),o}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[o]=function(){return this};var g=Object.getPrototypeOf,b=g&&g(g(x([])));b&&b!==t&&r.call(b,o)&&(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 o(){return new Promise(function(n,o){!function n(t,i,o,a){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,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(l).then(function(e){s.value=e,o(s)},function(e){return n("throw",e,o,a)})}a(u.arg)}(t,i,n,o)})}return n=n?n.then(o,o):o()}}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 o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function O(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 C(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"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),C(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;C(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),o=t(21),a=t(11);function u(e){var n=new o(e),t=i(o.prototype.request,n);return r.extend(t,o.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=o,s.create=function(e){return u(a(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),o=t(22),a=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}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=[a,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),o=t(7),a=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||a.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return o(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,o,a={};return e?(r.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),n=r.trim(e.substr(0,o)).toLowerCase(),t=r.trim(e.substr(o+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([t]):a[n]?a[n]+", "+t:t}}),a):a}},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,o,a){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(o)&&u.push("domain="+o),!0===a&&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,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),o=t.n(i);function a(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n=300)&&T.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+L-1>>20|0)}var n,t,r;return n=e,(t=[{key:"subarray",value:function(e,n){for(var t=e/L|0,r=(n+L-1)/L|0,i=r,o=t,a=t;a=300)T.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+L-1)/L|0,r=(l+u.response.byteLength+L-1)/L|0;for(var f=t;f=0?N?"spawn".concat(e,".sv"):"single_".concat(e,".sv"):null})},get_file_size:function(e){var n=x.get(e.toLowerCase());return n?n.byteLength:0},get_file_contents:function(e,n,t){var r=x.get(e.toLowerCase());r&&n.set(r.subarray(t,t+n.byteLength))},put_file_contents:function(e,n){e=e.toLowerCase(),x.set(e,n),T.postMessage({action:"fs",func:"update",params:[e,n]})},remove_file:function(e){e=e.toLowerCase(),x.delete(e),T.postMessage({action:"fs",func:"delete",params:[e]})},set_cursor:function(e,n){T.postMessage({action:"cursor",x:e,y:n})},open_keyboard:function(){for(var e=arguments.length,n=new Array(e),t=0;t>16&255,o=r>>8&255,a=255&r;C.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),C.fillText(t,e,n+22)},draw_end:function(){C.restore();var e=O.transferToImageBitmap(),n=[e];R&&n.push(R.buffer),T.postMessage({action:"render",batch:{bitmap:e,belt:R}},n),R=null},draw_belt:function(e){R=e.slice()}},B=null,U=null,F=0,W=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(e){M[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=F?B.push({func:e,params:t}):T.postMessage({action:"audio",func:e,params:t})}}),T.DApi=M;var H=null;function G(e){try{var n;B=[],U=[];for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i1)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;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,i="/"===a.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),a="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+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("/")),o=r(t.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){r=o;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,o=0,a=e.length-1;a>=0;--a){var u=e.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){t=a+1;break}}return-1===n||-1===r||0===o||1===o&&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(o)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),o=t(6),a=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(),o(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 _?a(_.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,o){var a=new Error(e);return r(a,n,t,i,o)}},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.d4c3df3a.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 o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.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 a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof Ae))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.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("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},f&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.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)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var b={"f64-rem":function(e,n){return e%n},debugger:function(){}},E=(new Array(0),0);function w(e,n){e||Oe("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<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 C,S,x,j,R,N,D,L,I,M,P=65536,k=16777216,B=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=j=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=R=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=M=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!he(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Ce){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return ve(e)}catch(Ce){}}function ue(){var e=oe.last;if(!e)return 0|(be(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(be(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ge(4)),j[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(be(r[i]),e);return e=j[e>>2],0|(be(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,j[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(E=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new Ae(e))}(e)}var le={};var fe=1,_e={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};M=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),I=g(D+H),j[M>>2]=I,a.wasmTableSize=1112,a.wasmMaxTableSize=1112,a.asmGlobalArg={},a.asmLibraryArg={abort:Oe,enlargeMemory:function(){var e=a.usingWasm?P:k,n=2147483648-e;if(j[M>>2]>n)return!1;var t=G;for(G=Math.max(G,B);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Oe("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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=we();try{return a.dynCall_i(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=we();try{return a.dynCall_ii(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=we();try{return a.dynCall_iii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=we();try{return a.dynCall_iiii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=we();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=we();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=we();try{return a.dynCall_ji(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_v:function(e){var n=we();try{a.dynCall_v(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=we();try{a.dynCall_vi(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=we();try{a.dynCall_vii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=we();try{a.dynCall_viii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=we();try{a.dynCall_viiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=we();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiiiii:function(e,n,t,r,i,o,u,s){var c=we();try{a.dynCall_viiiiiii(e,n,t,r,i,o,u,s)}catch(Ce){if(Ee(c),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=we();try{a.dynCall_viji(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Oe("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ge(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_get_exception_ptr:function(e){return e},___cxa_pure_virtual:function(){throw E=!0,"Pure virtual function called!"},___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(j[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),j[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Ce){return"undefined"!==typeof FS&&Ce instanceof FS.ErrnoError||Oe(Ce),-Ce.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=j[i+(8*u+4)>>2],l=0;l>2]=fe,le[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in le?(le[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(j[e>>2]=n),n},DYNAMICTOP_PTR:M,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=a.__GLOBAL__sub_I_snet_cpp=function(){return a.asm.__GLOBAL__sub_I_snet_cpp.apply(null,arguments)},he=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),ve=a._free=function(){return a.asm._free.apply(null,arguments)},ge=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},be=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),we=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Ae(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Te(e){function n(){a.calledRun||(a.calledRun=!0,E||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Oe(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",E=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},Ae.prototype=new Error,Ae.prototype.constructor=Ae,ee=function e(){a.calledRun||Te(),a.calledRun||(ee=e)},a.run=Te,a.abort=Oe,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Te(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.b36c403f.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 o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.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 a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof Ae))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.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("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},f&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.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)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var b={"f64-rem":function(e,n){return e%n},debugger:function(){}},E=(new Array(0),0);function w(e,n){e||Oe("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<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 C,S,x,j,R,N,D,L,I,M,P=65536,k=16777216,B=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=j=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=R=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=M=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!he(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Ce){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return ve(e)}catch(Ce){}}function ue(){var e=oe.last;if(!e)return 0|(be(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(be(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ge(4)),j[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(be(r[i]),e);return e=j[e>>2],0|(be(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,j[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(E=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new Ae(e))}(e)}var le={};var fe=1,_e={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};M=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),I=g(D+H),j[M>>2]=I,a.wasmTableSize=1112,a.wasmMaxTableSize=1112,a.asmGlobalArg={},a.asmLibraryArg={abort:Oe,enlargeMemory:function(){var e=a.usingWasm?P:k,n=2147483648-e;if(j[M>>2]>n)return!1;var t=G;for(G=Math.max(G,B);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Oe("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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=we();try{return a.dynCall_i(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=we();try{return a.dynCall_ii(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=we();try{return a.dynCall_iii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=we();try{return a.dynCall_iiii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=we();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=we();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=we();try{return a.dynCall_ji(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_v:function(e){var n=we();try{a.dynCall_v(e)}catch(Ce){if(Ee(n),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=we();try{a.dynCall_vi(e,n)}catch(Ce){if(Ee(t),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=we();try{a.dynCall_vii(e,n,t)}catch(Ce){if(Ee(r),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=we();try{a.dynCall_viii(e,n,t,r)}catch(Ce){if(Ee(i),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=we();try{a.dynCall_viiii(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=we();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Ce){if(Ee(u),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viiiiiii:function(e,n,t,r,i,o,u,s){var c=we();try{a.dynCall_viiiiiii(e,n,t,r,i,o,u,s)}catch(Ce){if(Ee(c),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=we();try{a.dynCall_viji(e,n,t,r,i)}catch(Ce){if(Ee(o),"number"!==typeof Ce&&"longjmp"!==Ce)throw Ce;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Oe("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ge(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_get_exception_ptr:function(e){return e},___cxa_pure_virtual:function(){throw E=!0,"Pure virtual function called!"},___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(j[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),j[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Ce){return"undefined"!==typeof FS&&Ce instanceof FS.ErrnoError||Oe(Ce),-Ce.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=j[i+(8*u+4)>>2],l=0;l>2]=fe,le[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in le?(le[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(j[e>>2]=n),n},DYNAMICTOP_PTR:M,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_AllocPacket=function(){return a.asm._DApi_AllocPacket.apply(null,arguments)},a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)},a._SNet_InitWebsocket=function(){return a.asm._SNet_InitWebsocket.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=a.__GLOBAL__sub_I_snet_cpp=function(){return a.asm.__GLOBAL__sub_I_snet_cpp.apply(null,arguments)},he=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound=function(){return a.asm.___em_js__api_create_sound.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__api_websocket_closed=function(){return a.asm.___em_js__api_websocket_closed.apply(null,arguments)},a.___em_js__api_websocket_send=function(){return a.asm.___em_js__api_websocket_send.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),ve=a._free=function(){return a.asm._free.apply(null,arguments)},ge=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},be=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),we=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viiiiiii=function(){return a.asm.dynCall_viiiiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function Ae(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Te(e){function n(){a.calledRun||(a.calledRun=!0,E||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Oe(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",E=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},Ae.prototype=new Error,Ae.prototype.constructor=Ae,ee=function e(){a.calledRun||Te(),a.calledRun||(ee=e)},a.run=Te,a.abort=Oe,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Te(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),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:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof m?n:m,o=Object.create(i.prototype),a=new S(r||[]);return o._invoke=function(e,n,t){var r=l;return function(i,o){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var u=T(a,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,a),o}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[o]=function(){return this};var g=Object.getPrototypeOf,b=g&&g(g(x([])));b&&b!==t&&r.call(b,o)&&(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 o(){return new Promise(function(n,o){!function n(t,i,o,a){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,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(l).then(function(e){s.value=e,o(s)},function(e){return n("throw",e,o,a)})}a(u.arg)}(t,i,n,o)})}return n=n?n.then(o,o):o()}}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 o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function O(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 C(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"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),C(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;C(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),o=t(21),a=t(11);function u(e){var n=new o(e),t=i(o.prototype.request,n);return r.extend(t,o.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=o,s.create=function(e){return u(a(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),o=t(22),a=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}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=[a,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),o=t(7),a=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||a.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return o(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,o,a={};return e?(r.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),n=r.trim(e.substr(0,o)).toLowerCase(),t=r.trim(e.substr(o+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([t]):a[n]?a[n]+", "+t:t}}),a):a}},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,o,a){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(o)&&u.push("domain="+o),!0===a&&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,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),o=t.n(i);function a(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n=300)&&T.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+L-1>>20|0)}var n,t,r;return n=e,(t=[{key:"subarray",value:function(e,n){for(var t=e/L|0,r=(n+L-1)/L|0,i=r,o=t,a=t;a=300)T.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+L-1)/L|0,r=(l+u.response.byteLength+L-1)/L|0;for(var f=t;f=0?N?"spawn".concat(e,".sv"):"single_".concat(e,".sv"):null})},get_file_size:function(e){var n=x.get(e.toLowerCase());return n?n.byteLength:0},get_file_contents:function(e,n,t){var r=x.get(e.toLowerCase());r&&n.set(r.subarray(t,t+n.byteLength))},put_file_contents:function(e,n){e=e.toLowerCase(),x.set(e,n),T.postMessage({action:"fs",func:"update",params:[e,n]})},remove_file:function(e){e=e.toLowerCase(),x.delete(e),T.postMessage({action:"fs",func:"delete",params:[e]})},set_cursor:function(e,n){T.postMessage({action:"cursor",x:e,y:n})},open_keyboard:function(){for(var e=arguments.length,n=new Array(e),t=0;t>16&255,o=r>>8&255,a=255&r;C.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),C.fillText(t,e,n+22)},draw_end:function(){C.restore();var e=O.transferToImageBitmap(),n=[e];R&&n.push(R.buffer),T.postMessage({action:"render",batch:{bitmap:e,belt:R}},n),R=null},draw_belt:function(e){R=e.slice()}},B=null,U=null,F=0,W=0;["create_sound_raw","create_sound","duplicate_sound"].forEach(function(e){M[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=F?B.push({func:e,params:t}):T.postMessage({action:"audio",func:e,params:t})}}),T.DApi=M;var H=null;function G(e){try{var n;B=[],U=[];for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i 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.d4c3df3a.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_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!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}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"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()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"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\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"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 STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;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 updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}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 STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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 __ATEXIT__=[];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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);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}function integrateWasmJS(){var wasmTextFile=\"Diablo.wast\";var wasmBinaryFile=\"Diablo.wasm\";var asmjsCodeFile=\"Diablo.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};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();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;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;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=1112;Module[\"wasmMaxTableSize\"]=1112;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{Module[\"dynCall_viiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"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_viiiiiii\":invoke_viiiiiii,\"invoke_viji\":invoke_viji,\"___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_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,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_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_open_keyboard\":_api_open_keyboard,\"_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_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,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=(function(){return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null,arguments)});var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=(function(){return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var __GLOBAL__sub_I_snet_cpp=Module[\"__GLOBAL__sub_I_snet_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_snet_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null,arguments)});var ___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)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___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)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null,arguments)});var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].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;var initialStackTop;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;ensureInitRuntime();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;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{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\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.b36c403f.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_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!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}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"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()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"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\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"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 STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;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 updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}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 STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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 __ATEXIT__=[];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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);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}function integrateWasmJS(){var wasmTextFile=\"DiabloSpawn.wast\";var wasmBinaryFile=\"DiabloSpawn.wasm\";var asmjsCodeFile=\"DiabloSpawn.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};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();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;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;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=1112;Module[\"wasmMaxTableSize\"]=1112;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{Module[\"dynCall_viiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"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_viiiiiii\":invoke_viiiiiii,\"invoke_viji\":invoke_viji,\"___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_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,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_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_open_keyboard\":_api_open_keyboard,\"_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_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,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=(function(){return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null,arguments)});var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=(function(){return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var __GLOBAL__sub_I_snet_cpp=Module[\"__GLOBAL__sub_I_snet_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_snet_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null,arguments)});var ___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)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___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)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null,arguments)});var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].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;var initialStackTop;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;ensureInitRuntime();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;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{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\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}","export default async function websocket_open(url, handler) {\r\n const socket = new WebSocket(url);\r\n socket.binaryType = \"arraybuffer\";\r\n let versionCbk = null;\r\n socket.addEventListener(\"message\", ({data}) => {\r\n if (versionCbk) {\r\n versionCbk(data);\r\n }\r\n handler(data);\r\n });\r\n await new Promise((resolve, reject) => {\r\n const onError = err => reject(err);\r\n socket.addEventListener(\"error\", onError);\r\n socket.addEventListener(\"open\", () => {\r\n socket.removeEventListener(\"error\", onError);\r\n resolve();\r\n });\r\n });\r\n await new Promise((resolve, reject) => {\r\n const to = setTimeout(() => {\r\n versionCbk = null;\r\n reject(Error(\"connection timed out\"));\r\n }, 5000);\r\n versionCbk = data => {\r\n clearTimeout(to);\r\n const u8 = new Uint8Array(data);\r\n if (u8[0] === 0x32) {\r\n versionCbk = null;\r\n const version = u8[1] | (u8[2] << 8) | (u8[3] << 16) | (u8[4] << 24);\r\n if (version === 1) {\r\n resolve();\r\n } else {\r\n reject(\"server version mismatch\");\r\n }\r\n }\r\n };\r\n });\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n const clientInfo = new Uint8Array(5);\r\n clientInfo[0] = 0x31;\r\n clientInfo[1] = parseInt(vers[3]);\r\n clientInfo[2] = parseInt(vers[2]);\r\n clientInfo[3] = parseInt(vers[1]);\r\n clientInfo[4] = 0;\r\n socket.send(clientInfo);\r\n return socket;\r\n}\r\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\nimport websocket_open from './websocket';\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\nlet websocket = null;\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_send(data) {\r\n if (websocket) {\r\n websocket.send(data);\r\n }\r\n },\r\n websocket_closed() {\r\n return !websocket || websocket.readyState !== WebSocket.OPEN;\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\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction call_api(func, ...params) {\r\n try {\r\n audioBatch = [];\r\n audioTransfer = [];\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 audioBatch = null;\r\n audioTransfer = null;\r\n }\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 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, serverUrl) {\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 if (serverUrl) {\r\n progress(\"Connecting...\");\r\n websocket = await websocket_open(serverUrl, data => {\r\n if (wasm) {\r\n const ptr = wasm._DApi_AllocPacket(data.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data), ptr);\r\n }\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 if (websocket) {\r\n wasm._SNet_InitWebsocket();\r\n }\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, data.websocket).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 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 +{"version":3,"sources":["../webpack/bootstrap","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/process/browser.js","../node_modules/path-browserify/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","api/Diablo.wasm","api/Diablo.jscc","api/DiabloSpawn.wasm","api/DiabloSpawn.jscc","../node_modules/axios/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/axios/lib/axios.js","../node_modules/axios/node_modules/is-buffer/index.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.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/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","api/websocket.js","api/game.worker.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","path","TypeError","charAt","split","join","normalize","isAbsolute","trailingSlash","substr","paths","slice","index","relative","from","to","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","v","toISOString","JSON","stringify","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","Promise","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","error","config1","config2","prop","Cancel","Diablo","_scriptDir","currentScript","src","Module","moduleOverrides","toThrow","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","importScripts","nodeFS","nodePath","scriptDirectory","locateFile","__dirname","filename","binary","ret","Uint8Array","assert","ex","ExitStatus","reason","readbuffer","scriptArgs","quit","self","location","href","xhr","onload","out","console","log","print","err","printErr","warn","STACK_ALIGN","alignMemory","size","factor","ceil","asm2wasmImports","f64-rem","x","y","debugger","ABORT","condition","text","Pointer_stringify","ptr","hasUtf","HEAPU8","curr","String","fromCharCode","subarray","UTF8ArrayToString","UTF8ToString","UTF8Decoder","TextDecoder","u8Array","idx","endPtr","decode","u0","u1","u2","u3","u4","ch","HEAP8","HEAP32","HEAPF32","STATICTOP","STACK_BASE","STACKTOP","DYNAMIC_BASE","DYNAMICTOP_PTR","WASM_PAGE_SIZE","ASMJS_PAGE_SIZE","MIN_TOTAL_MEMORY","alignUp","multiple","updateGlobalBuffer","buf","updateGlobalBufferViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","transfer","oldHEAP8","set","_emscripten_replace_memory","Function","getOwnPropertyDescriptor","byteLength","TOTAL_STACK","TOTAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","func","arg","WebAssembly","Memory","initial","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATEXIT__","__ATPOSTRUN__","runtimeInitialized","addOnPostRun","cb","runDependencies","runDependencyWatcher","dependenciesFulfilled","dataURIPrefix","isDataURI","startsWith","wasmTextFile","wasmBinaryFile","asmjsCodeFile","info","global","asm2wasm","parent","getBinary","doNativeWasm","providedBuffer","receiveInstance","instance","memory","newBuffer","oldBuffer","oldView","mergeMemory","id","clearInterval","removeRunDependency","NaN","Infinity","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","fetch","credentials","catch","instantiate","instantiateStreaming","asmjsReallocBuffer","finalMethod","oldSize","grow","wasmReallocBuffer","TABLE_SIZE","MAX_TABLE_SIZE","Table","maximum","element","integrateWasmJS","ASM_CONSTS","$0","DApi","current_save_id","STATIC_BASE","__GLOBAL__sub_I_msgcmd_cpp","__GLOBAL__sub_I_snet_cpp","__ZSt18uncaught_exceptionv","uncaught_exception","EXCEPTIONS","caught","infos","deAdjust","adjusted","addRef","refcount","decRef","rethrown","destructor","___cxa_free_exception","clearRef","_free","___cxa_find_matching_catch","thrown","setTempRet0","throwntype","type","typeArray","_malloc","SYSCALLS","varargs","getStr","get64","low","high","getZero","__exit","implicit","initialStackTop","exit","PTHREAD_SPECIFIC","PTHREAD_SPECIFIC_NEXT_KEY","ERRNO_CODES","EPERM","ENOENT","ESRCH","EINTR","EIO","ENXIO","E2BIG","ENOEXEC","EBADF","ECHILD","EAGAIN","EWOULDBLOCK","ENOMEM","EACCES","EFAULT","ENOTBLK","EBUSY","EEXIST","EXDEV","ENODEV","ENOTDIR","EISDIR","EINVAL","ENFILE","EMFILE","ENOTTY","ETXTBSY","EFBIG","ENOSPC","ESPIPE","EROFS","EMLINK","EPIPE","EDOM","ERANGE","ENOMSG","EIDRM","ECHRNG","EL2NSYNC","EL3HLT","EL3RST","ELNRNG","EUNATCH","ENOCSI","EL2HLT","EDEADLK","ENOLCK","EBADE","EBADR","EXFULL","ENOANO","EBADRQC","EBADSLT","EDEADLOCK","EBFONT","ENOSTR","ENODATA","ETIME","ENOSR","ENONET","ENOPKG","EREMOTE","ENOLINK","EADV","ESRMNT","ECOMM","EPROTO","EMULTIHOP","EDOTDOT","EBADMSG","ENOTUNIQ","EBADFD","EREMCHG","ELIBACC","ELIBBAD","ELIBSCN","ELIBMAX","ELIBEXEC","ENOSYS","ENOTEMPTY","ENAMETOOLONG","ELOOP","EOPNOTSUPP","EPFNOSUPPORT","ECONNRESET","ENOBUFS","EAFNOSUPPORT","EPROTOTYPE","ENOTSOCK","ENOPROTOOPT","ESHUTDOWN","ECONNREFUSED","EADDRINUSE","ECONNABORTED","ENETUNREACH","ENETDOWN","ETIMEDOUT","EHOSTDOWN","EHOSTUNREACH","EINPROGRESS","EALREADY","EDESTADDRREQ","EMSGSIZE","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EADDRNOTAVAIL","ENETRESET","EISCONN","ENOTCONN","ETOOMANYREFS","EUSERS","EDQUOT","ESTALE","ENOTSUP","ENOMEDIUM","EILSEQ","EOVERFLOW","ECANCELED","ENOTRECOVERABLE","EOWNERDEAD","ESTRPIPE","staticAlloc","asmGlobalArg","asmLibraryArg","enlargeMemory","PAGE_MULTIPLE","LIMIT","OLD_TOTAL_MEMORY","max","replacement","getTotalMemory","abortOnCannotGrowMemory","invoke_i","sp","stackSave","stackRestore","invoke_ii","a1","invoke_iii","a2","invoke_iiii","a3","invoke_iiiii","a4","invoke_iiiiii","a5","invoke_ji","invoke_v","invoke_vi","invoke_vii","invoke_viii","invoke_viiii","invoke_viiiii","invoke_viiiiiii","a6","a7","invoke_viji","___assert_fail","line","___cxa_allocate_exception","___cxa_begin_catch","___cxa_end_catch","pop","___cxa_find_matching_catch_2","___cxa_find_matching_catch_3","___cxa_get_exception_ptr","___cxa_pure_virtual","___cxa_throw","___lock","___resumeException","___setErrNo","___syscall140","which","stream","getStreamFromFD","offset_low","whence","offset","FS","llseek","position","getdents","ErrnoError","errno","___syscall146","iov","iovcnt","buffers","printChar","j","___syscall54","___syscall6","close","___unlock","_abort","_api_close_keyboard","close_keyboard","_api_create_sound","create_sound","_api_create_sound_float","samples","channels","rate","create_sound_raw","_api_delete_sound","delete_sound","_api_draw_begin","draw_begin","_api_draw_belt","items","draw_belt","_api_draw_blit","w","h","draw_blit","_api_draw_clip_text","x0","y0","x1","y1","draw_clip_text","_api_draw_end","draw_end","_api_draw_text","color","draw_text","_api_duplicate_sound","srcId","duplicate_sound","_api_exit_game","exit_game","_api_open_keyboard","open_keyboard","_api_play_sound","volume","pan","loop","play_sound","_api_set_cursor","set_cursor","_api_set_volume","set_volume","_api_stop_sound","stop_sound","_api_websocket_closed","websocket_closed","_api_websocket_send","websocket_send","_emscripten_asm_const_ii","a0","_emscripten_memcpy_big","dest","num","_exit","_exit_error","exit_error","_get_file_contents","get_file_contents","_get_file_size","get_file_size","_llvm_eh_typeid_for","_llvm_trap","_pthread_getspecific","_pthread_key_create","_pthread_once","seen","_pthread_setspecific","_put_file_contents","put_file_contents","_remove_file","remove_file","_time","Date","now","asm","doRun","postRun","preRun","what","old","constructor","runCaller","DiabloSpawn","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","hasCatch","hasFinally","finallyEntry","complete","finish","delegateYield","regeneratorRuntime","accidentalStrictMode","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","use","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","fns","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","originURL","msie","test","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","remove","relativeURL","executor","resolvePromise","token","source","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_defineProperties","target","props","descriptor","configurable","writable","websocket_open","_x","_x2","_websocket_open","_callee","handler","socket","_versionCbk","vers","clientInfo","regenerator_default","_context","WebSocket","binaryType","versionCbk","_ref","onError","removeEventListener","u8","parseInt","DiabloSize","SpawnSize","worker","canvas","imageData","files","renderBatch","drawBelt","is_spawn","websocket","ChunkSize","RemoteFile","Constructor","_classCallCheck","postMessage","action","getResponseHeader","chunks","protoProps","staticProps","chunk0","chunk1","missing0","missing1","header","delete","_len","_key","rect","OPEN","DApi_renderLegacy","images","clip","belt","map","batch","DApi_renderOffscreen","save","font","putImageData","beginPath","g","fillStyle","fillText","restore","bitmap","transferToImageBitmap","audioBatch","audioTransfer","maxSoundId","maxBatchId","_len2","_key2","_len3","_key3","wasm","call_api","_wasm","_len4","_key4","progress","loaded","total","readFile","file","reader","FileReader","readAsArrayBuffer","initWasm","spawn","SpawnBinary","DiabloBinary","SpawnModule","DiabloModule","wasmBinary","ready","_callee2","mpq","offscreen","serverUrl","mpqLoaded","mpqTotal","wasmLoaded","wasmTotal","wasmWeight","updateProgress","loadWasm","loadMpq","_ref3","_ref4","_context2","OffscreenCanvas","getContext","createImageData","assign","has","_DApi_AllocPacket","_SNet_InitWebsocket","_DApi_Init","floor","performance","setInterval","_ref2","init_game"],"mappings":"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","file":"25340ede01a50ea61a08.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/diabloweb/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> 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.d4c3df3a.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_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!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}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"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()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"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\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"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 STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;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 updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}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 STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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 __ATEXIT__=[];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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);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}function integrateWasmJS(){var wasmTextFile=\"Diablo.wast\";var wasmBinaryFile=\"Diablo.wasm\";var asmjsCodeFile=\"Diablo.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};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();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;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;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=1112;Module[\"wasmMaxTableSize\"]=1112;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{Module[\"dynCall_viiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"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_viiiiiii\":invoke_viiiiiii,\"invoke_viji\":invoke_viji,\"___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_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,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_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_open_keyboard\":_api_open_keyboard,\"_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_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,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=(function(){return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null,arguments)});var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=(function(){return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var __GLOBAL__sub_I_snet_cpp=Module[\"__GLOBAL__sub_I_snet_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_snet_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null,arguments)});var ___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)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___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)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null,arguments)});var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].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;var initialStackTop;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;ensureInitRuntime();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;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{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\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.b36c403f.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_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!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}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"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()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"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\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"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 STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;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 updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}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 STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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 __ATEXIT__=[];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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);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}function integrateWasmJS(){var wasmTextFile=\"DiabloSpawn.wast\";var wasmBinaryFile=\"DiabloSpawn.wasm\";var asmjsCodeFile=\"DiabloSpawn.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_get_exception_ptr(ptr){return ptr}function ___cxa_pure_virtual(){ABORT=true;throw\"Pure virtual function called!\"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};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();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;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;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=1112;Module[\"wasmMaxTableSize\"]=1112;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{Module[\"dynCall_viiiiiii\"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"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_viiiiiii\":invoke_viiiiiii,\"invoke_viji\":invoke_viji,\"___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_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,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_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_open_keyboard\":_api_open_keyboard,\"_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_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,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_AllocPacket=Module[\"_DApi_AllocPacket\"]=(function(){return Module[\"asm\"][\"_DApi_AllocPacket\"].apply(null,arguments)});var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var _SNet_InitWebsocket=Module[\"_SNet_InitWebsocket\"]=(function(){return Module[\"asm\"][\"_SNet_InitWebsocket\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var __GLOBAL__sub_I_snet_cpp=Module[\"__GLOBAL__sub_I_snet_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_snet_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound=Module[\"___em_js__api_create_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound\"].apply(null,arguments)});var ___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)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___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)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__api_websocket_closed=Module[\"___em_js__api_websocket_closed\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_closed\"].apply(null,arguments)});var ___em_js__api_websocket_send=Module[\"___em_js__api_websocket_send\"]=(function(){return Module[\"asm\"][\"___em_js__api_websocket_send\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].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;var initialStackTop;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;ensureInitRuntime();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;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{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\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}","export default async function websocket_open(url, handler) {\r\n const socket = new WebSocket(url);\r\n socket.binaryType = \"arraybuffer\";\r\n let versionCbk = null;\r\n socket.addEventListener(\"message\", ({data}) => {\r\n if (versionCbk) {\r\n versionCbk(data);\r\n }\r\n handler(data);\r\n });\r\n await new Promise((resolve, reject) => {\r\n const onError = err => reject(err);\r\n socket.addEventListener(\"error\", onError);\r\n socket.addEventListener(\"open\", () => {\r\n socket.removeEventListener(\"error\", onError);\r\n resolve();\r\n });\r\n });\r\n await new Promise((resolve, reject) => {\r\n const to = setTimeout(() => {\r\n versionCbk = null;\r\n reject(Error(\"connection timed out\"));\r\n }, 5000);\r\n versionCbk = data => {\r\n clearTimeout(to);\r\n const u8 = new Uint8Array(data);\r\n if (u8[0] === 0x32) {\r\n versionCbk = null;\r\n const version = u8[1] | (u8[2] << 8) | (u8[3] << 16) | (u8[4] << 24);\r\n if (version === 1) {\r\n resolve();\r\n } else {\r\n reject(\"server version mismatch\");\r\n }\r\n }\r\n };\r\n });\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n const clientInfo = new Uint8Array(5);\r\n clientInfo[0] = 0x31;\r\n clientInfo[1] = parseInt(vers[3]);\r\n clientInfo[2] = parseInt(vers[2]);\r\n clientInfo[3] = parseInt(vers[1]);\r\n clientInfo[4] = 0;\r\n socket.send(clientInfo);\r\n return socket;\r\n}\r\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\nimport websocket_open from './websocket';\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\nlet websocket = null;\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_send(data) {\r\n if (websocket) {\r\n websocket.send(data);\r\n }\r\n },\r\n websocket_closed() {\r\n return !websocket || websocket.readyState !== WebSocket.OPEN;\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\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction call_api(func, ...params) {\r\n try {\r\n audioBatch = [];\r\n audioTransfer = [];\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 audioBatch = null;\r\n audioTransfer = null;\r\n }\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 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, serverUrl) {\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 if (serverUrl) {\r\n progress(\"Connecting...\");\r\n websocket = await websocket_open(serverUrl, data => {\r\n if (wasm) {\r\n const ptr = wasm._DApi_AllocPacket(data.byteLength);\r\n wasm.HEAPU8.set(new Uint8Array(data), ptr);\r\n }\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 if (websocket) {\r\n wasm._SNet_InitWebsocket();\r\n }\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, data.websocket).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 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 6fe6571..d4a89fb 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -2,23 +2,23 @@ "files": { "static/js/0.54f3d658.chunk.js": "/diabloweb/static/js/0.54f3d658.chunk.js", "static/js/0.54f3d658.chunk.js.map": "/diabloweb/static/js/0.54f3d658.chunk.js.map", - "main.css": "/diabloweb/static/css/main.e49ccae7.chunk.css", - "main.js": "/diabloweb/static/js/main.45ac41be.chunk.js", - "main.js.map": "/diabloweb/static/js/main.45ac41be.chunk.js.map", + "main.css": "/diabloweb/static/css/main.b8d7c1d3.chunk.css", + "main.js": "/diabloweb/static/js/main.3fa9187d.chunk.js", + "main.js.map": "/diabloweb/static/js/main.3fa9187d.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.d9050d9b.chunk.js", - "storage.js.map": "/diabloweb/static/js/storage.d9050d9b.chunk.js.map", + "storage.js": "/diabloweb/static/js/storage.d4689937.chunk.js", + "storage.js.map": "/diabloweb/static/js/storage.d4689937.chunk.js.map", "static/js/5.473ccc28.chunk.js": "/diabloweb/static/js/5.473ccc28.chunk.js", "static/js/5.473ccc28.chunk.js.map": "/diabloweb/static/js/5.473ccc28.chunk.js.map", - "9117ffbb9dbceb01de24.worker.js": "/diabloweb/9117ffbb9dbceb01de24.worker.js", - "9117ffbb9dbceb01de24.worker.js.map": "/diabloweb/9117ffbb9dbceb01de24.worker.js.map", + "25340ede01a50ea61a08.worker.js": "/diabloweb/25340ede01a50ea61a08.worker.js", + "25340ede01a50ea61a08.worker.js.map": "/diabloweb/25340ede01a50ea61a08.worker.js.map", "index.html": "/diabloweb/index.html", - "precache-manifest.68a05d51378f9d988050fcf1177ae4a8.js": "/diabloweb/precache-manifest.68a05d51378f9d988050fcf1177ae4a8.js", + "precache-manifest.0d21993e47508a6b2df1563c4b90046b.js": "/diabloweb/precache-manifest.0d21993e47508a6b2df1563c4b90046b.js", "service-worker.js": "/diabloweb/service-worker.js", - "static/css/main.e49ccae7.chunk.css.map": "/diabloweb/static/css/main.e49ccae7.chunk.css.map", + "static/css/main.b8d7c1d3.chunk.css.map": "/diabloweb/static/css/main.b8d7c1d3.chunk.css.map", "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.d4c3df3a.wasm", "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.b36c403f.wasm", "static/media/App.scss": "/diabloweb/static/media/shift.b40e4a63.svg", diff --git a/index.html b/index.html index 448a0e4..429c919 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.68a05d51378f9d988050fcf1177ae4a8.js b/precache-manifest.0d21993e47508a6b2df1563c4b90046b.js similarity index 70% rename from precache-manifest.68a05d51378f9d988050fcf1177ae4a8.js rename to precache-manifest.0d21993e47508a6b2df1563c4b90046b.js index 191d91b..f30241c 100644 --- a/precache-manifest.68a05d51378f9d988050fcf1177ae4a8.js +++ b/precache-manifest.0d21993e47508a6b2df1563c4b90046b.js @@ -1,15 +1,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "6f9bc4315efec5dddee287a1e369df45", - "url": "/diabloweb/9117ffbb9dbceb01de24.worker.js" + "revision": "ca9d64c13b262c7ed5c0fc8191f6718d", + "url": "/diabloweb/25340ede01a50ea61a08.worker.js" }, { - "revision": "02f6b0ae93a5de7de11eb5483cd6cbce", + "revision": "d91b0353b8cf83f6042754776c00e79e", "url": "/diabloweb/index.html" }, { - "revision": "64f91a62cda38ebf3038", - "url": "/diabloweb/static/css/main.e49ccae7.chunk.css" + "revision": "c138983eba581925854b", + "url": "/diabloweb/static/css/main.b8d7c1d3.chunk.css" }, { "revision": "f04ff4ef9a7df3b718be", @@ -20,8 +20,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/5.473ccc28.chunk.js" }, { - "revision": "64f91a62cda38ebf3038", - "url": "/diabloweb/static/js/main.45ac41be.chunk.js" + "revision": "c138983eba581925854b", + "url": "/diabloweb/static/js/main.3fa9187d.chunk.js" }, { "revision": "077fe45e700d7971de0b", @@ -32,8 +32,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/runtime~storage.83a78cef.js" }, { - "revision": "25e6edf4d74bfffb6264", - "url": "/diabloweb/static/js/storage.d9050d9b.chunk.js" + "revision": "931998486e77241048fa", + "url": "/diabloweb/static/js/storage.d4689937.chunk.js" }, { "revision": "d4c3df3a75a3206b9f40e63a84d20a9a", @@ -56,7 +56,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/media/shift.b40e4a63.svg" }, { - "revision": "a1f9fb1fe0e2d656c66287f967e66490", + "revision": "7bad72286bc086d60cd003d311a1c448", "url": "/diabloweb/storage.html" } ]); \ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 8633926..cf394c3 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.68a05d51378f9d988050fcf1177ae4a8.js" + "/diabloweb/precache-manifest.0d21993e47508a6b2df1563c4b90046b.js" ); self.addEventListener('message', (event) => { diff --git a/spawn.mpq b/spawn.mpq index 410eb50..2a847f6 100644 Binary files a/spawn.mpq and b/spawn.mpq differ diff --git a/static/css/main.e49ccae7.chunk.css b/static/css/main.b8d7c1d3.chunk.css similarity index 99% rename from static/css/main.e49ccae7.chunk.css rename to static/css/main.b8d7c1d3.chunk.css index 5aafe03..22a6217 100644 --- a/static/css/main.e49ccae7.chunk.css +++ b/static/css/main.b8d7c1d3.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 +/*# sourceMappingURL=main.b8d7c1d3.chunk.css.map */ \ No newline at end of file diff --git a/static/css/main.b8d7c1d3.chunk.css.map b/static/css/main.b8d7c1d3.chunk.css.map new file mode 100644 index 0000000..efa9167 --- /dev/null +++ b/static/css/main.b8d7c1d3.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["reset.css","C:\\Work\\diabloweb/src\\App.scss"],"names":[],"mappings":"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","file":"main.b8d7c1d3.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/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/main.3fa9187d.chunk.js b/static/js/main.3fa9187d.chunk.js new file mode 100644 index 0000000..762800f --- /dev/null +++ b/static/js/main.3fa9187d.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{25:function(e,t,n){e.exports=function(){return new Worker(n.p+"25340ede01a50ea61a08.worker.js")}},30:function(e,t,n){e.exports=n(62)},36:function(e,t,n){},37:function(e,t,n){},62:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(21),s=n.n(r),i=(n(36),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function c(e,t){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}}).catch(function(e){console.error("Error during service worker registration:",e)})}var u=n(6),l=n(22),d=n(23),h=n(27),f=n(24),v=n(5),p=n(28),m=n(29),b=(n(37),n(7)),y=n.n(b),g=n(11),w=n(9),k=n(1),x=n.n(k),E=n(4),M=n(2),C=n(25),D=n.n(C);function T(){var e=window.AudioContext||window.webkitAudioContext,t=window.StereoPannerNode||window.webkitAudioPannerNode;if(!e)return{create_sound:function(){return 0},duplicate_sound:function(){return 0},play_sound:function(){},set_volume:function(){},stop_sound:function(){},delete_sound:function(){}};var n=null;try{n=new e}catch(o){}var a=new Map;return{create_sound_raw:function(e,o,r,s,i){if(n){for(var c=n.createBuffer(s,r,i),u=0;u>16&255,O=A>>8&255,N=255&A;t.fillStyle="rgb(".concat(j,", ").concat(O,", ").concat(N,")"),t.fillText(S,L,_+22)}}catch(K){C=!0,D=K}finally{try{M||null==B.return||B.return()}finally{if(C)throw D}}t.restore()}}e.updateBelt(i)}function j(){return(j=Object(M.a)(x.a.mark(function e(t,n,a,o){var r,s,i;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(r=e.sent,!o||a){e.next=6;break}return e.next=6,_(t,r);case 6:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=10,new Promise(function(e,c){try{var l=new D.a;l.addEventListener("message",function(a){var o=a.data;switch(o.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onTouchStart=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[K]||n.game("DApi_Mouse",1,n.touchMods[R]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas&&e.target!==n.keyboard){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[R]||n.touchButton&&n.touchButton.index===R||n.setTouchButton(R,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(v.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(v.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(v.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(v.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(v.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(v.a)(n),5),n}return Object(p.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&L.includes(n.byteLength)&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState(function(n){return!n.error&&{error:{message:e,stack:t}}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard={left:"".concat((100*(e[0]-10)/640).toFixed(2),"%"),top:"".concat((100*(e[1]-10)/480).toFixed(2),"%"),width:"".concat((100*(e[2]-e[0]+20)/640).toFixed(2),"%"),height:"".concat((100*(e[3]-e[1]+20)/640).toFixed(2),"%")},this.element.classList.add("keyboard"),Object.assign(this.keyboard.style,this.showKeyboard),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur(),this.keyboard.value="")}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onExit",value:function(){this.state.error||window.location.reload()}},{key:"setCurrentSave",value:function(e){this.saveName=e}},{key:"drawBelt",value:function(e,t){this.canvas&&this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;if(e&&e.name.match(/\.sv$/i))this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name)));else{document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0});var n=!(!e||!e.name.match(/^diabdat\.mpq$/i));g.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),O(this,e,!n).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null;this.touchControls||(this.touchControls=!0,this.element.classList.add("touch"));var o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),v=o.clientX,p=o.clientY;v>=f.left&&v=f.top&&pk)y=Math.abs(g)>Math.abs(w)?g>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,y),this.panPos={x:m,y:b}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:b};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.has_spawn;return o.a.createElement("div",{className:y()("App",{touch:this.touchControls,started:n,dropping:i,keyboard:!!this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:y()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:y()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:y()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:y()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:y()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:y()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},o.a.createElement("div",{className:"inner"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1,style:this.showKeyboard||{}}))),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(U,{className:"error",href:N(r,this.state.retail)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r.message),o.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=this.saveName&&o.a.createElement("p",{className:"link",onClick:this.downloadSave},"Download save file")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team. The project page with information and links can be found over here ",o.a.createElement(U,{href:"https://github.com/d07RiV/diabloweb"},"https://github.com/d07RiV/diabloweb")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(U,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!c&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(F,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},9:function(e,t,n){"use strict";n.d(t,"a",function(){return b});var a=n(4),o=n(1),r=n.n(o),s=n(2),i=n(10),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,a,o,s,i,c;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,a=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(i=s.next()).done){e.next=14;break}(c=i.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),a=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!a){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var v=function(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(){return t(a.result)},a.onerror=function(){return n(a.error)},a.onabort=function(){return n()},a.readAsArrayBuffer(e)})};function p(e,t,n){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(r.a.mark(function e(t,n,a){var o;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,v(a);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(a.name.toLowerCase(),o),e.abrupt("return",t.set(a.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function b(e){return y.apply(this,arguments)}function y(){return(y=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,f,v,m,b,y,g,w,k,x,E,M,C,D;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nfunction decodeAudioData(context, buffer) {\r\n return new Promise((resolve, reject) => {\r\n context.decodeAudioData(buffer, resolve, reject);\r\n });\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n const StereoPannerNode = window.StereoPannerNode || window.webkitAudioPannerNode;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n let context = null;\r\n try {\r\n context = new AudioContext();\r\n } catch (e) {\r\n }\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound_raw(id, data, length, channels, rate) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.getChannelData(i).set(data.subarray(i * length, i * length + length));\r\n }\r\n sounds.set(id, {\r\n buffer: Promise.resolve(buffer),\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n create_sound(id, data) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = decodeAudioData(context, data.buffer);\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n if (!context) {\r\n return;\r\n }\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: StereoPannerNode && new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n if (src.panner) {\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n }\r\n src.source = src.buffer.then(buffer => {\r\n const source = context.createBufferSource();\r\n source.buffer = buffer;\r\n source.loop = !!loop;\r\n let node = source.connect(src.gain);\r\n if (src.panner) {\r\n node = node.connect(src.panner);\r\n }\r\n node.connect(context.destination);\r\n source.start();\r\n return source;\r\n });\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n sounds.delete(id);\r\n },\r\n\r\n stop_all() {\r\n for (let [, sound] of sounds) {\r\n if (sound.source) {\r\n sound.source.then(source => source.stop());\r\n }\r\n }\r\n sounds.clear();\r\n context = null;\r\n }\r\n };\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSizes = [50274091, 25830791];\r\n\r\nexport { SpawnSizes };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && !SpawnSizes.includes(file.byteLength)) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSizes[1]});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (!SpawnSizes.includes(spawn.data.byteLength)) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n // This works but I couldn't see any performance difference, and support for 2D canvas in workers is very poor.\r\n // In this mode, instead of sending a batch of areas to draw back to the main thread, the worker does all drawing on its own and sends a complete bitmap object back.\r\n // However, this effectively clears the worker's canvas, so we need to redraw the whole frame every time, which defeats the performance gained from reduced copying.\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq, spawn) {\r\n const fs = await api.fs;\r\n if (spawn && !mpq) {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.rect);\r\n break;\r\n case \"error\":\r\n audio.stop_all();\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n case \"exit\":\r\n api.onExit();\r\n break;\r\n case \"current_save\":\r\n api.setCurrentSave(data.name);\r\n break;\r\n default:\r\n }\r\n });\r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen, websocket: window.gameServer}, transfer);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq, spawn) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq, spawn);\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\nimport ReactGA from 'react-ga';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSizes } from './api/load_spawn';\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n ReactGA.initialize('UA-43123589-6');\r\n ReactGA.pageview('/');\r\n}\r\n\r\nfunction reportLink(e, retail) {\r\n const message = e.stack || e.message || \"Unknown error\";\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\",\r\n`**Description:**\r\n[Please describe what you were doing before the error occurred]\r\n\r\n**App version:**\r\nDiabloWeb ${process.env.VERSION} (${retail ? 'Retail' : 'Shareware'})\r\n\r\n**Error message:**\r\n \r\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}\r\n\r\n**User agent:**\r\n\r\n ${navigator.userAgent}\r\n\r\n**Save file:**\r\n[Please attach the save file, if applicable. The error box should have a link to download the current save you were playing; alternatively, you can open dev console on the game page (F12) and type in ${\"`DownloadSaves()`\"}]\r\n`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchControls = false;\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && SpawnSizes.includes(spawn.byteLength)) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState(({error}) => !error && {error: {message, stack}});\r\n }\r\n\r\n openKeyboard(rect) {\r\n if (rect) {\r\n this.showKeyboard = {\r\n left: `${(100 * (rect[0] - 10) / 640).toFixed(2)}%`,\r\n top: `${(100 * (rect[1] - 10) / 480).toFixed(2)}%`,\r\n width: `${(100 * (rect[2] - rect[0] + 20) / 640).toFixed(2)}%`,\r\n height: `${(100 * (rect[3] - rect[1] + 20) / 640).toFixed(2)}%`,\r\n };\r\n this.element.classList.add(\"keyboard\");\r\n Object.assign(this.keyboard.style, this.showKeyboard);\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n this.keyboard.value = \"\";\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n onExit() {\r\n if (!this.state.error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n setCurrentSave(name) {\r\n this.saveName = name;\r\n }\r\n downloadSave = e => {\r\n this.fs.then(fs => this.saveName && fs.download(this.saveName));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.canvas) return;\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n const retail = !!(file && file.name.match(/^diabdat\\.mpq$/i));\r\n if (process.env.NODE_ENV === 'production') {\r\n ReactGA.event({\r\n category: 'Game',\r\n action: retail ? 'Start Retail' : 'Start Shareware',\r\n });\r\n }\r\n\r\n this.setState({loading: true, retail});\r\n\r\n load_game(this, file, !retail).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n if (this.touchControls) {\r\n this.touchControls = false;\r\n this.element.classList.remove(\"touch\");\r\n }\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n if (!this.touchControls) {\r\n this.touchControls = true;\r\n this.element.classList.add(\"touch\");\r\n }\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, has_spawn} = this.state;\r\n return (\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 {!error && }\r\n \r\n
\r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to create an issue on GitHub

\r\n {this.saveName != null &&

Download save file

}\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team. The project page with information and links can be found over here https://github.com/d07RiV/diabloweb\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.45ac41be.chunk.js b/static/js/main.45ac41be.chunk.js deleted file mode 100644 index dacbeac..0000000 --- a/static/js/main.45ac41be.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{25:function(e,t,n){e.exports=function(){return new Worker(n.p+"9117ffbb9dbceb01de24.worker.js")}},30:function(e,t,n){e.exports=n(62)},36:function(e,t,n){},37:function(e,t,n){},62:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(21),s=n.n(r),i=(n(36),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function c(e,t){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}}).catch(function(e){console.error("Error during service worker registration:",e)})}var u=n(6),l=n(22),d=n(23),h=n(27),f=n(24),v=n(5),p=n(28),m=n(29),b=(n(37),n(7)),y=n.n(b),g=n(11),w=n(9),k=n(1),x=n.n(k),E=n(4),M=n(2),C=n(25),D=n.n(C);function T(){var e=window.AudioContext||window.webkitAudioContext;if(!e)return{create_sound:function(){return 0},duplicate_sound:function(){return 0},play_sound:function(){},set_volume:function(){},stop_sound:function(){},delete_sound:function(){}};var t=null;try{t=new e}catch(a){}var n=new Map;return{create_sound_raw:function(e,a,o,r,s){if(t){for(var i=t.createBuffer(r,o,s),c=0;c>16&255,O=A>>8&255,N=255&A;t.fillStyle="rgb(".concat(j,", ").concat(O,", ").concat(N,")"),t.fillText(_,L,S+22)}}catch(K){C=!0,D=K}finally{try{M||null==B.return||B.return()}finally{if(C)throw D}}t.restore()}}e.updateBelt(i)}function j(){return(j=Object(M.a)(x.a.mark(function e(t,n,a,o){var r,s,i;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(r=e.sent,!o||a){e.next=6;break}return e.next=6,S(t,r);case 6:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=10,new Promise(function(e,c){try{var l=new D.a;l.addEventListener("message",function(a){var o=a.data;switch(o.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onTouchStart=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[K]||n.game("DApi_Mouse",1,n.touchMods[R]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas&&e.target!==n.keyboard){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[R]||n.touchButton&&n.touchButton.index===R||n.setTouchButton(R,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(v.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(v.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(v.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(v.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(v.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(v.a)(n),5),n}return Object(p.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&L.includes(n.byteLength)&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState(function(n){return!n.error&&{error:{message:e,stack:t}}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard={left:"".concat((100*(e[0]-10)/640).toFixed(2),"%"),top:"".concat((100*(e[1]-10)/480).toFixed(2),"%"),width:"".concat((100*(e[2]-e[0]+20)/640).toFixed(2),"%"),height:"".concat((100*(e[3]-e[1]+20)/640).toFixed(2),"%")},this.element.classList.add("keyboard"),Object.assign(this.keyboard.style,this.showKeyboard),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur(),this.keyboard.value="")}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onExit",value:function(){this.state.error||window.location.reload()}},{key:"setCurrentSave",value:function(e){this.saveName=e}},{key:"drawBelt",value:function(e,t){this.canvas&&this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;if(e&&e.name.match(/\.sv$/i))this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name)));else{document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0});var n=!(!e||!e.name.match(/^diabdat\.mpq$/i));g.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),O(this,e,!n).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null;this.touchControls||(this.touchControls=!0,this.element.classList.add("touch"));var o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),v=o.clientX,p=o.clientY;v>=f.left&&v=f.top&&pk)y=Math.abs(g)>Math.abs(w)?g>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,y),this.panPos={x:m,y:b}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:b};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.has_spawn;return o.a.createElement("div",{className:y()("App",{touch:this.touchControls,started:n,dropping:i,keyboard:!!this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:y()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:y()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:y()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:y()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:y()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:y()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},o.a.createElement("div",{className:"inner"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1,style:this.showKeyboard||{}}))),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(U,{className:"error",href:N(r,this.state.retail)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r.message),o.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=this.saveName&&o.a.createElement("p",{className:"link",onClick:this.downloadSave},"Download save file")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team. The project page with information and links can be found over here ",o.a.createElement(U,{href:"https://github.com/d07RiV/diabloweb"},"https://github.com/d07RiV/diabloweb")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(U,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!c&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(F,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},9:function(e,t,n){"use strict";n.d(t,"a",function(){return b});var a=n(4),o=n(1),r=n.n(o),s=n(2),i=n(10),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,a,o,s,i,c;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,a=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(i=s.next()).done){e.next=14;break}(c=i.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),a=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!a){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var v=function(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(){return t(a.result)},a.onerror=function(){return n(a.error)},a.onabort=function(){return n()},a.readAsArrayBuffer(e)})};function p(e,t,n){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(r.a.mark(function e(t,n,a){var o;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,v(a);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(a.name.toLowerCase(),o),e.abrupt("return",t.set(a.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function b(e){return y.apply(this,arguments)}function y(){return(y=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,f,v,m,b,y,g,w,k,x,E,M,C,D;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nfunction decodeAudioData(context, buffer) {\r\n return new Promise((resolve, reject) => {\r\n context.decodeAudioData(buffer, resolve, reject);\r\n });\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n let context = null;\r\n try {\r\n context = new AudioContext();\r\n } catch (e) {\r\n }\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound_raw(id, data, length, channels, rate) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.getChannelData(i).set(data.subarray(i * length, i * length + length));\r\n }\r\n sounds.set(id, {\r\n buffer: Promise.resolve(buffer),\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n create_sound(id, data) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = decodeAudioData(context, data.buffer);\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n if (!context) {\r\n return;\r\n }\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n src.source = src.buffer.then(buffer => {\r\n const source = context.createBufferSource();\r\n source.buffer = buffer;\r\n source.loop = !!loop;\r\n source.connect(src.gain).connect(src.panner).connect(context.destination);\r\n source.start();\r\n return source;\r\n });\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.then(source => source.stop());\r\n }\r\n sounds.delete(id);\r\n },\r\n\r\n stop_all() {\r\n for (let [, sound] of sounds) {\r\n if (sound.source) {\r\n sound.source.then(source => source.stop());\r\n }\r\n }\r\n sounds.clear();\r\n context = null;\r\n }\r\n };\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSizes = [50274091, 25830791];\r\n\r\nexport { SpawnSizes };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && !SpawnSizes.includes(file.byteLength)) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSizes[1]});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (!SpawnSizes.includes(spawn.data.byteLength)) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n // This works but I couldn't see any performance difference, and support for 2D canvas in workers is very poor.\r\n // In this mode, instead of sending a batch of areas to draw back to the main thread, the worker does all drawing on its own and sends a complete bitmap object back.\r\n // However, this effectively clears the worker's canvas, so we need to redraw the whole frame every time, which defeats the performance gained from reduced copying.\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq, spawn) {\r\n const fs = await api.fs;\r\n if (spawn && !mpq) {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.rect);\r\n break;\r\n case \"error\":\r\n audio.stop_all();\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n case \"exit\":\r\n api.onExit();\r\n break;\r\n case \"current_save\":\r\n api.setCurrentSave(data.name);\r\n break;\r\n default:\r\n }\r\n });\r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen, websocket: window.gameServer}, transfer);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq, spawn) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq, spawn);\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\nimport ReactGA from 'react-ga';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSizes } from './api/load_spawn';\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n ReactGA.initialize('UA-43123589-6');\r\n ReactGA.pageview('/');\r\n}\r\n\r\nfunction reportLink(e, retail) {\r\n const message = e.stack || e.message || \"Unknown error\";\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\",\r\n`**Description:**\r\n[Please describe what you were doing before the error occurred]\r\n\r\n**App version:**\r\nDiabloWeb ${process.env.VERSION} (${retail ? 'Retail' : 'Shareware'})\r\n\r\n**Error message:**\r\n \r\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}\r\n\r\n**User agent:**\r\n\r\n ${navigator.userAgent}\r\n\r\n**Save file:**\r\n[Please attach the save file, if applicable. The error box should have a link to download the current save you were playing; alternatively, you can open dev console on the game page (F12) and type in ${\"`DownloadSaves()`\"}]\r\n`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchControls = false;\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && SpawnSizes.includes(spawn.byteLength)) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState(({error}) => !error && {error: {message, stack}});\r\n }\r\n\r\n openKeyboard(rect) {\r\n if (rect) {\r\n this.showKeyboard = {\r\n left: `${(100 * (rect[0] - 10) / 640).toFixed(2)}%`,\r\n top: `${(100 * (rect[1] - 10) / 480).toFixed(2)}%`,\r\n width: `${(100 * (rect[2] - rect[0] + 20) / 640).toFixed(2)}%`,\r\n height: `${(100 * (rect[3] - rect[1] + 20) / 640).toFixed(2)}%`,\r\n };\r\n this.element.classList.add(\"keyboard\");\r\n Object.assign(this.keyboard.style, this.showKeyboard);\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n this.keyboard.value = \"\";\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n onExit() {\r\n if (!this.state.error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n setCurrentSave(name) {\r\n this.saveName = name;\r\n }\r\n downloadSave = e => {\r\n this.fs.then(fs => this.saveName && fs.download(this.saveName));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.canvas) return;\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n const retail = !!(file && file.name.match(/^diabdat\\.mpq$/i));\r\n if (process.env.NODE_ENV === 'production') {\r\n ReactGA.event({\r\n category: 'Game',\r\n action: retail ? 'Start Retail' : 'Start Shareware',\r\n });\r\n }\r\n\r\n this.setState({loading: true, retail});\r\n\r\n load_game(this, file, !retail).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n if (this.touchControls) {\r\n this.touchControls = false;\r\n this.element.classList.remove(\"touch\");\r\n }\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n if (!this.touchControls) {\r\n this.touchControls = true;\r\n this.element.classList.add(\"touch\");\r\n }\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n if (e.target === this.keyboard) {\r\n return;\r\n }\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, has_spawn} = this.state;\r\n return (\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 {!error && }\r\n \r\n
\r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to create an issue on GitHub

\r\n {this.saveName != null &&

Download save file

}\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team. The project page with information and links can be found over here https://github.com/d07RiV/diabloweb\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/storage.d9050d9b.chunk.js b/static/js/storage.d4689937.chunk.js similarity index 98% rename from static/js/storage.d9050d9b.chunk.js rename to static/js/storage.d4689937.chunk.js index 40d8306..3001ad3 100644 --- a/static/js/storage.d9050d9b.chunk.js +++ b/static/js/storage.d4689937.chunk.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{61:function(e,t,n){"use strict";n.r(t);var r=n(9),o=Object(r.a)();window.addEventListener("message",function(e){var t=e.data,n=e.source;"transfer"===t.method?o.then(function(e){var t=e.files;n.postMessage({method:"storage",files:t},"*")}):"clear"===t.method&&o.then(function(e){return(0,e.clear)()})})},9:function(e,t,n){"use strict";n.d(t,"a",function(){return b});var r=n(4),o=n(1),a=n.n(o),s=n(2),c=n(10),u=n.n(c),i=function(){return new Promise(function(e,t){var n=!1,r=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),r.contentWindow.postMessage({method:"clear"},"*"))}),r.addEventListener("load",function(){r.contentWindow.postMessage({method:"transfer"},"*")}),r.addEventListener("error",function(){n||(n=!0,e(null))}),r.src="https://diablo.rivsoft.net/storage.html",r.style.display="none",document.body.appendChild(r),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function d(e,t){return l.apply(this,arguments)}function l(){return(l=Object(s.a)(a.a.mark(function e(t,n){var r,o,s,c;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(r=e.sent)?(o=new Blob([r],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(c=document.createElement("a")).setAttribute("href",s),c.setAttribute("download",n),document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function f(e){return p.apply(this,arguments)}function p(){return(p=Object(s.a)(a.a.mark(function e(t){var n,r,o,s,c,u;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,r=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(c=s.next()).done){e.next=14;break}(u=c.value).match(/\.sv$/i)&&d(t,u);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),r=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!r){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var v=function(e){return new Promise(function(t,n){var r=new FileReader;r.onload=function(){return t(r.result)},r.onerror=function(){return n(r.error)},r.onabort=function(){return n()},r.readAsArrayBuffer(e)})};function w(e,t,n){return h.apply(this,arguments)}function h(){return(h=Object(s.a)(a.a.mark(function e(t,n,r){var o;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,v(r);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(r.name.toLowerCase(),o),e.abrupt("return",t.set(r.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function b(e){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(a.a.mark(function e(t){var n,o,s,c,l,p,v,h,b,m,x,y,k,j,L,g,O,P;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new u.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,c=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s {\r\n if (data.method === 'transfer') {\r\n fs.then(({files}) => {\r\n source.postMessage({method: 'storage', files}, '*');\r\n });\r\n } else if (data.method === 'clear') {\r\n fs.then(({clear}) => clear());\r\n }\r\n});","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/storage.d9050d9b.chunk.js.map b/static/js/storage.d9050d9b.chunk.js.map deleted file mode 100644 index 4d88065..0000000 --- a/static/js/storage.d9050d9b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["storage.js","fs.js"],"names":["__webpack_require__","r","__webpack_exports__","_fs__WEBPACK_IMPORTED_MODULE_0__","fs","create_fs","window","addEventListener","_ref","data","source","method","then","_ref2","files","postMessage","_ref3","clear","importStorage","Promise","resolve","reject","done","frame","document","createElement","contentWindow","src","style","display","body","appendChild","setTimeout","downloadFile","_callee","store","name","file","blob","url","lnk","C_Projects_diabloweb_diabloweb_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","a","wrap","_context","prev","next","get","toLowerCase","sent","Blob","type","URL","createObjectURL","setAttribute","click","removeChild","revokeObjectURL","console","error","concat","stop","downloadSaves","_callee2","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_context2","undefined","keys","t0","Symbol","iterator","value","match","t1","return","finish","readFile","reader","FileReader","onload","result","onerror","onabort","readAsArrayBuffer","uploadFile","_callee3","_context3","Uint8Array","set","abrupt","_x7","_create_fs","apply","this","arguments","_callee4","load","_i","_Object$entries","_ref7","_name","_data","_files","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_ref6","_ref5","_context4","IdbKvStore","Map","Object","json","entries","call","length","C_Projects_diabloweb_diabloweb_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","t2","DownloadFile","DownloadSaves","update","delete","remove","download","upload","t3"],"mappings":"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","file":"static/js/storage.d9050d9b.chunk.js","sourcesContent":["import create_fs from './fs';\r\n\r\nconst fs = create_fs();\r\nwindow.addEventListener('message', ({data, source}) => {\r\n if (data.method === 'transfer') {\r\n fs.then(({files}) => {\r\n source.postMessage({method: 'storage', files}, '*');\r\n });\r\n } else if (data.method === 'clear') {\r\n fs.then(({clear}) => clear());\r\n }\r\n});","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/storage.html b/storage.html index ced0105..cadaefe 100644 --- a/storage.html +++ b/storage.html @@ -1 +1 @@ -DIABLO Connector \ No newline at end of file +DIABLO Connector \ No newline at end of file