From 36728ac63e4aad3249fad2d7fe8c44c205c0ceec Mon Sep 17 00:00:00 2001 From: Seth Pellegrino Date: Wed, 17 Jul 2024 10:50:46 -0700 Subject: [PATCH] chore: update `dist/` --- dist/_astro/hoisted.BGnfuxfG.js | 6 - dist/_astro/hoisted.DTnhbeO0.js | 6 + dist/docs/glossary/index.html | 7 + dist/index.html | 265 ++++++++++++++---- dist/pagefind/fragment/en_61ebff9.pf_fragment | Bin 0 -> 1977 bytes dist/pagefind/fragment/en_e27e35a.pf_fragment | Bin 1562 -> 0 bytes dist/pagefind/index/en_bf77f48.pf_index | Bin 0 -> 8777 bytes dist/pagefind/index/en_ea9179b.pf_index | Bin 8187 -> 0 bytes dist/pagefind/pagefind-entry.json | 2 +- dist/pagefind/pagefind.en_8a50cd4d8e.pf_meta | Bin 111 -> 0 bytes dist/pagefind/pagefind.en_8a6591f631.pf_meta | Bin 0 -> 111 bytes dist/styles/index.css | 21 +- 12 files changed, 246 insertions(+), 61 deletions(-) delete mode 100644 dist/_astro/hoisted.BGnfuxfG.js create mode 100644 dist/_astro/hoisted.DTnhbeO0.js create mode 100644 dist/pagefind/fragment/en_61ebff9.pf_fragment delete mode 100644 dist/pagefind/fragment/en_e27e35a.pf_fragment create mode 100644 dist/pagefind/index/en_bf77f48.pf_index delete mode 100644 dist/pagefind/index/en_ea9179b.pf_index delete mode 100644 dist/pagefind/pagefind.en_8a50cd4d8e.pf_meta create mode 100644 dist/pagefind/pagefind.en_8a6591f631.pf_meta diff --git a/dist/_astro/hoisted.BGnfuxfG.js b/dist/_astro/hoisted.BGnfuxfG.js deleted file mode 100644 index 26abf78..0000000 --- a/dist/_astro/hoisted.BGnfuxfG.js +++ /dev/null @@ -1,6 +0,0 @@ -import{_ as Sn}from"./preload-helper.Cd0R8zjt.js";const Ke=document.querySelector("#talvos svg"),je=Ke.querySelector("tspan.physical"),Wr=Ke.querySelector("tspan.logical"),bn=Ke.querySelectorAll(".lane");for(const u of bn)u.addEventListener("mouseenter",function(){je.textContent=this.dataset.phyCoords,Wr.textContent=this.dataset.logCoords??"N/A"}),u.addEventListener("mouseleave",function(){je.textContent="N/A",Wr.textContent="N/A"}),u.addEventListener("click",function(){this.classList.contains(".disabled")||this.classList.toggle("selected")});const kn=Ke.querySelectorAll(".ctrl");for(const[u,l]of kn.entries())l.addEventListener("mouseenter",function(){je.textContent=`{ ${u}, [${u*8}-${u*8+7}] }`}),l.addEventListener("mouseleave",function(){je.textContent="N/A"}),l.addEventListener("click",function(){if(!!!this.parentNode.querySelector('.lane[data-state="active"], .lane[data-state="inactive"]'))return;const s=!this.parentNode.querySelector(".lane.selected");this.parentNode.querySelectorAll(".lane").forEach(g=>{g.classList.toggle("selected",s)})});class J{data;constructor(l,f,s){this.data=new DataView(l,f,s)}get addr(){return this.data.byteOffset}get byteLength(){return this.data.byteLength}reslice(l){return[this.slice(0,l),this.slice(l)]}slice(l,f){l=l??0,l=l<0?this.byteLength+l:l,f=f??this.byteLength,f=f<0?this.byteLength+f:f;const s=Math.min(this.addr+l,this.addr+this.byteLength),g=Math.min(Math.max(0,f-l),this.byteLength);return new J(this.data.buffer,s,g)}asRef(){return this.addr}as(l){return new l(this.data.buffer,this.addr,this.byteLength)}static get SIZE(){return 4}getUsize(l,f){return this.data.getUint32(l,f)}deref(l,f,s){return new J(this.data.buffer,this.getUsize(l,s),f)}}var Tn=new TextEncoder,An=(u,l,f,s)=>{if(u.length>16){const{written:D}=Tn.encodeInto(u,l.subarray(f,s));return D}for(var g=f,w=f+s-1,b=0;b=55296&&v<=57343){var I=u.charCodeAt(++b);v=65536+((v&1023)<<10)|I&1023}if(v<=127){if(f>=w)break;l[f++]=v}else if(v<=2047){if(f+1>=w)break;l[f++]=192|v>>6,l[f++]=128|v&63}else if(v<=65535){if(f+2>=w)break;l[f++]=224|v>>12,l[f++]=128|v>>6&63,l[f++]=128|v&63}else{if(f+3>=w)break;if(v>1114111)throw new Error("Invalid Unicode code point");l[f++]=240|v>>18,l[f++]=128|v>>12&63,l[f++]=128|v>>6&63,l[f++]=128|v&63}}return l[f]=0,f-g},Zr=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Fn=(u,l,f,s)=>{const g=l+f,w=(()=>{let q=l;for(;u[q]&&!(q>=g);)++q;return q})();if(w-l>16&&u.buffer&&Zr)return Zr.decode(u.subarray(l,w));for(var b="";l>10,56320|O&1023)}}return b};class Nn{next;dtor;constructor(l,f){this.next=l,this.dtor=f??(()=>{})}alloc(l){if(l>this.size)throw new Error(`OOM: Arena out of memory: requested ${l} bytes but only ${this.size} bytes remain`);const[f,s]=this.next.reslice(l);return this.next=s,f}free(l){}get size(){return this.next.byteLength}__destroy__(){this.dtor()}}const Ne=!0;function On(u){class l{static get SIZE(){return J.SIZE}constructor(s){return new u(s.deref(0,u.SIZE,Ne))}}return l}const Mn=6,In=await WebAssembly.instantiateStreaming(fetch("data:application/wasm;base64,AGFzbQEAAAABBgFgAX4BfwMCAQAHDgEKaTY0LnBvcGNudAAACggBBgAgAHunCwAKBG5hbWUCAwEAAA=="),{}),Dn=In.instance,Ln=Dn.exports["i64.popcnt"];class We{words;growable;constructor(l,{data:f}={}){this.words=new BigUint64Array(f.buffer,f.byteOffset,f.byteLength>>3),this.growable=!1;for(const s of l??[])this.add(s)}asRef(){return this.words.byteOffset}#e(l){const f=this.words;if(f.length<<6>l)return;if(!this.growable)throw new Error("TODO message");const s=l+64>>>Mn,g=Math.max(s<<3,f.byteLength<<4);var w=new BigUint64Array(new ArrayBuffer(g));w.set(this.words),this.words=w}add(l){this.#e(l);const f=l>>>6,s=1n<>>6,s=1n<({size:l.size*u})}function Pn(...u){return{size:u.reduce((l,f)=>l+f.size,0)}}class Ze{constructor(l){if(this.ptr=l,l.byteLength!=Ze.SIZE)throw new Error(`bad size! got ${l.byteLength} wanted ${Ze.SIZE}`)}static get SIZE(){return 12}get X(){return this.ptr.data.getUint32(0,Ge)}get Y(){return this.ptr.data.getUint32(4,Ge)}get Z(){return this.ptr.data.getUint32(8,Ge)}}class Ve{constructor(l){if(this.ptr=l,l.byteLength!=Ve.SIZE)throw new Error(`bad size! got ${l.byteLength} wanted ${Ve.SIZE}`)}static get SIZE(){return 2}get Core(){return this.ptr.data.getUint8(0)}get Lane(){return this.ptr.data.getUint8(1)}}var ne=(u=>(u[u.Active=0]="Active",u[u.Inactive=1]="Inactive",u[u.AtBarrier=2]="AtBarrier",u[u.AtBreakpoint=3]="AtBreakpoint",u[u.AtAssert=4]="AtAssert",u[u.AtException=5]="AtException",u[u.NotLaunched=6]="NotLaunched",u[u.Exited=7]="Exited",u[u.UNKNOWN=8]="UNKNOWN",u))(ne||{});class Z{constructor(l){if(this.ptr=l,l.byteLength!=Z.SIZE)throw new Error(`bad size! got ${l.byteLength} wanted ${Z.SIZE}`)}static get SIZE(){return 1304}static get OFFSETS(){return{cores:0,lanes:1,result:2,steppedCores:8,steppedLanes:16,laneStates:24}}static get TYPES(){return{cores:Vr,lanes:Vr,steppedCores:Xr,steppedLanes:Xr,laneStates:Cn(Kr)(Pn())}}asRef(){return this.ptr.asRef()}get Cores(){return Z.TYPES.cores.get(this.ptr,Z.OFFSETS.cores)}get Lanes(){return Z.TYPES.lanes.get(this.ptr,Z.OFFSETS.lanes)}get SteppedCores(){return new We(void 0,{data:this.ptr.slice(Z.OFFSETS.steppedCores,Z.OFFSETS.steppedCores+Z.TYPES.steppedCores.size).data})}get SteppedLanes(){return new We(void 0,{data:this.ptr.slice(Z.OFFSETS.steppedLanes,Z.OFFSETS.steppedLanes+Z.TYPES.steppedLanes.size).data})}get LaneStates(){var l=Math.min(this.Cores*this.Lanes,Kr);const f=this.ptr.slice(24),s={get(g){const w=f.slice(20*g,20*g+20);return{get PhyCoord(){return new Ve(w.slice(0,2))},get LogCoord(){return new Ze(w.slice(4,16))},get State(){return w.data.getInt32(16,Ge)}}},[Symbol.iterator]:()=>{var g=0;return{next(){return g>=l?{done:!0,value:void 0}:{done:!1,value:s.get(g++)}}}}};return s}}const Kr=64;var Rn=new TextDecoder("utf8");class Xe{constructor(l){this.ptr=l}static get SIZE(){return 12}get __is_long(){return!!(this.ptr.data.getUint8(11)&128)}get data(){return this.__is_long?this.ptr.deref(0,this.length,Ne):this.ptr.slice(0,this.length)}get length(){return this.__is_long?this.ptr.data.getUint32(4,Ne):this.ptr.data.getUint8(11)&127}get capacity(){return this.__is_long?this.ptr.data.getUint32(8,Ne)^2147483648:10}asString(){return Rn.decode(this.data.as(Uint8Array))}get[Symbol.toStringTag](){return`std::string(${this.asString})`}}function me(u){return class{constructor(l){this.ptr=l}static get T(){return u}static get SIZE(){return me.SIZE}get(l){const[f,s]=[this.ptr.deref(0*J.SIZE,void 0,!0),this.ptr.deref(1*J.SIZE,void 0,!0)],g=u.SIZE,w=(s.addr-f.addr)/g;if(l<0||l>w)throw new Error(`out of bounds access: for index ${l} with elements [0..${w})`);const b=l*g;return new u(f.slice(b,b+g))}[Symbol.iterator](){const[l,f]=[this.ptr.deref(0*J.SIZE,void 0,!0),this.ptr.deref(1*J.SIZE,0,!0)],s=u.SIZE;var g=l;return{next(){if(g.addr>=f.addr)return{done:!0,value:void 0};const w={done:!1,value:new u(g.slice(0,s))};return g=g.slice(s),w}}}}}me.SIZE=12;function xn(u){return class{constructor(l){this.ptr=l}static get T(){return u}static get SIZE(){return console.assert(u==Xe),4+u.SIZE}get __engaged_(){return!!(this.ptr.data.getUint8(u.SIZE)&1)}deref(){if(this.__engaged_)return new u(this.ptr.slice(0,u.SIZE))}}}const ke=!0;class Jr{constructor(l){this.ptr=l}static get SIZE(){return 64}get EntryName(){return Fn(this.ptr.slice(0,64).as(Uint8Array),0,64)}set EntryName(l){if(An(l,this.ptr.slice(0,64).as(Uint8Array),0,64)>48n,b=Number(l&BigInt.asUintN(64,2n**64n-1n>>s)),v=this.Allocs.get(Number(w));return console.assert(b+f<=v.NumBytes),v.Data.slice(b,f)}get Allocs(){return new(me(zn))(this.ptr.slice(2432,2432+me.SIZE))}}class $n{constructor(l){this.ptr=l}static get SIZE(){return 20}get Data(){return this.ptr.deref(4,void 0,ke)}}class tt{constructor(l){this.ptr=l}static get SIZE(){return 272}get Objects(){return new(me($n))(this.ptr.slice(32,32+me.SIZE))}}class nt{constructor(l){this.ptr=l}static get SIZE(){return 112}get GlobalMemory(){return new rt(this.ptr.deref(16,rt.SIZE,ke))}get PipelineExecutor(){return new tt(this.ptr.deref(32,tt.SIZE,ke))}}var Hn=(()=>{var u=import.meta.url;return async function(l={}){var f,s=Object.assign({},l),g,w,b=new Promise((e,r)=>{g=e,w=r});["_malloc","_free","getExceptionMessage","$incrementExceptionRefcount","$decrementExceptionRefcount","_memory","_assertion","_Session__create__","_Session__destroy__","_Session__params_ref","_Session__module_ref","_Session__device_ref","_Session_run","_Session_dumpBuffers","_Session_start","_Session_printContext","_Session_step","_Session_continue","_Session_print","_Session_switch","_validate_wasm","_test_entry","_test_entry_no_tcf","_run_wasm","_debug_wasm","_Session_fetch_shrubbery","_exception","___indirect_function_table","onRuntimeInitialized"].forEach(e=>{Object.getOwnPropertyDescriptor(b,e)||Object.defineProperty(b,e,{get:()=>$("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>$("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})});var v=typeof window=="object",I=typeof importScripts=="function",D=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",O=!v&&!D&&!I;if(s.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");if(D){const{createRequire:e}=await Sn(()=>import("./__vite-browser-external.BIHI7g3E.js"),[]);var q=e(import.meta.url)}var Te=Object.assign({},s),ge="./this.program",oe=(e,r)=>{throw r},z="";function er(e){return s.locateFile?s.locateFile(e,z):z+e}var ae,Ee,ye;if(D){if(typeof process>"u"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var xe=process.versions.node,re=xe.split(".").slice(0,3);if(re=re[0]*1e4+re[1]*100+re[2].split("-")[0]*1,re<16e4)throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+xe+")");var Me=q("fs"),Ie=q("path");I?z=Ie.dirname(z)+"/":z=q("url").fileURLToPath(new URL("./",import.meta.url)),ae=(e,r)=>(e=nr(e)?new URL(e):Ie.normalize(e),Me.readFileSync(e,r?void 0:"utf8")),ye=e=>{var r=ae(e,!0);return r.buffer||(r=new Uint8Array(r)),h(r.buffer),r},Ee=(e,r,t,o=!0)=>{e=nr(e)?new URL(e):Ie.normalize(e),Me.readFile(e,o?void 0:"utf8",(a,i)=>{a?t(a):r(o?i.buffer:i)})},!s.thisProgram&&process.argv.length>1&&(ge=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),oe=(e,r)=>{throw process.exitCode=e,r}}else if(O){if(typeof process=="object"&&typeof q=="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)")}else if(v||I){if(I?z=self.location.href:typeof document<"u"&&document.currentScript&&(z=document.currentScript.src),u&&(z=u),z.startsWith("blob:")?z="":z=z.substr(0,z.replace(/[?#].*/,"").lastIndexOf("/")+1),!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");ae=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},I&&(ye=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Ee=(e,r,t)=>{var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=()=>{if(o.status==200||o.status==0&&o.response){r(o.response);return}t()},o.onerror=t,o.send(null)}}else throw new Error("environment detection error");var he=s.print||console.log.bind(console),x=s.printErr||console.error.bind(console);Object.assign(s,Te),Te=null,hn(),s.arguments&&s.arguments,de("arguments","arguments_"),s.thisProgram&&(ge=s.thisProgram),de("thisProgram","thisProgram"),s.quit&&(oe=s.quit),de("quit","quit_"),h(typeof s.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),h(typeof s.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),h(typeof s.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),h(typeof s.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),h(typeof s.read>"u","Module.read option was removed (modify read_ in JS)"),h(typeof s.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),h(typeof s.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),h(typeof s.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),h(typeof s.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),de("asm","wasmExports"),de("read","read_"),de("readAsync","readAsync"),de("readBinary","readBinary"),de("setWindowTitle","setWindowTitle"),h(!I,"worker environment detected but not enabled at build time. Add `worker` to `-sENVIRONMENT` to enable."),h(!O,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.");var we;s.wasmBinary&&(we=s.wasmBinary),de("wasmBinary","wasmBinary"),typeof WebAssembly!="object"&&x("no native wasm support detected");var ie,te=!1;function h(e,r){e||$("Assertion failed"+(r?": "+r:""))}var F,G,se,M,U,le;function st(){var e=ie.buffer;s.HEAP8=F=new Int8Array(e),s.HEAP16=se=new Int16Array(e),s.HEAPU8=G=new Uint8Array(e),s.HEAPU16=new Uint16Array(e),s.HEAP32=M=new Int32Array(e),s.HEAPU32=U=new Uint32Array(e),s.HEAPF32=new Float32Array(e),s.HEAPF64=new Float64Array(e),s.HEAP64=le=new BigInt64Array(e),s.HEAPU64=new BigUint64Array(e)}h(!s.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),h(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),h(!s.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),h(!s.INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically");function lt(){var e=mr();h((e&3)==0),e==0&&(e+=4),U[e>>2]=34821223,U[e+4>>2]=2310721022,U[0]=1668509029}function rr(){if(!te){var e=mr();e==0&&(e+=4);var r=U[e>>2],t=U[e+4>>2];(r!=34821223||t!=2310721022)&&$(`Stack overflow! Stack cookie has been overwritten at ${Ce(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${Ce(t)} ${Ce(r)}`),U[0]!=1668509029&&$("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var e=new Int16Array(1),r=new Int8Array(e.buffer);if(e[0]=25459,r[0]!==115||r[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var vr=[],gr=[],Er=[],Ue=!1;function ct(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)ft(s.preRun.shift());or(vr)}function dt(){h(!Ue),Ue=!0,rr(),!s.noFSInit&&!n.init.initialized&&n.init(),n.ignorePermissions=!1,or(gr)}function ut(){if(rr(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)ht(s.postRun.shift());or(Er)}function ft(e){vr.unshift(e)}function mt(e){gr.unshift(e)}function ht(e){Er.unshift(e)}h(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),h(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),h(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),h(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var _e=0,Se=null,De=null,Ae={};function yr(e){for(var r=e;;){if(!Ae[e])return e;e=r+Math.random()}}function tr(e){_e++,s.monitorRunDependencies?.(_e),e?(h(!Ae[e]),Ae[e]=1,Se===null&&typeof setInterval<"u"&&(Se=setInterval(()=>{if(te){clearInterval(Se),Se=null;return}var r=!1;for(var t in Ae)r||(r=!0,x("still waiting on run dependencies:")),x(`dependency: ${t}`);r&&x("(end of list)")},1e4))):x("warning: run dependency added without ID")}function Be(e){if(_e--,s.monitorRunDependencies?.(_e),e?(h(Ae[e]),delete Ae[e]):x("warning: run dependency removed without ID"),_e==0&&(Se!==null&&(clearInterval(Se),Se=null),De)){var r=De;De=null,r()}}function $(e){s.onAbort?.(e),e="Aborted("+e+")",x(e),te=!0,Ue&&$r();var r=new WebAssembly.RuntimeError(e);throw w(r),r}var pt="data:application/octet-stream;base64,",wr=e=>e.startsWith(pt),nr=e=>e.startsWith("file://");function L(e,r){return(...t)=>{h(Ue,`native function \`${e}\` called before runtime initialization`);var o=V[e];return h(o,`exported native function \`${e}\` not found`),h(t.length<=r,`native function \`${e}\` called with ${t.length} args but expects ${r}`),o(...t)}}var ce;s.locateFile?(ce="talvos-wasm.wasm",wr(ce)||(ce=er(ce))):ce=new URL("/learn-gpgpu/_astro/talvos-wasm.Bc1_K4Ju.wasm",import.meta.url).href;function _r(e){if(e==ce&&we)return new Uint8Array(we);if(ye)return ye(e);throw"both async and sync fetching of the wasm failed"}function vt(e){return!we&&(v||I)&&typeof fetch=="function"?fetch(e,{credentials:"same-origin"}).then(r=>{if(!r.ok)throw`failed to load wasm binary file at '${e}'`;return r.arrayBuffer()}).catch(()=>_r(e)):Promise.resolve().then(()=>_r(e))}function Sr(e,r,t){return vt(e).then(o=>WebAssembly.instantiate(o,r)).then(t,o=>{x(`failed to asynchronously prepare wasm: ${o}`),nr(ce)&&x(`warning: Loading from a file URI (${ce}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`),$(o)})}function gt(e,r,t,o){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!wr(r)&&!D&&typeof fetch=="function"?fetch(r,{credentials:"same-origin"}).then(a=>{var i=WebAssembly.instantiateStreaming(a,t);return i.then(o,function(c){return x(`wasm streaming compile failed: ${c}`),x("falling back to ArrayBuffer instantiation"),Sr(r,t,o)})}):Sr(r,t,o)}function Et(){return{env:Ur,wasi_snapshot_preview1:Ur}}function yt(){var e=Et();function r(a,i){return V=a.exports,s.wasmExports=V,ie=V.memory,s.wasmMemory=ie,h(ie,"memory not found in wasm exports"),st(),mt(V.__wasm_call_ctors),Be("wasm-instantiate"),V}tr("wasm-instantiate");var t=s;function o(a){h(s===t,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),t=null,r(a.instance)}if(s.instantiateWasm)try{return s.instantiateWasm(e,r)}catch(a){x(`Module.instantiateWasm callback failed with error: ${a}`),w(a)}return gt(we,ce,e,o).catch(w),{}}function de(e,r,t=!0){Object.getOwnPropertyDescriptor(s,e)||Object.defineProperty(s,e,{configurable:!0,get(){let o=t?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":"";$(`\`Module.${e}\` has been replaced by \`${r}\``+o)}})}function wt(e){Object.getOwnPropertyDescriptor(s,e)&&$(`\`Module.${e}\` was supplied but \`${e}\` not included in INCOMING_MODULE_JS_API`)}function br(e){return e==="FS_createPath"||e==="FS_createDataFile"||e==="FS_createPreloadedFile"||e==="FS_unlink"||e==="addRunDependency"||e==="FS_createLazyFile"||e==="FS_createDevice"||e==="removeRunDependency"}function kr(e,r){typeof globalThis<"u"&&Object.defineProperty(globalThis,e,{configurable:!0,get(){pe(`\`${e}\` is not longer defined by emscripten. ${r}`)}})}kr("buffer","Please use HEAP8.buffer or wasmMemory.buffer"),kr("asm","Please use wasmExports instead");function _t(e){typeof globalThis<"u"&&!Object.getOwnPropertyDescriptor(globalThis,e)&&Object.defineProperty(globalThis,e,{configurable:!0,get(){var r=`\`${e}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`,t=e;t.startsWith("_")||(t="$"+e),r+=` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${t}')`,br(e)&&(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),pe(r)}}),Tr(e)}function Tr(e){Object.getOwnPropertyDescriptor(s,e)||Object.defineProperty(s,e,{configurable:!0,get(){var r=`'${e}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;br(e)&&(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),$(r)}})}function St(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var or=e=>{for(;e.length>0;)e.shift()(s)},Ar=()=>V.__cpp_exception,Fr=e=>{var r=e.getArg(Ar(),0);return vn(r)},bt=e=>{var r=Fr(e);pn(r)},ar=()=>Gr(),ir=e=>Yr(e),Le=e=>qr(e),Nr=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,be=(e,r,t)=>{for(var o=r+t,a=r;e[a]&&!(a>=o);)++a;if(a-r>16&&e.buffer&&Nr)return Nr.decode(e.subarray(r,a));for(var i="";r>10,56320|T&1023)}}return i},ue=(e,r)=>(h(typeof e=="number",`UTF8ToString expects a number (got ${typeof e})`),e?be(G,e,r):""),kt=e=>{var r=ar(),t=Le(4),o=Le(4);gn(e,t,o);var a=U[t>>2],i=U[o>>2],c=ue(a);zr(a);var d;return i&&(d=ue(i),zr(i)),ir(r),[c,d]},sr=e=>{var r=Fr(e);return kt(r)};s.getExceptionMessage=sr;var Tt=s.noExitRuntime||!0,Ce=e=>(h(typeof e=="number"),e>>>=0,"0x"+e.toString(16).padStart(8,"0")),pe=e=>{pe.shown||={},pe.shown[e]||(pe.shown[e]=1,D&&(e="warning: "+e),x(e))},At=(e,r,t,o)=>{$(`Assertion failed: ${ue(e)}, at: `+[r?ue(r):"unknown filename",t,o?ue(o):"unknown function"])};function ze(){h(j.varargs!=null);var e=M[+j.varargs>>2];return j.varargs+=4,e}var Fe=ze,C={isAbs:e=>e.charAt(0)==="/",splitPath:e=>{var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return r.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,o=e.length-1;o>=0;o--){var a=e[o];a==="."?e.splice(o,1):a===".."?(e.splice(o,1),t++):t&&(e.splice(o,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=C.isAbs(e),t=e.substr(-1)==="/";return e=C.normalizeArray(e.split("/").filter(o=>!!o),!r).join("/"),!e&&!r&&(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=C.splitPath(e),t=r[0],o=r[1];return!t&&!o?".":(o&&(o=o.substr(0,o.length-1)),t+o)},basename:e=>{if(e==="/")return"/";e=C.normalize(e),e=e.replace(/\/$/,"");var r=e.lastIndexOf("/");return r===-1?e:e.substr(r+1)},join:(...e)=>C.normalize(e.join("/")),join2:(e,r)=>C.normalize(e+"/"+r)},Ft=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return o=>crypto.getRandomValues(o);if(D)try{var e=q("crypto"),r=e.randomFillSync;if(r)return o=>e.randomFillSync(o);var t=e.randomBytes;return o=>(o.set(t(o.byteLength)),o)}catch{}$("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")},Or=e=>(Or=Ft())(e),fe={resolve:(...e)=>{for(var r="",t=!1,o=e.length-1;o>=-1&&!t;o--){var a=o>=0?e[o]:n.cwd();if(typeof a!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!a)return"";r=a+"/"+r,t=C.isAbs(a)}return r=C.normalizeArray(r.split("/").filter(i=>!!i),!t).join("/"),(t?"/":"")+r||"."},relative:(e,r)=>{e=fe.resolve(e).substr(1),r=fe.resolve(r).substr(1);function t(T){for(var A=0;A=0&&T[N]==="";N--);return A>N?[]:T.slice(A,N-A+1)}for(var o=t(e.split("/")),a=t(r.split("/")),i=Math.min(o.length,a.length),c=i,d=0;d{for(var r=0,t=0;t=55296&&o<=57343?(r+=4,++t):r+=3}return r},$e=(e,r,t,o)=>{if(h(typeof e=="string",`stringToUTF8Array expects a string (got ${typeof e})`),!(o>0))return 0;for(var a=t,i=t+o-1,c=0;c=55296&&d<=57343){var p=e.charCodeAt(++c);d=65536+((d&1023)<<10)|p&1023}if(d<=127){if(t>=i)break;r[t++]=d}else if(d<=2047){if(t+1>=i)break;r[t++]=192|d>>6,r[t++]=128|d&63}else if(d<=65535){if(t+2>=i)break;r[t++]=224|d>>12,r[t++]=128|d>>6&63,r[t++]=128|d&63}else{if(t+3>=i)break;d>1114111&&pe("Invalid Unicode code point "+Ce(d)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),r[t++]=240|d>>18,r[t++]=128|d>>12&63,r[t++]=128|d>>6&63,r[t++]=128|d&63}}return r[t]=0,t-a};function He(e,r,t){var o=cr(e)+1,a=new Array(o),i=$e(e,a,0,a.length);return r&&(a.length=i),a}var Nt=()=>{if(!lr.length){var e=null;if(D){var r=256,t=Buffer.alloc(r),o=0,a=process.stdin.fd;try{o=Me.readSync(a,t)}catch(i){if(i.toString().includes("EOF"))o=0;else throw i}o>0?e=t.slice(0,o).toString("utf-8"):e=null}else typeof window<"u"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=` -`)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=` -`));if(!e)return null;lr=He(e,!0)}return lr.shift()},ve={ttys:[],init(){},shutdown(){},register(e,r){ve.ttys[e]={input:[],output:[],ops:r},n.registerDevice(e,ve.stream_ops)},stream_ops:{open(e){var r=ve.ttys[e.node.rdev];if(!r)throw new n.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,o,a){if(!e.tty||!e.tty.ops.get_char)throw new n.ErrnoError(60);for(var i=0,c=0;c0&&(he(be(e.output,0)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){r===null||r===10?(x(be(e.output,0)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(x(be(e.output,0)),e.output=[])}}},Mr=e=>{$("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")},k={ops_table:null,mount(e){return k.createNode(null,"/",16895,0)},createNode(e,r,t,o){if(n.isBlkdev(t)||n.isFIFO(t))throw new n.ErrnoError(63);k.ops_table||={dir:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr,lookup:k.node_ops.lookup,mknod:k.node_ops.mknod,rename:k.node_ops.rename,unlink:k.node_ops.unlink,rmdir:k.node_ops.rmdir,readdir:k.node_ops.readdir,symlink:k.node_ops.symlink},stream:{llseek:k.stream_ops.llseek}},file:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr},stream:{llseek:k.stream_ops.llseek,read:k.stream_ops.read,write:k.stream_ops.write,allocate:k.stream_ops.allocate,mmap:k.stream_ops.mmap,msync:k.stream_ops.msync}},link:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr,readlink:k.node_ops.readlink},stream:{}},chrdev:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr},stream:n.chrdev_stream_ops}};var a=n.createNode(e,r,t,o);return n.isDir(a.mode)?(a.node_ops=k.ops_table.dir.node,a.stream_ops=k.ops_table.dir.stream,a.contents={}):n.isFile(a.mode)?(a.node_ops=k.ops_table.file.node,a.stream_ops=k.ops_table.file.stream,a.usedBytes=0,a.contents=null):n.isLink(a.mode)?(a.node_ops=k.ops_table.link.node,a.stream_ops=k.ops_table.link.stream):n.isChrdev(a.mode)&&(a.node_ops=k.ops_table.chrdev.node,a.stream_ops=k.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[r]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var o=1024*1024;r=Math.max(r,t*(t>>0),t!=0&&(r=Math.max(r,256));var a=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(r==0)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=n.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,n.isDir(e.mode)?r.size=4096:n.isFile(e.mode)?r.size=e.usedBytes:n.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){r.mode!==void 0&&(e.mode=r.mode),r.timestamp!==void 0&&(e.timestamp=r.timestamp),r.size!==void 0&&k.resizeFileStorage(e,r.size)},lookup(e,r){throw n.genericErrors[44]},mknod(e,r,t,o){return k.createNode(e,r,t,o)},rename(e,r,t){if(n.isDir(e.mode)){var o;try{o=n.lookupNode(r,t)}catch{}if(o)for(var a in o.contents)throw new n.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir(e,r){var t=n.lookupNode(e,r);for(var o in t.contents)throw new n.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir(e){var r=[".",".."];for(var t of Object.keys(e.contents))r.push(t);return r},symlink(e,r,t){var o=k.createNode(e,r,41471,0);return o.link=t,o},readlink(e){if(!n.isLink(e.mode))throw new n.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,o,a){var i=e.node.contents;if(a>=e.node.usedBytes)return 0;var c=Math.min(e.node.usedBytes-a,o);if(h(c>=0),c>8&&i.subarray)r.set(i.subarray(a,a+c),t);else for(var d=0;d0||t+r{var a=yr(`al ${e}`);Ee(e,i=>{h(i,`Loading data file "${e}" failed (no arrayBuffer).`),r(new Uint8Array(i)),a&&Be(a)},i=>{if(t)t();else throw`Loading data file "${e}" failed.`}),a&&tr(a)},Mt=(e,r,t,o,a,i)=>{n.createDataFile(e,r,t,o,a,i)},It=s.preloadPlugins||[],Dt=(e,r,t,o)=>{typeof Browser<"u"&&Browser.init();var a=!1;return It.forEach(i=>{a||i.canHandle(r)&&(i.handle(e,r,t,o),a=!0)}),a},Lt=(e,r,t,o,a,i,c,d,p,T)=>{var A=r?fe.resolve(C.join2(e,r)):e,N=yr(`cp ${A}`);function S(y){function _(B){T?.(),d||Mt(e,r,B,o,a,p),i?.(),Be(N)}Dt(y,A,_,()=>{c?.(),Be(N)})||_(y)}tr(N),typeof t=="string"?Ot(t,S,c):S(t)},Ct=e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},t=r[e];if(typeof t>"u")throw new Error(`Unknown file open mode: ${e}`);return t},dr=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},Pt={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},Ir={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},n={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class extends Error{constructor(e){super(Pt[e]),this.name="ErrnoError",this.errno=e;for(var r in Ir)if(Ir[r]===e){this.code=r;break}}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{constructor(e,r,t,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=n.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=o,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return n.isDir(this.mode)}get isDevice(){return n.isChrdev(this.mode)}},lookupPath(e,r={}){if(e=fe.resolve(e),!e)return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};if(r=Object.assign(t,r),r.recurse_count>8)throw new n.ErrnoError(32);for(var o=e.split("/").filter(N=>!!N),a=n.root,i="/",c=0;c40)throw new n.ErrnoError(32)}}return{path:i,node:a}},getPath(e){for(var r;;){if(n.isRoot(e)){var t=e.mount.mountpoint;return r?t[t.length-1]!=="/"?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,o=0;o>>0)%n.nameTable.length},hashAddNode(e){var r=n.hashName(e.parent.id,e.name);e.name_next=n.nameTable[r],n.nameTable[r]=e},hashRemoveNode(e){var r=n.hashName(e.parent.id,e.name);if(n.nameTable[r]===e)n.nameTable[r]=e.name_next;else for(var t=n.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=n.mayLookup(e);if(t)throw new n.ErrnoError(t);for(var o=n.hashName(e.id,r),a=n.nameTable[o];a;a=a.name_next){var i=a.name;if(a.parent.id===e.id&&i===r)return a}return n.lookup(e,r)},createNode(e,r,t,o){h(typeof e=="object");var a=new n.FSNode(e,r,t,o);return n.hashAddNode(a),a},destroyNode(e){n.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var r=["r","w","rw"][e&3];return e&512&&(r+="w"),r},nodePermissions(e,r){return n.ignorePermissions?0:r.includes("r")&&!(e.mode&292)||r.includes("w")&&!(e.mode&146)||r.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){if(!n.isDir(e.mode))return 54;var r=n.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){try{var t=n.lookupNode(e,r);return 20}catch{}return n.nodePermissions(e,"wx")},mayDelete(e,r,t){var o;try{o=n.lookupNode(e,r)}catch(i){return i.errno}var a=n.nodePermissions(e,"wx");if(a)return a;if(t){if(!n.isDir(o.mode))return 54;if(n.isRoot(o)||n.getPath(o)===n.cwd())return 10}else if(n.isDir(o.mode))return 31;return 0},mayOpen(e,r){return e?n.isLink(e.mode)?32:n.isDir(e.mode)&&(n.flagsToPermissionString(r)!=="r"||r&512)?31:n.nodePermissions(e,n.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=n.MAX_OPEN_FDS;e++)if(!n.streams[e])return e;throw new n.ErrnoError(33)},getStreamChecked(e){var r=n.getStream(e);if(!r)throw new n.ErrnoError(8);return r},getStream:e=>n.streams[e],createStream(e,r=-1){return e=Object.assign(new n.FSStream,e),r==-1&&(r=n.nextfd()),e.fd=r,n.streams[r]=e,e},closeStream(e){n.streams[e]=null},dupStream(e,r=-1){var t=n.createStream(e,r);return t.stream_ops?.dup?.(t),t},chrdev_stream_ops:{open(e){var r=n.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new n.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,r)=>e<<8|r,registerDevice(e,r){n.devices[e]={stream_ops:r}},getDevice:e=>n.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var o=t.pop();r.push(o),t.push(...o.mounts)}return r},syncfs(e,r){typeof e=="function"&&(r=e,e=!1),n.syncFSRequests++,n.syncFSRequests>1&&x(`warning: ${n.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=n.getMounts(n.root.mount),o=0;function a(c){return h(n.syncFSRequests>0),n.syncFSRequests--,r(c)}function i(c){if(c)return i.errored?void 0:(i.errored=!0,a(c));++o>=t.length&&a(null)}t.forEach(c=>{if(!c.type.syncfs)return i(null);c.type.syncfs(c,e,i)})},mount(e,r,t){if(typeof e=="string")throw e;var o=t==="/",a=!t,i;if(o&&n.root)throw new n.ErrnoError(10);if(!o&&!a){var c=n.lookupPath(t,{follow_mount:!1});if(t=c.path,i=c.node,n.isMountpoint(i))throw new n.ErrnoError(10);if(!n.isDir(i.mode))throw new n.ErrnoError(54)}var d={type:e,opts:r,mountpoint:t,mounts:[]},p=e.mount(d);return p.mount=d,d.root=p,o?n.root=p:i&&(i.mounted=d,i.mount&&i.mount.mounts.push(d)),p},unmount(e){var r=n.lookupPath(e,{follow_mount:!1});if(!n.isMountpoint(r.node))throw new n.ErrnoError(28);var t=r.node,o=t.mounted,a=n.getMounts(o);Object.keys(n.nameTable).forEach(c=>{for(var d=n.nameTable[c];d;){var p=d.name_next;a.includes(d.mount)&&n.destroyNode(d),d=p}}),t.mounted=null;var i=t.mount.mounts.indexOf(o);h(i!==-1),t.mount.mounts.splice(i,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var o=n.lookupPath(e,{parent:!0}),a=o.node,i=C.basename(e);if(!i||i==="."||i==="..")throw new n.ErrnoError(28);var c=n.mayCreate(a,i);if(c)throw new n.ErrnoError(c);if(!a.node_ops.mknod)throw new n.ErrnoError(63);return a.node_ops.mknod(a,i,r,t)},create(e,r){return r=r!==void 0?r:438,r&=4095,r|=32768,n.mknod(e,r,0)},mkdir(e,r){return r=r!==void 0?r:511,r&=1023,r|=16384,n.mknod(e,r,0)},mkdirTree(e,r){for(var t=e.split("/"),o="",a=0;a"u"&&(t=r,r=438),r|=8192,n.mknod(e,r,t)},symlink(e,r){if(!fe.resolve(e))throw new n.ErrnoError(44);var t=n.lookupPath(r,{parent:!0}),o=t.node;if(!o)throw new n.ErrnoError(44);var a=C.basename(r),i=n.mayCreate(o,a);if(i)throw new n.ErrnoError(i);if(!o.node_ops.symlink)throw new n.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,r){var t=C.dirname(e),o=C.dirname(r),a=C.basename(e),i=C.basename(r),c,d,p;if(c=n.lookupPath(e,{parent:!0}),d=c.node,c=n.lookupPath(r,{parent:!0}),p=c.node,!d||!p)throw new n.ErrnoError(44);if(d.mount!==p.mount)throw new n.ErrnoError(75);var T=n.lookupNode(d,a),A=fe.relative(e,o);if(A.charAt(0)!==".")throw new n.ErrnoError(28);if(A=fe.relative(r,t),A.charAt(0)!==".")throw new n.ErrnoError(55);var N;try{N=n.lookupNode(p,i)}catch{}if(T!==N){var S=n.isDir(T.mode),y=n.mayDelete(d,a,S);if(y)throw new n.ErrnoError(y);if(y=N?n.mayDelete(p,i,S):n.mayCreate(p,i),y)throw new n.ErrnoError(y);if(!d.node_ops.rename)throw new n.ErrnoError(63);if(n.isMountpoint(T)||N&&n.isMountpoint(N))throw new n.ErrnoError(10);if(p!==d&&(y=n.nodePermissions(d,"w"),y))throw new n.ErrnoError(y);n.hashRemoveNode(T);try{d.node_ops.rename(T,p,i)}catch(_){throw _}finally{n.hashAddNode(T)}}},rmdir(e){var r=n.lookupPath(e,{parent:!0}),t=r.node,o=C.basename(e),a=n.lookupNode(t,o),i=n.mayDelete(t,o,!0);if(i)throw new n.ErrnoError(i);if(!t.node_ops.rmdir)throw new n.ErrnoError(63);if(n.isMountpoint(a))throw new n.ErrnoError(10);t.node_ops.rmdir(t,o),n.destroyNode(a)},readdir(e){var r=n.lookupPath(e,{follow:!0}),t=r.node;if(!t.node_ops.readdir)throw new n.ErrnoError(54);return t.node_ops.readdir(t)},unlink(e){var r=n.lookupPath(e,{parent:!0}),t=r.node;if(!t)throw new n.ErrnoError(44);var o=C.basename(e),a=n.lookupNode(t,o),i=n.mayDelete(t,o,!1);if(i)throw new n.ErrnoError(i);if(!t.node_ops.unlink)throw new n.ErrnoError(63);if(n.isMountpoint(a))throw new n.ErrnoError(10);t.node_ops.unlink(t,o),n.destroyNode(a)},readlink(e){var r=n.lookupPath(e),t=r.node;if(!t)throw new n.ErrnoError(44);if(!t.node_ops.readlink)throw new n.ErrnoError(28);return fe.resolve(n.getPath(t.parent),t.node_ops.readlink(t))},stat(e,r){var t=n.lookupPath(e,{follow:!r}),o=t.node;if(!o)throw new n.ErrnoError(44);if(!o.node_ops.getattr)throw new n.ErrnoError(63);return o.node_ops.getattr(o)},lstat(e){return n.stat(e,!0)},chmod(e,r,t){var o;if(typeof e=="string"){var a=n.lookupPath(e,{follow:!t});o=a.node}else o=e;if(!o.node_ops.setattr)throw new n.ErrnoError(63);o.node_ops.setattr(o,{mode:r&4095|o.mode&-4096,timestamp:Date.now()})},lchmod(e,r){n.chmod(e,r,!0)},fchmod(e,r){var t=n.getStreamChecked(e);n.chmod(t.node,r)},chown(e,r,t,o){var a;if(typeof e=="string"){var i=n.lookupPath(e,{follow:!o});a=i.node}else a=e;if(!a.node_ops.setattr)throw new n.ErrnoError(63);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown(e,r,t){n.chown(e,r,t,!0)},fchown(e,r,t){var o=n.getStreamChecked(e);n.chown(o.node,r,t)},truncate(e,r){if(r<0)throw new n.ErrnoError(28);var t;if(typeof e=="string"){var o=n.lookupPath(e,{follow:!0});t=o.node}else t=e;if(!t.node_ops.setattr)throw new n.ErrnoError(63);if(n.isDir(t.mode))throw new n.ErrnoError(31);if(!n.isFile(t.mode))throw new n.ErrnoError(28);var a=n.nodePermissions(t,"w");if(a)throw new n.ErrnoError(a);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate(e,r){var t=n.getStreamChecked(e);if(!(t.flags&2097155))throw new n.ErrnoError(28);n.truncate(t.node,r)},utime(e,r,t){var o=n.lookupPath(e,{follow:!0}),a=o.node;a.node_ops.setattr(a,{timestamp:Math.max(r,t)})},open(e,r,t){if(e==="")throw new n.ErrnoError(44);r=typeof r=="string"?Ct(r):r,t=typeof t>"u"?438:t,r&64?t=t&4095|32768:t=0;var o;if(typeof e=="object")o=e;else{e=C.normalize(e);try{var a=n.lookupPath(e,{follow:!(r&131072)});o=a.node}catch{}}var i=!1;if(r&64)if(o){if(r&128)throw new n.ErrnoError(20)}else o=n.mknod(e,t,0),i=!0;if(!o)throw new n.ErrnoError(44);if(n.isChrdev(o.mode)&&(r&=-513),r&65536&&!n.isDir(o.mode))throw new n.ErrnoError(54);if(!i){var c=n.mayOpen(o,r);if(c)throw new n.ErrnoError(c)}r&512&&!i&&n.truncate(o,0),r&=-131713;var d=n.createStream({node:o,path:n.getPath(o),flags:r,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return d.stream_ops.open&&d.stream_ops.open(d),s.logReadFiles&&!(r&1)&&(n.readFiles||(n.readFiles={}),e in n.readFiles||(n.readFiles[e]=1)),d},close(e){if(n.isClosed(e))throw new n.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{n.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,r,t){if(n.isClosed(e))throw new n.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new n.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new n.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,o,a){if(h(t>=0),o<0||a<0)throw new n.ErrnoError(28);if(n.isClosed(e))throw new n.ErrnoError(8);if((e.flags&2097155)===1)throw new n.ErrnoError(8);if(n.isDir(e.node.mode))throw new n.ErrnoError(31);if(!e.stream_ops.read)throw new n.ErrnoError(28);var i=typeof a<"u";if(!i)a=e.position;else if(!e.seekable)throw new n.ErrnoError(70);var c=e.stream_ops.read(e,r,t,o,a);return i||(e.position+=c),c},write(e,r,t,o,a,i){if(h(t>=0),o<0||a<0)throw new n.ErrnoError(28);if(n.isClosed(e))throw new n.ErrnoError(8);if(!(e.flags&2097155))throw new n.ErrnoError(8);if(n.isDir(e.node.mode))throw new n.ErrnoError(31);if(!e.stream_ops.write)throw new n.ErrnoError(28);e.seekable&&e.flags&1024&&n.llseek(e,0,2);var c=typeof a<"u";if(!c)a=e.position;else if(!e.seekable)throw new n.ErrnoError(70);var d=e.stream_ops.write(e,r,t,o,a,i);return c||(e.position+=d),d},allocate(e,r,t){if(n.isClosed(e))throw new n.ErrnoError(8);if(r<0||t<=0)throw new n.ErrnoError(28);if(!(e.flags&2097155))throw new n.ErrnoError(8);if(!n.isFile(e.node.mode)&&!n.isDir(e.node.mode))throw new n.ErrnoError(43);if(!e.stream_ops.allocate)throw new n.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap(e,r,t,o,a){if(o&2&&!(a&2)&&(e.flags&2097155)!==2)throw new n.ErrnoError(2);if((e.flags&2097155)===1)throw new n.ErrnoError(2);if(!e.stream_ops.mmap)throw new n.ErrnoError(43);return e.stream_ops.mmap(e,r,t,o,a)},msync(e,r,t,o,a){return h(t>=0),e.stream_ops.msync?e.stream_ops.msync(e,r,t,o,a):0},ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new n.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary",r.encoding!=="utf8"&&r.encoding!=="binary")throw new Error(`Invalid encoding type "${r.encoding}"`);var t,o=n.open(e,r.flags),a=n.stat(e),i=a.size,c=new Uint8Array(i);return n.read(o,c,0,i,0),r.encoding==="utf8"?t=be(c,0):r.encoding==="binary"&&(t=c),n.close(o),t},writeFile(e,r,t={}){t.flags=t.flags||577;var o=n.open(e,t.flags,t.mode);if(typeof r=="string"){var a=new Uint8Array(cr(r)+1),i=$e(r,a,0,a.length);n.write(o,a,0,i,void 0,t.canOwn)}else if(ArrayBuffer.isView(r))n.write(o,r,0,r.byteLength,void 0,t.canOwn);else throw new Error("Unsupported data type");n.close(o)},cwd:()=>n.currentPath,chdir(e){var r=n.lookupPath(e,{follow:!0});if(r.node===null)throw new n.ErrnoError(44);if(!n.isDir(r.node.mode))throw new n.ErrnoError(54);var t=n.nodePermissions(r.node,"x");if(t)throw new n.ErrnoError(t);n.currentPath=r.path},createDefaultDirectories(){n.mkdir("/tmp"),n.mkdir("/home"),n.mkdir("/home/web_user")},createDefaultDevices(){n.mkdir("/dev"),n.registerDevice(n.makedev(1,3),{read:()=>0,write:(o,a,i,c,d)=>c}),n.mkdev("/dev/null",n.makedev(1,3)),ve.register(n.makedev(5,0),ve.default_tty_ops),ve.register(n.makedev(6,0),ve.default_tty1_ops),n.mkdev("/dev/tty",n.makedev(5,0)),n.mkdev("/dev/tty1",n.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(r===0&&(r=Or(e).byteLength),e[--r]);n.createDevice("/dev","random",t),n.createDevice("/dev","urandom",t),n.mkdir("/dev/shm"),n.mkdir("/dev/shm/tmp")},createSpecialDirectories(){n.mkdir("/proc");var e=n.mkdir("/proc/self");n.mkdir("/proc/self/fd"),n.mount({mount(){var r=n.createNode(e,"fd",16895,73);return r.node_ops={lookup(t,o){var a=+o,i=n.getStreamChecked(a),c={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return c.parent=c,c}},r}},{},"/proc/self/fd")},createStandardStreams(){s.stdin?n.createDevice("/dev","stdin",s.stdin):n.symlink("/dev/tty","/dev/stdin"),s.stdout?n.createDevice("/dev","stdout",null,s.stdout):n.symlink("/dev/tty","/dev/stdout"),s.stderr?n.createDevice("/dev","stderr",null,s.stderr):n.symlink("/dev/tty1","/dev/stderr");var e=n.open("/dev/stdin",0),r=n.open("/dev/stdout",1),t=n.open("/dev/stderr",1);h(e.fd===0,`invalid handle for stdin (${e.fd})`),h(r.fd===1,`invalid handle for stdout (${r.fd})`),h(t.fd===2,`invalid handle for stderr (${t.fd})`)},staticInit(){[44].forEach(e=>{n.genericErrors[e]=new n.ErrnoError(e),n.genericErrors[e].stack=""}),n.nameTable=new Array(4096),n.mount(k,{},"/"),n.createDefaultDirectories(),n.createDefaultDevices(),n.createSpecialDirectories(),n.filesystems={MEMFS:k}},init(e,r,t){h(!n.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),n.init.initialized=!0,s.stdin=e||s.stdin,s.stdout=r||s.stdout,s.stderr=t||s.stderr,n.createStandardStreams()},quit(){n.init.initialized=!1,Br(0);for(var e=0;ethis.length-1||y<0)){var _=y%this.chunkSize,B=y/this.chunkSize|0;return this.getter(B)[_]}}setDataGetter(y){this.getter=y}cacheLength(){var y=new XMLHttpRequest;if(y.open("HEAD",t,!1),y.send(null),!(y.status>=200&&y.status<300||y.status===304))throw new Error("Couldn't load "+t+". Status: "+y.status);var _=Number(y.getResponseHeader("Content-length")),B,X=(B=y.getResponseHeader("Accept-Ranges"))&&B==="bytes",W=(B=y.getResponseHeader("Content-Encoding"))&&B==="gzip",m=1024*1024;X||(m=_);var E=(P,Q)=>{if(P>Q)throw new Error("invalid range ("+P+", "+Q+") or no bytes requested!");if(Q>_-1)throw new Error("only "+_+" bytes available! programmer error!");var H=new XMLHttpRequest;if(H.open("GET",t,!1),_!==m&&H.setRequestHeader("Range","bytes="+P+"-"+Q),H.responseType="arraybuffer",H.overrideMimeType&&H.overrideMimeType("text/plain; charset=x-user-defined"),H.send(null),!(H.status>=200&&H.status<300||H.status===304))throw new Error("Couldn't load "+t+". Status: "+H.status);return H.response!==void 0?new Uint8Array(H.response||[]):He(H.responseText||"",!0)},Y=this;Y.setDataGetter(P=>{var Q=P*m,H=(P+1)*m-1;if(H=Math.min(H,_-1),typeof Y.chunks[P]>"u"&&(Y.chunks[P]=E(Q,H)),typeof Y.chunks[P]>"u")throw new Error("doXHR failed!");return Y.chunks[P]}),(W||!_)&&(m=_=1,_=this.getter(0).length,m=_,he("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=_,this._chunkSize=m,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!I)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var c=new i,d={isDevice:!1,contents:c}}else var d={isDevice:!1,url:t};var p=n.createFile(e,r,d,o,a);d.contents?p.contents=d.contents:d.url&&(p.contents=null,p.url=d.url),Object.defineProperties(p,{usedBytes:{get:function(){return this.contents.length}}});var T={},A=Object.keys(p.stream_ops);A.forEach(S=>{var y=p.stream_ops[S];T[S]=(..._)=>(n.forceLoadFile(p),y(..._))});function N(S,y,_,B,X){var W=S.node.contents;if(X>=W.length)return 0;var m=Math.min(W.length-X,B);if(h(m>=0),W.slice)for(var E=0;E(n.forceLoadFile(p),N(S,y,_,B,X)),T.mmap=(S,y,_,B,X)=>{n.forceLoadFile(p);var W=Mr();if(!W)throw new n.ErrnoError(48);return N(S,F,W,y,_),{ptr:W,allocated:!0}},p.stream_ops=T,p},absolutePath(){$("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){$("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){$("FS.createLink has been removed; use FS.symlink instead")},joinPath(){$("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){$("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){$("FS.standardizePath has been removed; use PATH.normalize instead")}},j={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(C.isAbs(r))return r;var o;if(e===-100)o=n.cwd();else{var a=j.getStreamFromFD(e);o=a.path}if(r.length==0){if(!t)throw new n.ErrnoError(44);return o}return C.join2(o,r)},doStat(e,r,t){var o=e(r);M[t>>2]=o.dev,M[t+4>>2]=o.mode,U[t+8>>2]=o.nlink,M[t+12>>2]=o.uid,M[t+16>>2]=o.gid,M[t+20>>2]=o.rdev,le[t+24>>3]=BigInt(o.size),M[t+32>>2]=4096,M[t+36>>2]=o.blocks;var a=o.atime.getTime(),i=o.mtime.getTime(),c=o.ctime.getTime();return le[t+40>>3]=BigInt(Math.floor(a/1e3)),U[t+48>>2]=a%1e3*1e3,le[t+56>>3]=BigInt(Math.floor(i/1e3)),U[t+64>>2]=i%1e3*1e3,le[t+72>>3]=BigInt(Math.floor(c/1e3)),U[t+80>>2]=c%1e3*1e3,le[t+88>>3]=BigInt(o.ino),0},doMsync(e,r,t,o,a){if(!n.isFile(r.node.mode))throw new n.ErrnoError(43);if(o&2)return 0;var i=G.slice(e,e+t);n.msync(r,i,a,t,o)},getStreamFromFD(e){var r=n.getStreamChecked(e);return r},varargs:void 0,getStr(e){var r=ue(e);return r}};function Rt(e,r,t){j.varargs=t;try{var o=j.getStreamFromFD(e);switch(r){case 0:{var a=ze();if(a<0)return-28;for(;n.streams[a];)a++;var i;return i=n.dupStream(o,a),i.fd}case 1:case 2:return 0;case 3:return o.flags;case 4:{var a=ze();return o.flags|=a,0}case 12:{var a=Fe(),c=0;return se[a+c>>1]=2,0}case 13:case 14:return 0}return-28}catch(d){if(typeof n>"u"||d.name!=="ErrnoError")throw d;return-d.errno}}function xt(e,r,t){j.varargs=t;try{var o=j.getStreamFromFD(e);switch(r){case 21509:return o.tty?0:-59;case 21505:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tcgets){var a=o.tty.ops.ioctl_tcgets(o),i=Fe();M[i>>2]=a.c_iflag||0,M[i+4>>2]=a.c_oflag||0,M[i+8>>2]=a.c_cflag||0,M[i+12>>2]=a.c_lflag||0;for(var c=0;c<32;c++)F[i+c+17]=a.c_cc[c]||0;return 0}return 0}case 21510:case 21511:case 21512:return o.tty?0:-59;case 21506:case 21507:case 21508:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tcsets){for(var i=Fe(),d=M[i>>2],p=M[i+4>>2],T=M[i+8>>2],A=M[i+12>>2],N=[],c=0;c<32;c++)N.push(F[i+c+17]);return o.tty.ops.ioctl_tcsets(o.tty,r,{c_iflag:d,c_oflag:p,c_cflag:T,c_lflag:A,c_cc:N})}return 0}case 21519:{if(!o.tty)return-59;var i=Fe();return M[i>>2]=0,0}case 21520:return o.tty?-28:-59;case 21531:{var i=Fe();return n.ioctl(o,r,i)}case 21523:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tiocgwinsz){var S=o.tty.ops.ioctl_tiocgwinsz(o.tty),i=Fe();se[i>>1]=S[0],se[i+2>>1]=S[1]}return 0}case 21524:return o.tty?0:-59;case 21515:return o.tty?0:-59;default:return-28}}catch(y){if(typeof n>"u"||y.name!=="ErrnoError")throw y;return-y.errno}}function Ut(e,r,t,o){j.varargs=o;try{r=j.getStr(r),r=j.calculateAt(e,r);var a=o?ze():0;return n.open(r,t,a).fd}catch(i){if(typeof n>"u"||i.name!=="ErrnoError")throw i;return-i.errno}}var Bt=e=>{var r=new WebAssembly.Exception(Ar(),[e],{traceStack:!0});throw r.message=sr(r),r},zt=()=>{$("native code called abort()")},$t=e=>{$(`Cannot enlarge memory arrays to size ${e} bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value ${F.length}, (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0`)},Ht=e=>{G.length,e>>>=0,$t(e)},ur={},Yt=()=>ge||"./this.program",Pe=()=>{if(!Pe.strings){var e=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:e,_:Yt()};for(var t in ur)ur[t]===void 0?delete r[t]:r[t]=ur[t];var o=[];for(var t in r)o.push(`${t}=${r[t]}`);Pe.strings=o}return Pe.strings},qt=(e,r)=>{for(var t=0;t{var t=0;return Pe().forEach((o,a)=>{var i=r+t;U[e+a*4>>2]=i,qt(o,i),t+=o.length+1}),0},jt=(e,r)=>{var t=Pe();U[e>>2]=t.length;var o=0;return t.forEach(a=>o+=a.length+1),U[r>>2]=o,0},Dr=0,Lr=()=>Tt||Dr>0,Wt=e=>{Lr()||(s.onExit?.(e),te=!0),oe(e,new St(e))},Zt=(e,r)=>{if(_n(),Lr()&&!r){var t=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=${Dr}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;w(t),x(t)}Wt(e)},Vt=Zt;function Xt(e){try{var r=j.getStreamFromFD(e);return n.close(r),0}catch(t){if(typeof n>"u"||t.name!=="ErrnoError")throw t;return t.errno}}function Kt(e,r){try{var t=0,o=0,a=0,i=j.getStreamFromFD(e),c=i.tty?2:n.isDir(i.mode)?3:n.isLink(i.mode)?7:4;return F[r]=c,se[r+2>>1]=a,le[r+8>>3]=BigInt(t),le[r+16>>3]=BigInt(o),0}catch(d){if(typeof n>"u"||d.name!=="ErrnoError")throw d;return d.errno}}var Jt=(e,r,t,o)=>{for(var a=0,i=0;i>2],d=U[r+4>>2];r+=8;var p=n.read(e,F,c,d,o);if(p<0)return-1;if(a+=p,p>2]=i,0}catch(c){if(typeof n>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var en=9007199254740992,rn=-9007199254740992,tn=e=>een?NaN:Number(e);function nn(e,r,t,o){r=tn(r);try{if(isNaN(r))return 61;var a=j.getStreamFromFD(e);return n.llseek(a,r,t),le[o>>3]=BigInt(a.position),a.getdents&&r===0&&t===0&&(a.getdents=null),0}catch(i){if(typeof n>"u"||i.name!=="ErrnoError")throw i;return i.errno}}var on=(e,r,t,o)=>{for(var a=0,i=0;i>2],d=U[r+4>>2];r+=8;var p=n.write(e,F,c,d,o);if(p<0)return-1;a+=p}return a};function an(e,r,t,o){try{var a=j.getStreamFromFD(e),i=on(a,r,t);return U[o>>2]=i,0}catch(c){if(typeof n>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var Ye=e=>e%4===0&&(e%100!==0||e%400===0),sn=(e,r)=>{for(var t=0,o=0;o<=r;t+=e[o++]);return t},Cr=[31,29,31,30,31,30,31,31,30,31,30,31],Pr=[31,28,31,30,31,30,31,31,30,31,30,31],ln=(e,r)=>{for(var t=new Date(e.getTime());r>0;){var o=Ye(t.getFullYear()),a=t.getMonth(),i=(o?Cr:Pr)[a];if(r>i-t.getDate())r-=i-t.getDate()+1,t.setDate(1),a<11?t.setMonth(a+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1));else return t.setDate(t.getDate()+r),t}return t},fr=(e,r)=>{h(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),F.set(e,r)},cn=(e,r,t,o)=>{var a=U[o+40>>2],i={tm_sec:M[o>>2],tm_min:M[o+4>>2],tm_hour:M[o+8>>2],tm_mday:M[o+12>>2],tm_mon:M[o+16>>2],tm_year:M[o+20>>2],tm_wday:M[o+24>>2],tm_yday:M[o+28>>2],tm_isdst:M[o+32>>2],tm_gmtoff:M[o+36>>2],tm_zone:a?ue(a):""},c=ue(t),d={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var p in d)c=c.replace(new RegExp(p,"g"),d[p]);var T=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],A=["January","February","March","April","May","June","July","August","September","October","November","December"];function N(m,E,Y){for(var P=typeof m=="number"?m.toString():m||"";P.length0?1:0}var P;return(P=Y(m.getFullYear()-E.getFullYear()))===0&&(P=Y(m.getMonth()-E.getMonth()))===0&&(P=Y(m.getDate()-E.getDate())),P}function _(m){switch(m.getDay()){case 0:return new Date(m.getFullYear()-1,11,29);case 1:return m;case 2:return new Date(m.getFullYear(),0,3);case 3:return new Date(m.getFullYear(),0,2);case 4:return new Date(m.getFullYear(),0,1);case 5:return new Date(m.getFullYear()-1,11,31);case 6:return new Date(m.getFullYear()-1,11,30)}}function B(m){var E=ln(new Date(m.tm_year+1900,0,1),m.tm_yday),Y=new Date(E.getFullYear(),0,4),P=new Date(E.getFullYear()+1,0,4),Q=_(Y),H=_(P);return y(Q,E)<=0?y(H,E)<=0?E.getFullYear()+1:E.getFullYear():E.getFullYear()-1}var X={"%a":m=>T[m.tm_wday].substring(0,3),"%A":m=>T[m.tm_wday],"%b":m=>A[m.tm_mon].substring(0,3),"%B":m=>A[m.tm_mon],"%C":m=>{var E=m.tm_year+1900;return S(E/100|0,2)},"%d":m=>S(m.tm_mday,2),"%e":m=>N(m.tm_mday,2," "),"%g":m=>B(m).toString().substring(2),"%G":B,"%H":m=>S(m.tm_hour,2),"%I":m=>{var E=m.tm_hour;return E==0?E=12:E>12&&(E-=12),S(E,2)},"%j":m=>S(m.tm_mday+sn(Ye(m.tm_year+1900)?Cr:Pr,m.tm_mon-1),3),"%m":m=>S(m.tm_mon+1,2),"%M":m=>S(m.tm_min,2),"%n":()=>` -`,"%p":m=>m.tm_hour>=0&&m.tm_hour<12?"AM":"PM","%S":m=>S(m.tm_sec,2),"%t":()=>" ","%u":m=>m.tm_wday||7,"%U":m=>{var E=m.tm_yday+7-m.tm_wday;return S(Math.floor(E/7),2)},"%V":m=>{var E=Math.floor((m.tm_yday+7-(m.tm_wday+6)%7)/7);if((m.tm_wday+371-m.tm_yday-2)%7<=2&&E++,E){if(E==53){var P=(m.tm_wday+371-m.tm_yday)%7;P!=4&&(P!=3||!Ye(m.tm_year))&&(E=1)}}else{E=52;var Y=(m.tm_wday+7-m.tm_yday-1)%7;(Y==4||Y==5&&Ye(m.tm_year%400-1))&&E++}return S(E,2)},"%w":m=>m.tm_wday,"%W":m=>{var E=m.tm_yday+7-(m.tm_wday+6)%7;return S(Math.floor(E/7),2)},"%y":m=>(m.tm_year+1900).toString().substring(2),"%Y":m=>m.tm_year+1900,"%z":m=>{var E=m.tm_gmtoff,Y=E>=0;return E=Math.abs(E)/60,E=E/60*100+E%60,(Y?"+":"-")+("0000"+E).slice(-4)},"%Z":m=>m.tm_zone,"%%":()=>"%"};c=c.replace(/%%/g,"\0\0");for(var p in X)c.includes(p)&&(c=c.replace(new RegExp(p,"g"),X[p](i)));c=c.replace(/\0\0/g,"%");var W=He(c,!1);return W.length>r?0:(fr(W,e),W.length-1)},dn=(e,r,t,o,a)=>cn(e,r,t,o),un=e=>{var r=s["_"+e];return h(r,"Cannot call unknown function "+e+", make sure it is exported"),r},fn=(e,r,t)=>(h(typeof t=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),$e(e,G,r,t)),Rr=e=>{var r=cr(e)+1,t=Le(r);return fn(e,t,r),t},xr=(e,r,t,o,a)=>{var i={string:_=>{var B=0;return _!=null&&_!==0&&(B=Rr(_)),B},array:_=>{var B=Le(_.length);return fr(_,B),B}};function c(_){return r==="string"?ue(_):r==="boolean"?!!_:_}var d=un(e),p=[],T=0;if(h(r!=="array",'Return type should not be "array".'),o)for(var A=0;A(...a)=>xr(e,r,t,a);n.createPreloadedFile=Lt,n.staticInit();function hn(){wt("fetchSettings")}var Ur={__assert_fail:At,__syscall_fcntl64:Rt,__syscall_ioctl:xt,__syscall_openat:Ut,__throw_exception_with_stack_trace:Bt,abort:zt,emscripten_resize_heap:Ht,environ_get:Gt,environ_sizes_get:jt,exit:Vt,fd_close:Xt,fd_fdstat_get:Kt,fd_read:Qt,fd_seek:nn,fd_write:an,strftime_l:dn},V=yt();s._assertion=L("assertion",0),s._Session__create__=L("Session__create__",2),s._Session__destroy__=L("Session__destroy__",1),s._Session__params_ref=L("Session__params_ref",1),s._Session__module_ref=L("Session__module_ref",1),s._Session__device_ref=L("Session__device_ref",1),s._Session_run=L("Session_run",1),s._Session_dumpBuffers=L("Session_dumpBuffers",1),s._Session_start=L("Session_start",2),s._Session_printContext=L("Session_printContext",1),s._Session_step=L("Session_step",3),s._Session_continue=L("Session_continue",2),s._Session_print=L("Session_print",3),s._Session_switch=L("Session_switch",3),s._validate_wasm=L("validate_wasm",1),s._test_entry=L("test_entry",3),s._test_entry_no_tcf=L("test_entry_no_tcf",1),s._run_wasm=L("run_wasm",2),s._debug_wasm=L("debug_wasm",2),s._Session_fetch_shrubbery=L("Session_fetch_shrubbery",2),s._exception=L("exception",0);var Br=L("fflush",1),zr=s._free=L("free",1);s._malloc=L("malloc",1);var $r=()=>($r=V.__trap)(),Hr=()=>(Hr=V.emscripten_stack_init)(),mr=()=>(mr=V.emscripten_stack_get_end)(),Yr=e=>(Yr=V._emscripten_stack_restore)(e),qr=e=>(qr=V._emscripten_stack_alloc)(e),Gr=()=>(Gr=V.emscripten_stack_get_current)(),pn=L("__cxa_decrement_exception_refcount",1),vn=L("__thrown_object_from_unwind_exception",1),gn=L("__get_exception_message",3);s.wasmMemory=ie,s.wasmExports=V,s.stackSave=ar,s.stackRestore=ir,s.stackAlloc=Le,s.ccall=xr,s.cwrap=mn,s.UTF8ArrayToString=be,s.stringToUTF8Array=$e,s.stringToUTF8OnStack=Rr,s.writeArrayToMemory=fr,s.decrementExceptionRefcount=bt,s.getExceptionMessage=sr;var En=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getTempRet0","setTempRet0","growMemory","ydayFromDate","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","emscriptenLog","readEmAsmArgs","jstoi_q","listenOnce","autoResumeAudioContext","getDynCaller","dynCall","handleException","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asmjsMangle","HandleAllocator","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","safeSetTimeout","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","Browser_asyncPrepareDataCounter","setMainLoop","getSocketFromFD","getSocketAddress","FS_unlink","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","setErrNo","demangle","stackTrace"];En.forEach(_t);var yn=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","addRunDependency","removeRunDependency","FS_createFolder","FS_createPath","FS_createLazyFile","FS_createLink","FS_createDevice","FS_readFile","out","err","callMain","abort","writeStackCookie","checkStackCookie","MAX_INT53","MIN_INT53","bigintToI53Checked","ptrToString","zeroMemory","exitJS","getHeapMax","abortOnCannotGrowMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","arraySum","addDays","ERRNO_CODES","ERRNO_MESSAGES","DNS","Protocols","Sockets","initRandomFill","randomFill","timers","warnOnce","readEmAsmArgsArray","jstoi_s","getExecutableName","keepRuntimeAlive","asyncLoad","alignMemory","mmapAlloc","wasmTable","noExitRuntime","getCFunc","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ToString","stringToUTF8","lengthBytesUTF8","intArrayFromString","stringToAscii","UTF16Decoder","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","getEnvStrings","doReadv","doWritev","promiseMap","getExceptionMessageCommon","getCppExceptionTag","getCppExceptionThrownObjectFromWebAssemblyException","incrementExceptionRefcount","Browser","getPreloadedImageData__data","wget","SYSCALLS","preloadPlugins","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","FS","FS_createDataFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack"];yn.forEach(Tr);var qe;De=function e(){qe||jr(),qe||(De=e)};function wn(){Hr(),lt()}function jr(){if(_e>0||(wn(),ct(),_e>0))return;function e(){qe||(qe=!0,s.calledRun=!0,!te&&(dt(),g(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),h(!s._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),ut()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),e()},1)):e(),rr()}function _n(){var e=he,r=x,t=!1;he=x=o=>{t=!0};try{Br(0),["stdout","stderr"].forEach(function(o){var a=n.analyzePath("/dev/"+o);if(a){var i=a.object,c=i.rdev,d=ve.ttys[c];d?.output?.length&&(t=!0)}})}catch{}he=e,x=r,t&&pe("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.")}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();jr(),f=b;for(const e of Object.keys(s))e in l||Object.defineProperty(l,e,{configurable:!0,get(){$(`Access to module property ('${e}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return f}})();const R=document.getElementById("talvos"),ee=R.querySelector("output.stdio")||{},K=R.querySelector("output.error")||{};var Yn={print:function(u){ee.value+=u+` -`},printErr:function(u){ee.value+=u+` -`}};window.addEventListener("error",u=>{K.value=""+u.message});window.addEventListener("unhandledrejection",function(u){K.value=""+u.reason});const Re=document.querySelector("#talvos svg"),[hr,qn]=(()=>{function*u(...v){const I=v.map(O=>O[Symbol.iterator]());let D=I.map(O=>O.next());for(;D.every(({done:O})=>!O);)yield D.map(({value:O})=>O),D=I.map(O=>O.next())}const l=()=>{Re.querySelectorAll(".lane").forEach(v=>{v.classList.remove("disabled","selected"),v.dataset.state="inactive",delete v.dataset.logCoords})};document.querySelector("#talvos button.stop").addEventListener("click",l),document.querySelector("#talvos button.continue").addEventListener("click",()=>setTimeout(l,0)),document.querySelector("#talvos button.run").addEventListener("click",l);function w(v){switch(v){case ne.Active:return"active";case ne.Inactive:return"inactive";case ne.AtBarrier:return"at-barrier";case ne.AtBreakpoint:return"at-breakpoint";case ne.AtAssert:return"at-assert";case ne.AtException:return"at-exception";case ne.NotLaunched:return"not-launched";case ne.Exited:return"exited";case ne.UNKNOWN:return"unkown"}}function b(v){console.assert(""+v.Cores==Re.dataset.cores),console.assert(""+v.Lanes==Re.dataset.lanes);for(const[I,D,O]of u(function*(){let q=0;for(;;)yield q++}(),Re.querySelectorAll("g > .lane"),v.LaneStates))console.assert(`{ ${O.PhyCoord.Core}, ${O.PhyCoord.Lane} }`==D.dataset.phyCoords),D.dataset.state=w(O.State),D.dataset.logCoords=`{ 0, (${O.LogCoord.X},${O.LogCoord.Y},${O.LogCoord.Z}) }`,D.classList.toggle("selected",v.SteppedLanes.has(I))}return[v=>{let I=[];for(const D of[b])try{D(v)}catch(O){I.push(O)}if(I.length>0)throw I},l]})(),ot=document.querySelector("#talvos section.buffers");var pr={};function at(u,l){ot.innerHTML="";const f=u.GlobalMemory,s=u.PipelineExecutor.Objects;for(const b of l.Buffers){const v=document.createElement("figure"),I=document.createElement("figcaption");I.innerText=`Buffer '${b.Name.deref()?.asString()??""}' (${b.Size} bytes):'`,v.appendChild(I);const D=document.createElement("ol"),O=s.get(b.Id).Data.data.getBigUint64(0,Ne),q=f.deref(O,64),Te=4,ge=z=>q.data.getUint32(z,Ne),oe=pr["0x"+O.toString(16)]??[];for(var g=[],w=0;w<=15;w++){const z=document.createElement("li");z.innerText=g[w]=""+ge(w*Te),w in oe&&oe[w]!=g[w]&&(z.dataset.prev=oe[w]),D.appendChild(z)}pr["0x"+O.toString(16)]=g,v.appendChild(D),ot.appendChild(v)}}const[Gn,jn,Wn,Zn,{Session:Je}]=function(u){return[u.then(l=>l.cwrap("validate_wasm","boolean",["string"])),u.then(l=>l.cwrap("exception",void 0,[])),u.then(l=>l.cwrap("assertion",void 0,[])),u.then(l=>l.getExceptionMessage),(()=>{var l=u.then(({wasmExports:{Session__create__:f,Session__destroy__:s,Session__params_ref:g,Session__module_ref:w,Session__device_ref:b,Session_run:v,Session_dumpBuffers:I,Session_start:D,Session_step:O,Session_switch:q,Session_print:Te,Session_continue:ge,Session_printContext:oe,Session_fetch_shrubbery:z},stackAlloc:er,stackSave:ae,stackRestore:Ee,stringToUTF8OnStack:ye,HEAP32:xe,wasmMemory:re,_malloc:Me,_free:Ie})=>{function he(te){const h=Me(te),F=re.buffer,G=new J(F,h,te);return[G,()=>Ie(G.addr)]}function x(te){const h=te.map(ye),F=er(h.length);return h.forEach((G,se)=>{xe[F+se*4>>2]=G}),[h.length,F]}const we=4096;class ie{ptr;arena;lastOp;laneMask;params;module;device;static bind(h){try{var F=Object.create(this.prototype);F.ptr=h,F.arena=new Nn(...he(we)),F.lastOp=new Z(F.arena.alloc(Z.SIZE)),F.laneMask=new We(void 0,{data:F.arena.alloc(8).data}),F.params=new Jr(new J(re.buffer,g(h),Jr.SIZE)),F.module=new et(new J(re.buffer,w(h),et.SIZE)),F.device=new nt(new J(re.buffer,b(h),nt.SIZE))}catch(G){throw s(h),F?.arena&&Oe(F.arena),G}return F}constructor(h){const F=ae(),[G,se]=[h,"EXEC"].map(ye),M=f(G,se);return Ee(F),ie.bind(M)}run(){v(this.ptr)}dumpBuffers(){I(this.ptr)}start(){pr={},D(this.ptr,this.lastOp.ptr.asRef()),hr(this.lastOp),at(this.device,this.module)}step(){this.laneMask.clear(),Re.querySelectorAll(".lane").forEach((F,G)=>{F.classList.contains("selected")&&this.laneMask.add(G)});var h=O(this.ptr,this.laneMask.asRef(),this.lastOp.asRef());return hr(this.lastOp),at(this.device,this.module),h>0&&qn(),h}switch(h){const F=ae();q(this.ptr,...x(["switch",...h])),Ee(F)}print(h){const F=ae();Te(this.ptr,...x(["print",...h])),Ee(F)}continue(){ge(this.ptr,this.lastOp.ptr.asRef()),hr(this.lastOp)}printContext(){oe(this.ptr)}fetchShrubbery(){var h=this.arena.alloc(8);return z(this.ptr,h.asRef()),new We(void 0,{data:h.data})}__destroy__(){console.log("Session.destroy..."),s(this.ptr),this.ptr=0,Oe(this.arena)}}return{Session:ie}});return{Session:l.then(f=>f.Session)}})()]}(Hn(Yn));function Oe(u){u.__destroy__()}function Qe(u,l){return ee.value="",K.value="",R.querySelector("output.timing").value="...",R.querySelectorAll("button.exec").forEach(f=>f.disabled=!0),l=l??window.performance.mark("talvos"),(async()=>u())().catch(async f=>{var s;if(f instanceof WebAssembly.Exception){var g;[g,s]=(await Zn)(f),s=s||`of type ${g}`,console.error(f.stack)}else console.error(`in ${l.name}:`,f),s=""+f;K.value=s}).finally(()=>{const f=window.performance.measure(l.name,l.name);R.querySelector("output.timing").value=`done in ${f.duration}ms`,R.querySelectorAll("button.exec").forEach(s=>s.removeAttribute("disabled"))})}R.querySelector("button.validate").onclick=async function(){const u=R.querySelector(".module").value,l=window.performance.mark("validate_wasm",{detail:{text:u}}),f=await Qe(async()=>(await Gn)(u),l);R.querySelector("output.stdio").value+=f?"ok!":"not ok :("};R.querySelector("button.assertion").onclick=async()=>Qe(await Wn);R.querySelector("button.exception").onclick=async()=>Qe(await jn);R.querySelector("button.shrubbery").onclick=async()=>{const u=(await Je).bind(828927560446);try{const l=u.fetchShrubbery();console.log(l)}finally{Oe(u.arena)}};R.querySelector("button.run").onclick=async function(){const u=R.querySelector(".module").value,l=window.performance.mark("run_wasm",{detail:{text:u}});Qe(async()=>{const f=new(await Je)(u),s=R.querySelector('select[name="entry"]');f.params.EntryName=s.selectedOptions.item(0)?.value??"main";try{f.run(),f.dumpBuffers()}finally{Oe(f)}},l)};R.querySelector("button.debug").onclick=async function(){ee.value="",K.value="",R.querySelector("output.timing").value="...",R.querySelectorAll("button.exec").forEach(b=>b.disabled=!0);const u=R.querySelector(".module").value,l=window.performance.mark("debug",{detail:{text:u}}),f=new(await Je)(u);f.params.EntryName=it.selectedOptions.item(0)?.value??"main";const s=R.querySelector(".debugger");function g(){s.hidden=!0,s.querySelectorAll("button").forEach(v=>v.onclick=null),R.querySelectorAll("button.exec").forEach(v=>v.removeAttribute("disabled")),Oe(f);const b=window.performance.measure(l.name,l.name);R.querySelector("output.timing").value=`done in ${b.duration}ms`}try{f.start(),f.printContext()}catch(b){throw g(),b}const w=1;s.querySelector("button.step").onclick=function(){ee.value="",K.value="";try{f.step()==w&&g(),f.printContext()}catch(b){throw g(),b}},s.querySelector("button.switch").onclick=function(){const b=prompt("Usage: switch: X [Y [Z]]","X [Y [Z]]");if(b==null)return;const v=b.split(/\s+/);f.switch(v)},s.querySelector("button.print").onclick=function(){const b=prompt("Usage: print: %","%15");if(b==null)return;const v=b.split(/\s+/);f.print(v)},s.querySelector("button.stop").onclick=g,s.querySelector("button.continue").onclick=function(){ee.value="",K.value="";try{f.continue()}finally{g()}},s.hidden=!1};const it=R.querySelector('select[name="entry"]');setTimeout(async function(){const l=ee.value,f=K.value;ee.value="",K.value="";const s=R.querySelector(".module").value,g=new(await Je)(s);try{console.log([...g.module.EntryPoints].map(w=>w.Name.asString())),it.innerHTML=[...g.module.EntryPoints].map(w=>``).join("")}finally{Oe(g)}ee.value&&console.log(ee.value),ee.value=l,K.value&&console.error(K.value),K.value=f},0); diff --git a/dist/_astro/hoisted.DTnhbeO0.js b/dist/_astro/hoisted.DTnhbeO0.js new file mode 100644 index 0000000..a7f9895 --- /dev/null +++ b/dist/_astro/hoisted.DTnhbeO0.js @@ -0,0 +1,6 @@ +import{_ as Tn}from"./preload-helper.Cd0R8zjt.js";const Qe=document.querySelector("#talvos svg.vis0"),Ze=Qe.querySelector("tspan.physical"),Kt=Qe.querySelector("tspan.logical"),Fn=Qe.querySelectorAll(".lane");for(const d of Fn)d.addEventListener("mouseenter",function(){Ze.textContent=this.dataset.phyCoords,Kt.textContent=this.dataset.logCoords??"N/A"}),d.addEventListener("mouseleave",function(){Ze.textContent="N/A",Kt.textContent="N/A"}),d.addEventListener("click",function(){this.classList.contains(".disabled")||this.classList.toggle("selected")});const Nn=Qe.querySelectorAll(".ctrl");for(const[d,l]of Nn.entries())l.addEventListener("mouseenter",function(){Ze.textContent=`{ ${d}, [${d*8}-${d*8+7}] }`}),l.addEventListener("mouseleave",function(){Ze.textContent="N/A"}),l.addEventListener("click",function(){if(!!!this.parentNode.querySelector('.lane[data-state="active"], .lane[data-state="inactive"]'))return;const i=!this.parentNode.querySelector(".lane.selected");this.parentNode.querySelectorAll(".lane").forEach(g=>{g.classList.toggle("selected",i)})});const On=["%2","%3","%4","st"];var oe={cur:1,last:"issued"};const Mn=document.querySelector("#talvos .controls button.reset");Mn.addEventListener("click",function(){oe={cur:1,last:"issued"},wt()});const Ln=document.querySelector("#talvos .controls button.vis.step0");Ln.addEventListener("click",function(){oe={cur:oe.cur+1,last:"issued"},wt()});const vt=await new Promise(async(d,l)=>{await customElements.whenDefined("shadow-root");const f=document.querySelectorAll("#talvos shadow-root");for(const i of f){const g=i.shadowRoot.querySelector("svg.vis1");if(g){d(g);return}}l("el not found")});function wt(){vt.replaceChildren(...vt.querySelectorAll("style,defs"),(d=>(d.setAttribute("href","#step"),d.setAttribute("width","60px"),d.setAttribute("height","240px"),d.setAttribute("x",`${(oe.cur||1)*60}`),d))(document.createElementNS("http://www.w3.org/2000/svg","use")),...On.map((d,l)=>{const f=document.createElementNS("http://www.w3.org/2000/svg","svg");f.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),f.setAttribute("viewBox","0 0 60 240"),f.setAttribute("width","60px"),f.setAttribute("height","240px"),f.setAttribute("x",`${l*60}`);const i=f.appendChild(document.createElementNS("http://www.w3.org/2000/svg","circle"));i.setAttribute("cx","30"),i.setAttribute("cy","55"),i.setAttribute("r","12");const g=f.appendChild(document.createElementNS("http://www.w3.org/2000/svg","text"));g.setAttribute("x","30"),g.setAttribute("y","55"),g.setAttribute("dominant-baseline","middle"),g.setAttribute("text-anchor","middle"),g.append(d);const w=f.appendChild(document.createElementNS("http://www.w3.org/2000/svg","g"));for(var _=0;_{if(d.length>16){const{written:I}=In.encodeInto(d,l.subarray(f,i));return I}for(var g=f,w=f+i-1,_=0;_=55296&&p<=57343){var L=d.charCodeAt(++_);p=65536+((p&1023)<<10)|L&1023}if(p<=127){if(f>=w)break;l[f++]=p}else if(p<=2047){if(f+1>=w)break;l[f++]=192|p>>6,l[f++]=128|p&63}else if(p<=65535){if(f+2>=w)break;l[f++]=224|p>>12,l[f++]=128|p>>6&63,l[f++]=128|p&63}else{if(f+3>=w)break;if(p>1114111)throw new Error("Invalid Unicode code point");l[f++]=240|p>>18,l[f++]=128|p>>12&63,l[f++]=128|p>>6&63,l[f++]=128|p&63}}return l[f]=0,f-g},Jt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Cn=(d,l,f,i)=>{const g=l+f,w=(()=>{let Y=l;for(;d[Y]&&!(Y>=g);)++Y;return Y})();if(w-l>16&&d.buffer&&Jt)return Jt.decode(d.subarray(l,w));for(var _="";l>10,56320|O&1023)}}return _};class Pn{next;dtor;constructor(l,f){this.next=l,this.dtor=f??(()=>{})}alloc(l){if(l>this.size)throw new Error(`OOM: Arena out of memory: requested ${l} bytes but only ${this.size} bytes remain`);const[f,i]=this.next.reslice(l);return this.next=i,f}free(l){}get size(){return this.next.byteLength}__destroy__(){this.dtor()}}const Me=!0;function Rn(d){class l{static get SIZE(){return J.SIZE}constructor(i){return new d(i.deref(0,d.SIZE,Me))}}return l}const xn=6,Un=await WebAssembly.instantiateStreaming(fetch("data:application/wasm;base64,AGFzbQEAAAABBgFgAX4BfwMCAQAHDgEKaTY0LnBvcGNudAAACggBBgAgAHunCwAKBG5hbWUCAwEAAA=="),{}),Bn=Un.instance,$n=Bn.exports["i64.popcnt"];class Ve{words;growable;constructor(l,{data:f}={}){this.words=new BigUint64Array(f.buffer,f.byteOffset,f.byteLength>>3),this.growable=!1;for(const i of l??[])this.add(i)}asRef(){return this.words.byteOffset}#e(l){const f=this.words;if(f.length<<6>l)return;if(!this.growable)throw new Error("TODO message");const i=l+64>>>xn,g=Math.max(i<<3,f.byteLength<<4);var w=new BigUint64Array(new ArrayBuffer(g));w.set(this.words),this.words=w}add(l){this.#e(l);const f=l>>>6,i=1n<>>6,i=1n<({size:l.size*d})}function Hn(...d){return{size:d.reduce((l,f)=>l+f.size,0)}}class Xe{constructor(l){if(this.ptr=l,l.byteLength!=Xe.SIZE)throw new Error(`bad size! got ${l.byteLength} wanted ${Xe.SIZE}`)}static get SIZE(){return 12}get X(){return this.ptr.data.getUint32(0,We)}get Y(){return this.ptr.data.getUint32(4,We)}get Z(){return this.ptr.data.getUint32(8,We)}}class Ke{constructor(l){if(this.ptr=l,l.byteLength!=Ke.SIZE)throw new Error(`bad size! got ${l.byteLength} wanted ${Ke.SIZE}`)}static get SIZE(){return 2}get Core(){return this.ptr.data.getUint8(0)}get Lane(){return this.ptr.data.getUint8(1)}}var ne=(d=>(d[d.Active=0]="Active",d[d.Inactive=1]="Inactive",d[d.AtBarrier=2]="AtBarrier",d[d.AtBreakpoint=3]="AtBreakpoint",d[d.AtAssert=4]="AtAssert",d[d.AtException=5]="AtException",d[d.NotLaunched=6]="NotLaunched",d[d.Exited=7]="Exited",d[d.UNKNOWN=8]="UNKNOWN",d))(ne||{});class Z{constructor(l){if(this.ptr=l,l.byteLength!=Z.SIZE)throw new Error(`bad size! got ${l.byteLength} wanted ${Z.SIZE}`)}static get SIZE(){return 1304}static get OFFSETS(){return{cores:0,lanes:1,result:2,steppedCores:8,steppedLanes:16,laneStates:24}}static get TYPES(){return{cores:Qt,lanes:Qt,steppedCores:er,steppedLanes:er,laneStates:zn(tr)(Hn())}}asRef(){return this.ptr.asRef()}get Cores(){return Z.TYPES.cores.get(this.ptr,Z.OFFSETS.cores)}get Lanes(){return Z.TYPES.lanes.get(this.ptr,Z.OFFSETS.lanes)}get SteppedCores(){return new Ve(void 0,{data:this.ptr.slice(Z.OFFSETS.steppedCores,Z.OFFSETS.steppedCores+Z.TYPES.steppedCores.size).data})}get SteppedLanes(){return new Ve(void 0,{data:this.ptr.slice(Z.OFFSETS.steppedLanes,Z.OFFSETS.steppedLanes+Z.TYPES.steppedLanes.size).data})}get LaneStates(){var l=Math.min(this.Cores*this.Lanes,tr);const f=this.ptr.slice(24),i={get(g){const w=f.slice(20*g,20*g+20);return{get PhyCoord(){return new Ke(w.slice(0,2))},get LogCoord(){return new Xe(w.slice(4,16))},get State(){return w.data.getInt32(16,We)}}},[Symbol.iterator]:()=>{var g=0;return{next(){return g>=l?{done:!0,value:void 0}:{done:!1,value:i.get(g++)}}}}};return i}}const tr=64;var qn=new TextDecoder("utf8");class Je{constructor(l){this.ptr=l}static get SIZE(){return 12}get __is_long(){return!!(this.ptr.data.getUint8(11)&128)}get data(){return this.__is_long?this.ptr.deref(0,this.length,Me):this.ptr.slice(0,this.length)}get length(){return this.__is_long?this.ptr.data.getUint32(4,Me):this.ptr.data.getUint8(11)&127}get capacity(){return this.__is_long?this.ptr.data.getUint32(8,Me)^2147483648:10}asString(){return qn.decode(this.data.as(Uint8Array))}get[Symbol.toStringTag](){return`std::string(${this.asString})`}}function he(d){return class{constructor(l){this.ptr=l}static get T(){return d}static get SIZE(){return he.SIZE}get(l){const[f,i]=[this.ptr.deref(0*J.SIZE,void 0,!0),this.ptr.deref(1*J.SIZE,void 0,!0)],g=d.SIZE,w=(i.addr-f.addr)/g;if(l<0||l>w)throw new Error(`out of bounds access: for index ${l} with elements [0..${w})`);const _=l*g;return new d(f.slice(_,_+g))}[Symbol.iterator](){const[l,f]=[this.ptr.deref(0*J.SIZE,void 0,!0),this.ptr.deref(1*J.SIZE,0,!0)],i=d.SIZE;var g=l;return{next(){if(g.addr>=f.addr)return{done:!0,value:void 0};const w={done:!1,value:new d(g.slice(0,i))};return g=g.slice(i),w}}}}}he.SIZE=12;function Yn(d){return class{constructor(l){this.ptr=l}static get T(){return d}static get SIZE(){return console.assert(d==Je),4+d.SIZE}get __engaged_(){return!!(this.ptr.data.getUint8(d.SIZE)&1)}deref(){if(this.__engaged_)return new d(this.ptr.slice(0,d.SIZE))}}}const Ae=!0;class rr{constructor(l){this.ptr=l}static get SIZE(){return 64}get EntryName(){return Cn(this.ptr.slice(0,64).as(Uint8Array),0,64)}set EntryName(l){if(Dn(l,this.ptr.slice(0,64).as(Uint8Array),0,64)>48n,_=Number(l&BigInt.asUintN(64,2n**64n-1n>>i)),p=this.Allocs.get(Number(w));return console.assert(_+f<=p.NumBytes),p.Data.slice(_,f)}get Allocs(){return new(he(Wn))(this.ptr.slice(2432,2432+he.SIZE))}}class Zn{constructor(l){this.ptr=l}static get SIZE(){return 20}get Data(){return this.ptr.deref(4,void 0,Ae)}}class ir{constructor(l){this.ptr=l}static get SIZE(){return 272}get Objects(){return new(he(Zn))(this.ptr.slice(32,32+he.SIZE))}}class sr{constructor(l){this.ptr=l}static get SIZE(){return 112}get GlobalMemory(){return new ar(this.ptr.deref(16,ar.SIZE,Ae))}get PipelineExecutor(){return new ir(this.ptr.deref(32,ir.SIZE,Ae))}}var Vn=(()=>{var d=import.meta.url;return async function(l={}){var f,i=Object.assign({},l),g,w,_=new Promise((e,t)=>{g=e,w=t});["_malloc","_free","getExceptionMessage","$incrementExceptionRefcount","$decrementExceptionRefcount","_memory","_assertion","_Session__create__","_Session__destroy__","_Session__params_ref","_Session__module_ref","_Session__device_ref","_Session_run","_Session_dumpBuffers","_Session_start","_Session_printContext","_Session_step","_Session_continue","_Session_print","_Session_switch","_validate_wasm","_test_entry","_test_entry_no_tcf","_run_wasm","_debug_wasm","_Session_fetch_shrubbery","_exception","___indirect_function_table","onRuntimeInitialized"].forEach(e=>{Object.getOwnPropertyDescriptor(_,e)||Object.defineProperty(_,e,{get:()=>z("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>z("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})});var p=typeof window=="object",L=typeof importScripts=="function",I=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",O=!p&&!I&&!L;if(i.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");if(I){const{createRequire:e}=await Tn(()=>import("./__vite-browser-external.BIHI7g3E.js"),[]);var Y=e(import.meta.url)}var Te=Object.assign({},i),Ee="./this.program",ae=(e,t)=>{throw t},$="";function rt(e){return i.locateFile?i.locateFile(e,$):$+e}var ie,we,ye;if(I){if(typeof process>"u"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var Be=process.versions.node,te=Be.split(".").slice(0,3);if(te=te[0]*1e4+te[1]*100+te[2].split("-")[0]*1,te<16e4)throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+Be+")");var Ie=Y("fs"),De=Y("path");L?$=De.dirname($)+"/":$=Y("url").fileURLToPath(new URL("./",import.meta.url)),ie=(e,t)=>(e=at(e)?new URL(e):De.normalize(e),Ie.readFileSync(e,t?void 0:"utf8")),ye=e=>{var t=ie(e,!0);return t.buffer||(t=new Uint8Array(t)),h(t.buffer),t},we=(e,t,r,o=!0)=>{e=at(e)?new URL(e):De.normalize(e),Ie.readFile(e,o?void 0:"utf8",(a,s)=>{a?r(a):t(o?s.buffer:s)})},!i.thisProgram&&process.argv.length>1&&(Ee=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),ae=(e,t)=>{throw process.exitCode=e,t}}else if(O){if(typeof process=="object"&&typeof Y=="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)")}else if(p||L){if(L?$=self.location.href:typeof document<"u"&&document.currentScript&&($=document.currentScript.src),d&&($=d),$.startsWith("blob:")?$="":$=$.substr(0,$.replace(/[?#].*/,"").lastIndexOf("/")+1),!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");ie=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},L&&(ye=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),we=(e,t,r)=>{var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=()=>{if(o.status==200||o.status==0&&o.response){t(o.response);return}r()},o.onerror=r,o.send(null)}}else throw new Error("environment detection error");var pe=i.print||console.log.bind(console),x=i.printErr||console.error.bind(console);Object.assign(i,Te),Te=null,En(),i.arguments&&i.arguments,de("arguments","arguments_"),i.thisProgram&&(Ee=i.thisProgram),de("thisProgram","thisProgram"),i.quit&&(ae=i.quit),de("quit","quit_"),h(typeof i.memoryInitializerPrefixURL>"u","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),h(typeof i.pthreadMainPrefixURL>"u","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),h(typeof i.cdInitializerPrefixURL>"u","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),h(typeof i.filePackagePrefixURL>"u","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),h(typeof i.read>"u","Module.read option was removed (modify read_ in JS)"),h(typeof i.readAsync>"u","Module.readAsync option was removed (modify readAsync in JS)"),h(typeof i.readBinary>"u","Module.readBinary option was removed (modify readBinary in JS)"),h(typeof i.setWindowTitle>"u","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),h(typeof i.TOTAL_MEMORY>"u","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),de("asm","wasmExports"),de("read","read_"),de("readAsync","readAsync"),de("readBinary","readBinary"),de("setWindowTitle","setWindowTitle"),h(!L,"worker environment detected but not enabled at build time. Add `worker` to `-sENVIRONMENT` to enable."),h(!O,"shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.");var _e;i.wasmBinary&&(_e=i.wasmBinary),de("wasmBinary","wasmBinary"),typeof WebAssembly!="object"&&x("no native wasm support detected");var se,re=!1;function h(e,t){e||z("Assertion failed"+(t?": "+t:""))}var F,G,le,M,U,ce;function dr(){var e=se.buffer;i.HEAP8=F=new Int8Array(e),i.HEAP16=le=new Int16Array(e),i.HEAPU8=G=new Uint8Array(e),i.HEAPU16=new Uint16Array(e),i.HEAP32=M=new Int32Array(e),i.HEAPU32=U=new Uint32Array(e),i.HEAPF32=new Float32Array(e),i.HEAPF64=new Float64Array(e),i.HEAP64=ce=new BigInt64Array(e),i.HEAPU64=new BigUint64Array(e)}h(!i.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),h(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),h(!i.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),h(!i.INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically");function fr(){var e=pt();h((e&3)==0),e==0&&(e+=4),U[e>>2]=34821223,U[e+4>>2]=2310721022,U[0]=1668509029}function nt(){if(!re){var e=pt();e==0&&(e+=4);var t=U[e>>2],r=U[e+4>>2];(t!=34821223||r!=2310721022)&&z(`Stack overflow! Stack cookie has been overwritten at ${Re(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${Re(r)} ${Re(t)}`),U[0]!=1668509029&&z("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,t[0]!==115||t[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var yt=[],_t=[],St=[],$e=!1;function mr(){if(i.preRun)for(typeof i.preRun=="function"&&(i.preRun=[i.preRun]);i.preRun.length;)vr(i.preRun.shift());it(yt)}function hr(){h(!$e),$e=!0,nt(),!i.noFSInit&&!n.init.initialized&&n.init(),n.ignorePermissions=!1,it(_t)}function pr(){if(nt(),i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;)Er(i.postRun.shift());it(St)}function vr(e){yt.unshift(e)}function gr(e){_t.unshift(e)}function Er(e){St.unshift(e)}h(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),h(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),h(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),h(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Se=0,be=null,Ce=null,Fe={};function bt(e){for(var t=e;;){if(!Fe[e])return e;e=t+Math.random()}}function ot(e){Se++,i.monitorRunDependencies?.(Se),e?(h(!Fe[e]),Fe[e]=1,be===null&&typeof setInterval<"u"&&(be=setInterval(()=>{if(re){clearInterval(be),be=null;return}var t=!1;for(var r in Fe)t||(t=!0,x("still waiting on run dependencies:")),x(`dependency: ${r}`);t&&x("(end of list)")},1e4))):x("warning: run dependency added without ID")}function ze(e){if(Se--,i.monitorRunDependencies?.(Se),e?(h(Fe[e]),delete Fe[e]):x("warning: run dependency removed without ID"),Se==0&&(be!==null&&(clearInterval(be),be=null),Ce)){var t=Ce;Ce=null,t()}}function z(e){i.onAbort?.(e),e="Aborted("+e+")",x(e),re=!0,$e&&Gt();var t=new WebAssembly.RuntimeError(e);throw w(t),t}var wr="data:application/octet-stream;base64,",kt=e=>e.startsWith(wr),at=e=>e.startsWith("file://");function D(e,t){return(...r)=>{h($e,`native function \`${e}\` called before runtime initialization`);var o=V[e];return h(o,`exported native function \`${e}\` not found`),h(r.length<=t,`native function \`${e}\` called with ${r.length} args but expects ${t}`),o(...r)}}var ue;i.locateFile?(ue="talvos-wasm.wasm",kt(ue)||(ue=rt(ue))):ue=new URL("/learn-gpgpu/_astro/talvos-wasm.Bc1_K4Ju.wasm",import.meta.url).href;function At(e){if(e==ue&&_e)return new Uint8Array(_e);if(ye)return ye(e);throw"both async and sync fetching of the wasm failed"}function yr(e){return!_e&&(p||L)&&typeof fetch=="function"?fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw`failed to load wasm binary file at '${e}'`;return t.arrayBuffer()}).catch(()=>At(e)):Promise.resolve().then(()=>At(e))}function Tt(e,t,r){return yr(e).then(o=>WebAssembly.instantiate(o,t)).then(r,o=>{x(`failed to asynchronously prepare wasm: ${o}`),at(ue)&&x(`warning: Loading from a file URI (${ue}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`),z(o)})}function _r(e,t,r,o){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!kt(t)&&!I&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(a=>{var s=WebAssembly.instantiateStreaming(a,r);return s.then(o,function(c){return x(`wasm streaming compile failed: ${c}`),x("falling back to ArrayBuffer instantiation"),Tt(t,r,o)})}):Tt(t,r,o)}function Sr(){return{env:Ht,wasi_snapshot_preview1:Ht}}function br(){var e=Sr();function t(a,s){return V=a.exports,i.wasmExports=V,se=V.memory,i.wasmMemory=se,h(se,"memory not found in wasm exports"),dr(),gr(V.__wasm_call_ctors),ze("wasm-instantiate"),V}ot("wasm-instantiate");var r=i;function o(a){h(i===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(a.instance)}if(i.instantiateWasm)try{return i.instantiateWasm(e,t)}catch(a){x(`Module.instantiateWasm callback failed with error: ${a}`),w(a)}return _r(_e,ue,e,o).catch(w),{}}function de(e,t,r=!0){Object.getOwnPropertyDescriptor(i,e)||Object.defineProperty(i,e,{configurable:!0,get(){let o=r?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":"";z(`\`Module.${e}\` has been replaced by \`${t}\``+o)}})}function kr(e){Object.getOwnPropertyDescriptor(i,e)&&z(`\`Module.${e}\` was supplied but \`${e}\` not included in INCOMING_MODULE_JS_API`)}function Ft(e){return e==="FS_createPath"||e==="FS_createDataFile"||e==="FS_createPreloadedFile"||e==="FS_unlink"||e==="addRunDependency"||e==="FS_createLazyFile"||e==="FS_createDevice"||e==="removeRunDependency"}function Nt(e,t){typeof globalThis<"u"&&Object.defineProperty(globalThis,e,{configurable:!0,get(){ve(`\`${e}\` is not longer defined by emscripten. ${t}`)}})}Nt("buffer","Please use HEAP8.buffer or wasmMemory.buffer"),Nt("asm","Please use wasmExports instead");function Ar(e){typeof globalThis<"u"&&!Object.getOwnPropertyDescriptor(globalThis,e)&&Object.defineProperty(globalThis,e,{configurable:!0,get(){var t=`\`${e}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`,r=e;r.startsWith("_")||(r="$"+e),t+=` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${r}')`,Ft(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),ve(t)}}),Ot(e)}function Ot(e){Object.getOwnPropertyDescriptor(i,e)||Object.defineProperty(i,e,{configurable:!0,get(){var t=`'${e}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;Ft(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),z(t)}})}function Tr(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var it=e=>{for(;e.length>0;)e.shift()(i)},Mt=()=>V.__cpp_exception,Lt=e=>{var t=e.getArg(Mt(),0);return yn(t)},Fr=e=>{var t=Lt(e);wn(t)},st=()=>Vt(),lt=e=>Wt(e),Pe=e=>Zt(e),It=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,ke=(e,t,r)=>{for(var o=t+r,a=t;e[a]&&!(a>=o);)++a;if(a-t>16&&e.buffer&&It)return It.decode(e.subarray(t,a));for(var s="";t>10,56320|A&1023)}}return s},fe=(e,t)=>(h(typeof e=="number",`UTF8ToString expects a number (got ${typeof e})`),e?ke(G,e,t):""),Nr=e=>{var t=st(),r=Pe(4),o=Pe(4);_n(e,r,o);var a=U[r>>2],s=U[o>>2],c=fe(a);Yt(a);var u;return s&&(u=fe(s),Yt(s)),lt(t),[c,u]},ct=e=>{var t=Lt(e);return Nr(t)};i.getExceptionMessage=ct;var Or=i.noExitRuntime||!0,Re=e=>(h(typeof e=="number"),e>>>=0,"0x"+e.toString(16).padStart(8,"0")),ve=e=>{ve.shown||={},ve.shown[e]||(ve.shown[e]=1,I&&(e="warning: "+e),x(e))},Mr=(e,t,r,o)=>{z(`Assertion failed: ${fe(e)}, at: `+[t?fe(t):"unknown filename",r,o?fe(o):"unknown function"])};function He(){h(j.varargs!=null);var e=M[+j.varargs>>2];return j.varargs+=4,e}var Ne=He,C={isAbs:e=>e.charAt(0)==="/",splitPath:e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return t.exec(e).slice(1)},normalizeArray:(e,t)=>{for(var r=0,o=e.length-1;o>=0;o--){var a=e[o];a==="."?e.splice(o,1):a===".."?(e.splice(o,1),r++):r&&(e.splice(o,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=C.isAbs(e),r=e.substr(-1)==="/";return e=C.normalizeArray(e.split("/").filter(o=>!!o),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=C.splitPath(e),r=t[0],o=t[1];return!r&&!o?".":(o&&(o=o.substr(0,o.length-1)),r+o)},basename:e=>{if(e==="/")return"/";e=C.normalize(e),e=e.replace(/\/$/,"");var t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},join:(...e)=>C.normalize(e.join("/")),join2:(e,t)=>C.normalize(e+"/"+t)},Lr=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return o=>crypto.getRandomValues(o);if(I)try{var e=Y("crypto"),t=e.randomFillSync;if(t)return o=>e.randomFillSync(o);var r=e.randomBytes;return o=>(o.set(r(o.byteLength)),o)}catch{}z("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")},Dt=e=>(Dt=Lr())(e),me={resolve:(...e)=>{for(var t="",r=!1,o=e.length-1;o>=-1&&!r;o--){var a=o>=0?e[o]:n.cwd();if(typeof a!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!a)return"";t=a+"/"+t,r=C.isAbs(a)}return t=C.normalizeArray(t.split("/").filter(s=>!!s),!r).join("/"),(r?"/":"")+t||"."},relative:(e,t)=>{e=me.resolve(e).substr(1),t=me.resolve(t).substr(1);function r(A){for(var T=0;T=0&&A[N]==="";N--);return T>N?[]:A.slice(T,N-T+1)}for(var o=r(e.split("/")),a=r(t.split("/")),s=Math.min(o.length,a.length),c=s,u=0;u{for(var t=0,r=0;r=55296&&o<=57343?(t+=4,++r):t+=3}return t},qe=(e,t,r,o)=>{if(h(typeof e=="string",`stringToUTF8Array expects a string (got ${typeof e})`),!(o>0))return 0;for(var a=r,s=r+o-1,c=0;c=55296&&u<=57343){var v=e.charCodeAt(++c);u=65536+((u&1023)<<10)|v&1023}if(u<=127){if(r>=s)break;t[r++]=u}else if(u<=2047){if(r+1>=s)break;t[r++]=192|u>>6,t[r++]=128|u&63}else if(u<=65535){if(r+2>=s)break;t[r++]=224|u>>12,t[r++]=128|u>>6&63,t[r++]=128|u&63}else{if(r+3>=s)break;u>1114111&&ve("Invalid Unicode code point "+Re(u)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),t[r++]=240|u>>18,t[r++]=128|u>>12&63,t[r++]=128|u>>6&63,t[r++]=128|u&63}}return t[r]=0,r-a};function Ye(e,t,r){var o=dt(e)+1,a=new Array(o),s=qe(e,a,0,a.length);return t&&(a.length=s),a}var Ir=()=>{if(!ut.length){var e=null;if(I){var t=256,r=Buffer.alloc(t),o=0,a=process.stdin.fd;try{o=Ie.readSync(a,r)}catch(s){if(s.toString().includes("EOF"))o=0;else throw s}o>0?e=r.slice(0,o).toString("utf-8"):e=null}else typeof window<"u"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=` +`)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=` +`));if(!e)return null;ut=Ye(e,!0)}return ut.shift()},ge={ttys:[],init(){},shutdown(){},register(e,t){ge.ttys[e]={input:[],output:[],ops:t},n.registerDevice(e,ge.stream_ops)},stream_ops:{open(e){var t=ge.ttys[e.node.rdev];if(!t)throw new n.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,r,o,a){if(!e.tty||!e.tty.ops.get_char)throw new n.ErrnoError(60);for(var s=0,c=0;c0&&(pe(ke(e.output,0)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,t,r){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,t){t===null||t===10?(x(ke(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(x(ke(e.output,0)),e.output=[])}}},Ct=e=>{z("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported")},k={ops_table:null,mount(e){return k.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(n.isBlkdev(r)||n.isFIFO(r))throw new n.ErrnoError(63);k.ops_table||={dir:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr,lookup:k.node_ops.lookup,mknod:k.node_ops.mknod,rename:k.node_ops.rename,unlink:k.node_ops.unlink,rmdir:k.node_ops.rmdir,readdir:k.node_ops.readdir,symlink:k.node_ops.symlink},stream:{llseek:k.stream_ops.llseek}},file:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr},stream:{llseek:k.stream_ops.llseek,read:k.stream_ops.read,write:k.stream_ops.write,allocate:k.stream_ops.allocate,mmap:k.stream_ops.mmap,msync:k.stream_ops.msync}},link:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr,readlink:k.node_ops.readlink},stream:{}},chrdev:{node:{getattr:k.node_ops.getattr,setattr:k.node_ops.setattr},stream:n.chrdev_stream_ops}};var a=n.createNode(e,t,r,o);return n.isDir(a.mode)?(a.node_ops=k.ops_table.dir.node,a.stream_ops=k.ops_table.dir.stream,a.contents={}):n.isFile(a.mode)?(a.node_ops=k.ops_table.file.node,a.stream_ops=k.ops_table.file.stream,a.usedBytes=0,a.contents=null):n.isLink(a.mode)?(a.node_ops=k.ops_table.link.node,a.stream_ops=k.ops_table.link.stream):n.isChrdev(a.mode)&&(a.node_ops=k.ops_table.chrdev.node,a.stream_ops=k.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[t]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){var o=1024*1024;t=Math.max(t,r*(r>>0),r!=0&&(t=Math.max(t,256));var a=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=n.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,n.isDir(e.mode)?t.size=4096:n.isFile(e.mode)?t.size=e.usedBytes:n.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&k.resizeFileStorage(e,t.size)},lookup(e,t){throw n.genericErrors[44]},mknod(e,t,r,o){return k.createNode(e,t,r,o)},rename(e,t,r){if(n.isDir(e.mode)){var o;try{o=n.lookupNode(t,r)}catch{}if(o)for(var a in o.contents)throw new n.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var r=n.lookupNode(e,t);for(var o in r.contents)throw new n.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var r of Object.keys(e.contents))t.push(r);return t},symlink(e,t,r){var o=k.createNode(e,t,41471,0);return o.link=r,o},readlink(e){if(!n.isLink(e.mode))throw new n.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,o,a){var s=e.node.contents;if(a>=e.node.usedBytes)return 0;var c=Math.min(e.node.usedBytes-a,o);if(h(c>=0),c>8&&s.subarray)t.set(s.subarray(a,a+c),r);else for(var u=0;u0||r+t{var a=bt(`al ${e}`);we(e,s=>{h(s,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(s)),a&&ze(a)},s=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&ot(a)},Cr=(e,t,r,o,a,s)=>{n.createDataFile(e,t,r,o,a,s)},Pr=i.preloadPlugins||[],Rr=(e,t,r,o)=>{typeof Browser<"u"&&Browser.init();var a=!1;return Pr.forEach(s=>{a||s.canHandle(t)&&(s.handle(e,t,r,o),a=!0)}),a},xr=(e,t,r,o,a,s,c,u,v,A)=>{var T=t?me.resolve(C.join2(e,t)):e,N=bt(`cp ${T}`);function b(y){function S(B){A?.(),u||Cr(e,t,B,o,a,v),s?.(),ze(N)}Rr(y,T,S,()=>{c?.(),ze(N)})||S(y)}ot(N),typeof r=="string"?Dr(r,b,c):b(r)},Ur=e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},r=t[e];if(typeof r>"u")throw new Error(`Unknown file open mode: ${e}`);return r},ft=(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},Br={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},Pt={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},n={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class extends Error{constructor(e){super(Br[e]),this.name="ErrnoError",this.errno=e;for(var t in Pt)if(Pt[t]===e){this.code=t;break}}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{constructor(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=n.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o,this.readMode=365,this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return n.isDir(this.mode)}get isDevice(){return n.isChrdev(this.mode)}},lookupPath(e,t={}){if(e=me.resolve(e),!e)return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};if(t=Object.assign(r,t),t.recurse_count>8)throw new n.ErrnoError(32);for(var o=e.split("/").filter(N=>!!N),a=n.root,s="/",c=0;c40)throw new n.ErrnoError(32)}}return{path:s,node:a}},getPath(e){for(var t;;){if(n.isRoot(e)){var r=e.mount.mountpoint;return t?r[r.length-1]!=="/"?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var r=0,o=0;o>>0)%n.nameTable.length},hashAddNode(e){var t=n.hashName(e.parent.id,e.name);e.name_next=n.nameTable[t],n.nameTable[t]=e},hashRemoveNode(e){var t=n.hashName(e.parent.id,e.name);if(n.nameTable[t]===e)n.nameTable[t]=e.name_next;else for(var r=n.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode(e,t){var r=n.mayLookup(e);if(r)throw new n.ErrnoError(r);for(var o=n.hashName(e.id,t),a=n.nameTable[o];a;a=a.name_next){var s=a.name;if(a.parent.id===e.id&&s===t)return a}return n.lookup(e,t)},createNode(e,t,r,o){h(typeof e=="object");var a=new n.FSNode(e,t,r,o);return n.hashAddNode(a),a},destroyNode(e){n.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return n.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){if(!n.isDir(e.mode))return 54;var t=n.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{var r=n.lookupNode(e,t);return 20}catch{}return n.nodePermissions(e,"wx")},mayDelete(e,t,r){var o;try{o=n.lookupNode(e,t)}catch(s){return s.errno}var a=n.nodePermissions(e,"wx");if(a)return a;if(r){if(!n.isDir(o.mode))return 54;if(n.isRoot(o)||n.getPath(o)===n.cwd())return 10}else if(n.isDir(o.mode))return 31;return 0},mayOpen(e,t){return e?n.isLink(e.mode)?32:n.isDir(e.mode)&&(n.flagsToPermissionString(t)!=="r"||t&512)?31:n.nodePermissions(e,n.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=n.MAX_OPEN_FDS;e++)if(!n.streams[e])return e;throw new n.ErrnoError(33)},getStreamChecked(e){var t=n.getStream(e);if(!t)throw new n.ErrnoError(8);return t},getStream:e=>n.streams[e],createStream(e,t=-1){return e=Object.assign(new n.FSStream,e),t==-1&&(t=n.nextfd()),e.fd=t,n.streams[t]=e,e},closeStream(e){n.streams[e]=null},dupStream(e,t=-1){var r=n.createStream(e,t);return r.stream_ops?.dup?.(r),r},chrdev_stream_ops:{open(e){var t=n.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new n.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,t)=>e<<8|t,registerDevice(e,t){n.devices[e]={stream_ops:t}},getDevice:e=>n.devices[e],getMounts(e){for(var t=[],r=[e];r.length;){var o=r.pop();t.push(o),r.push(...o.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),n.syncFSRequests++,n.syncFSRequests>1&&x(`warning: ${n.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var r=n.getMounts(n.root.mount),o=0;function a(c){return h(n.syncFSRequests>0),n.syncFSRequests--,t(c)}function s(c){if(c)return s.errored?void 0:(s.errored=!0,a(c));++o>=r.length&&a(null)}r.forEach(c=>{if(!c.type.syncfs)return s(null);c.type.syncfs(c,e,s)})},mount(e,t,r){if(typeof e=="string")throw e;var o=r==="/",a=!r,s;if(o&&n.root)throw new n.ErrnoError(10);if(!o&&!a){var c=n.lookupPath(r,{follow_mount:!1});if(r=c.path,s=c.node,n.isMountpoint(s))throw new n.ErrnoError(10);if(!n.isDir(s.mode))throw new n.ErrnoError(54)}var u={type:e,opts:t,mountpoint:r,mounts:[]},v=e.mount(u);return v.mount=u,u.root=v,o?n.root=v:s&&(s.mounted=u,s.mount&&s.mount.mounts.push(u)),v},unmount(e){var t=n.lookupPath(e,{follow_mount:!1});if(!n.isMountpoint(t.node))throw new n.ErrnoError(28);var r=t.node,o=r.mounted,a=n.getMounts(o);Object.keys(n.nameTable).forEach(c=>{for(var u=n.nameTable[c];u;){var v=u.name_next;a.includes(u.mount)&&n.destroyNode(u),u=v}}),r.mounted=null;var s=r.mount.mounts.indexOf(o);h(s!==-1),r.mount.mounts.splice(s,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,r){var o=n.lookupPath(e,{parent:!0}),a=o.node,s=C.basename(e);if(!s||s==="."||s==="..")throw new n.ErrnoError(28);var c=n.mayCreate(a,s);if(c)throw new n.ErrnoError(c);if(!a.node_ops.mknod)throw new n.ErrnoError(63);return a.node_ops.mknod(a,s,t,r)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,n.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,n.mknod(e,t,0)},mkdirTree(e,t){for(var r=e.split("/"),o="",a=0;a"u"&&(r=t,t=438),t|=8192,n.mknod(e,t,r)},symlink(e,t){if(!me.resolve(e))throw new n.ErrnoError(44);var r=n.lookupPath(t,{parent:!0}),o=r.node;if(!o)throw new n.ErrnoError(44);var a=C.basename(t),s=n.mayCreate(o,a);if(s)throw new n.ErrnoError(s);if(!o.node_ops.symlink)throw new n.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){var r=C.dirname(e),o=C.dirname(t),a=C.basename(e),s=C.basename(t),c,u,v;if(c=n.lookupPath(e,{parent:!0}),u=c.node,c=n.lookupPath(t,{parent:!0}),v=c.node,!u||!v)throw new n.ErrnoError(44);if(u.mount!==v.mount)throw new n.ErrnoError(75);var A=n.lookupNode(u,a),T=me.relative(e,o);if(T.charAt(0)!==".")throw new n.ErrnoError(28);if(T=me.relative(t,r),T.charAt(0)!==".")throw new n.ErrnoError(55);var N;try{N=n.lookupNode(v,s)}catch{}if(A!==N){var b=n.isDir(A.mode),y=n.mayDelete(u,a,b);if(y)throw new n.ErrnoError(y);if(y=N?n.mayDelete(v,s,b):n.mayCreate(v,s),y)throw new n.ErrnoError(y);if(!u.node_ops.rename)throw new n.ErrnoError(63);if(n.isMountpoint(A)||N&&n.isMountpoint(N))throw new n.ErrnoError(10);if(v!==u&&(y=n.nodePermissions(u,"w"),y))throw new n.ErrnoError(y);n.hashRemoveNode(A);try{u.node_ops.rename(A,v,s)}catch(S){throw S}finally{n.hashAddNode(A)}}},rmdir(e){var t=n.lookupPath(e,{parent:!0}),r=t.node,o=C.basename(e),a=n.lookupNode(r,o),s=n.mayDelete(r,o,!0);if(s)throw new n.ErrnoError(s);if(!r.node_ops.rmdir)throw new n.ErrnoError(63);if(n.isMountpoint(a))throw new n.ErrnoError(10);r.node_ops.rmdir(r,o),n.destroyNode(a)},readdir(e){var t=n.lookupPath(e,{follow:!0}),r=t.node;if(!r.node_ops.readdir)throw new n.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){var t=n.lookupPath(e,{parent:!0}),r=t.node;if(!r)throw new n.ErrnoError(44);var o=C.basename(e),a=n.lookupNode(r,o),s=n.mayDelete(r,o,!1);if(s)throw new n.ErrnoError(s);if(!r.node_ops.unlink)throw new n.ErrnoError(63);if(n.isMountpoint(a))throw new n.ErrnoError(10);r.node_ops.unlink(r,o),n.destroyNode(a)},readlink(e){var t=n.lookupPath(e),r=t.node;if(!r)throw new n.ErrnoError(44);if(!r.node_ops.readlink)throw new n.ErrnoError(28);return me.resolve(n.getPath(r.parent),r.node_ops.readlink(r))},stat(e,t){var r=n.lookupPath(e,{follow:!t}),o=r.node;if(!o)throw new n.ErrnoError(44);if(!o.node_ops.getattr)throw new n.ErrnoError(63);return o.node_ops.getattr(o)},lstat(e){return n.stat(e,!0)},chmod(e,t,r){var o;if(typeof e=="string"){var a=n.lookupPath(e,{follow:!r});o=a.node}else o=e;if(!o.node_ops.setattr)throw new n.ErrnoError(63);o.node_ops.setattr(o,{mode:t&4095|o.mode&-4096,timestamp:Date.now()})},lchmod(e,t){n.chmod(e,t,!0)},fchmod(e,t){var r=n.getStreamChecked(e);n.chmod(r.node,t)},chown(e,t,r,o){var a;if(typeof e=="string"){var s=n.lookupPath(e,{follow:!o});a=s.node}else a=e;if(!a.node_ops.setattr)throw new n.ErrnoError(63);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown(e,t,r){n.chown(e,t,r,!0)},fchown(e,t,r){var o=n.getStreamChecked(e);n.chown(o.node,t,r)},truncate(e,t){if(t<0)throw new n.ErrnoError(28);var r;if(typeof e=="string"){var o=n.lookupPath(e,{follow:!0});r=o.node}else r=e;if(!r.node_ops.setattr)throw new n.ErrnoError(63);if(n.isDir(r.mode))throw new n.ErrnoError(31);if(!n.isFile(r.mode))throw new n.ErrnoError(28);var a=n.nodePermissions(r,"w");if(a)throw new n.ErrnoError(a);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){var r=n.getStreamChecked(e);if(!(r.flags&2097155))throw new n.ErrnoError(28);n.truncate(r.node,t)},utime(e,t,r){var o=n.lookupPath(e,{follow:!0}),a=o.node;a.node_ops.setattr(a,{timestamp:Math.max(t,r)})},open(e,t,r){if(e==="")throw new n.ErrnoError(44);t=typeof t=="string"?Ur(t):t,r=typeof r>"u"?438:r,t&64?r=r&4095|32768:r=0;var o;if(typeof e=="object")o=e;else{e=C.normalize(e);try{var a=n.lookupPath(e,{follow:!(t&131072)});o=a.node}catch{}}var s=!1;if(t&64)if(o){if(t&128)throw new n.ErrnoError(20)}else o=n.mknod(e,r,0),s=!0;if(!o)throw new n.ErrnoError(44);if(n.isChrdev(o.mode)&&(t&=-513),t&65536&&!n.isDir(o.mode))throw new n.ErrnoError(54);if(!s){var c=n.mayOpen(o,t);if(c)throw new n.ErrnoError(c)}t&512&&!s&&n.truncate(o,0),t&=-131713;var u=n.createStream({node:o,path:n.getPath(o),flags:t,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return u.stream_ops.open&&u.stream_ops.open(u),i.logReadFiles&&!(t&1)&&(n.readFiles||(n.readFiles={}),e in n.readFiles||(n.readFiles[e]=1)),u},close(e){if(n.isClosed(e))throw new n.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{n.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,r){if(n.isClosed(e))throw new n.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new n.ErrnoError(70);if(r!=0&&r!=1&&r!=2)throw new n.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,o,a){if(h(r>=0),o<0||a<0)throw new n.ErrnoError(28);if(n.isClosed(e))throw new n.ErrnoError(8);if((e.flags&2097155)===1)throw new n.ErrnoError(8);if(n.isDir(e.node.mode))throw new n.ErrnoError(31);if(!e.stream_ops.read)throw new n.ErrnoError(28);var s=typeof a<"u";if(!s)a=e.position;else if(!e.seekable)throw new n.ErrnoError(70);var c=e.stream_ops.read(e,t,r,o,a);return s||(e.position+=c),c},write(e,t,r,o,a,s){if(h(r>=0),o<0||a<0)throw new n.ErrnoError(28);if(n.isClosed(e))throw new n.ErrnoError(8);if(!(e.flags&2097155))throw new n.ErrnoError(8);if(n.isDir(e.node.mode))throw new n.ErrnoError(31);if(!e.stream_ops.write)throw new n.ErrnoError(28);e.seekable&&e.flags&1024&&n.llseek(e,0,2);var c=typeof a<"u";if(!c)a=e.position;else if(!e.seekable)throw new n.ErrnoError(70);var u=e.stream_ops.write(e,t,r,o,a,s);return c||(e.position+=u),u},allocate(e,t,r){if(n.isClosed(e))throw new n.ErrnoError(8);if(t<0||r<=0)throw new n.ErrnoError(28);if(!(e.flags&2097155))throw new n.ErrnoError(8);if(!n.isFile(e.node.mode)&&!n.isDir(e.node.mode))throw new n.ErrnoError(43);if(!e.stream_ops.allocate)throw new n.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,o,a){if(o&2&&!(a&2)&&(e.flags&2097155)!==2)throw new n.ErrnoError(2);if((e.flags&2097155)===1)throw new n.ErrnoError(2);if(!e.stream_ops.mmap)throw new n.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,a)},msync(e,t,r,o,a){return h(r>=0),e.stream_ops.msync?e.stream_ops.msync(e,t,r,o,a):0},ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new n.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);var r,o=n.open(e,t.flags),a=n.stat(e),s=a.size,c=new Uint8Array(s);return n.read(o,c,0,s,0),t.encoding==="utf8"?r=ke(c,0):t.encoding==="binary"&&(r=c),n.close(o),r},writeFile(e,t,r={}){r.flags=r.flags||577;var o=n.open(e,r.flags,r.mode);if(typeof t=="string"){var a=new Uint8Array(dt(t)+1),s=qe(t,a,0,a.length);n.write(o,a,0,s,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))n.write(o,t,0,t.byteLength,void 0,r.canOwn);else throw new Error("Unsupported data type");n.close(o)},cwd:()=>n.currentPath,chdir(e){var t=n.lookupPath(e,{follow:!0});if(t.node===null)throw new n.ErrnoError(44);if(!n.isDir(t.node.mode))throw new n.ErrnoError(54);var r=n.nodePermissions(t.node,"x");if(r)throw new n.ErrnoError(r);n.currentPath=t.path},createDefaultDirectories(){n.mkdir("/tmp"),n.mkdir("/home"),n.mkdir("/home/web_user")},createDefaultDevices(){n.mkdir("/dev"),n.registerDevice(n.makedev(1,3),{read:()=>0,write:(o,a,s,c,u)=>c}),n.mkdev("/dev/null",n.makedev(1,3)),ge.register(n.makedev(5,0),ge.default_tty_ops),ge.register(n.makedev(6,0),ge.default_tty1_ops),n.mkdev("/dev/tty",n.makedev(5,0)),n.mkdev("/dev/tty1",n.makedev(6,0));var e=new Uint8Array(1024),t=0,r=()=>(t===0&&(t=Dt(e).byteLength),e[--t]);n.createDevice("/dev","random",r),n.createDevice("/dev","urandom",r),n.mkdir("/dev/shm"),n.mkdir("/dev/shm/tmp")},createSpecialDirectories(){n.mkdir("/proc");var e=n.mkdir("/proc/self");n.mkdir("/proc/self/fd"),n.mount({mount(){var t=n.createNode(e,"fd",16895,73);return t.node_ops={lookup(r,o){var a=+o,s=n.getStreamChecked(a),c={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>s.path}};return c.parent=c,c}},t}},{},"/proc/self/fd")},createStandardStreams(){i.stdin?n.createDevice("/dev","stdin",i.stdin):n.symlink("/dev/tty","/dev/stdin"),i.stdout?n.createDevice("/dev","stdout",null,i.stdout):n.symlink("/dev/tty","/dev/stdout"),i.stderr?n.createDevice("/dev","stderr",null,i.stderr):n.symlink("/dev/tty1","/dev/stderr");var e=n.open("/dev/stdin",0),t=n.open("/dev/stdout",1),r=n.open("/dev/stderr",1);h(e.fd===0,`invalid handle for stdin (${e.fd})`),h(t.fd===1,`invalid handle for stdout (${t.fd})`),h(r.fd===2,`invalid handle for stderr (${r.fd})`)},staticInit(){[44].forEach(e=>{n.genericErrors[e]=new n.ErrnoError(e),n.genericErrors[e].stack=""}),n.nameTable=new Array(4096),n.mount(k,{},"/"),n.createDefaultDirectories(),n.createDefaultDevices(),n.createSpecialDirectories(),n.filesystems={MEMFS:k}},init(e,t,r){h(!n.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),n.init.initialized=!0,i.stdin=e||i.stdin,i.stdout=t||i.stdout,i.stderr=r||i.stderr,n.createStandardStreams()},quit(){n.init.initialized=!1,qt(0);for(var e=0;ethis.length-1||y<0)){var S=y%this.chunkSize,B=y/this.chunkSize|0;return this.getter(B)[S]}}setDataGetter(y){this.getter=y}cacheLength(){var y=new XMLHttpRequest;if(y.open("HEAD",r,!1),y.send(null),!(y.status>=200&&y.status<300||y.status===304))throw new Error("Couldn't load "+r+". Status: "+y.status);var S=Number(y.getResponseHeader("Content-length")),B,X=(B=y.getResponseHeader("Accept-Ranges"))&&B==="bytes",W=(B=y.getResponseHeader("Content-Encoding"))&&B==="gzip",m=1024*1024;X||(m=S);var E=(P,Q)=>{if(P>Q)throw new Error("invalid range ("+P+", "+Q+") or no bytes requested!");if(Q>S-1)throw new Error("only "+S+" bytes available! programmer error!");var H=new XMLHttpRequest;if(H.open("GET",r,!1),S!==m&&H.setRequestHeader("Range","bytes="+P+"-"+Q),H.responseType="arraybuffer",H.overrideMimeType&&H.overrideMimeType("text/plain; charset=x-user-defined"),H.send(null),!(H.status>=200&&H.status<300||H.status===304))throw new Error("Couldn't load "+r+". Status: "+H.status);return H.response!==void 0?new Uint8Array(H.response||[]):Ye(H.responseText||"",!0)},q=this;q.setDataGetter(P=>{var Q=P*m,H=(P+1)*m-1;if(H=Math.min(H,S-1),typeof q.chunks[P]>"u"&&(q.chunks[P]=E(Q,H)),typeof q.chunks[P]>"u")throw new Error("doXHR failed!");return q.chunks[P]}),(W||!S)&&(m=S=1,S=this.getter(0).length,m=S,pe("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=S,this._chunkSize=m,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!L)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var c=new s,u={isDevice:!1,contents:c}}else var u={isDevice:!1,url:r};var v=n.createFile(e,t,u,o,a);u.contents?v.contents=u.contents:u.url&&(v.contents=null,v.url=u.url),Object.defineProperties(v,{usedBytes:{get:function(){return this.contents.length}}});var A={},T=Object.keys(v.stream_ops);T.forEach(b=>{var y=v.stream_ops[b];A[b]=(...S)=>(n.forceLoadFile(v),y(...S))});function N(b,y,S,B,X){var W=b.node.contents;if(X>=W.length)return 0;var m=Math.min(W.length-X,B);if(h(m>=0),W.slice)for(var E=0;E(n.forceLoadFile(v),N(b,y,S,B,X)),A.mmap=(b,y,S,B,X)=>{n.forceLoadFile(v);var W=Ct();if(!W)throw new n.ErrnoError(48);return N(b,F,W,y,S),{ptr:W,allocated:!0}},v.stream_ops=A,v},absolutePath(){z("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){z("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){z("FS.createLink has been removed; use FS.symlink instead")},joinPath(){z("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){z("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){z("FS.standardizePath has been removed; use PATH.normalize instead")}},j={DEFAULT_POLLMASK:5,calculateAt(e,t,r){if(C.isAbs(t))return t;var o;if(e===-100)o=n.cwd();else{var a=j.getStreamFromFD(e);o=a.path}if(t.length==0){if(!r)throw new n.ErrnoError(44);return o}return C.join2(o,t)},doStat(e,t,r){var o=e(t);M[r>>2]=o.dev,M[r+4>>2]=o.mode,U[r+8>>2]=o.nlink,M[r+12>>2]=o.uid,M[r+16>>2]=o.gid,M[r+20>>2]=o.rdev,ce[r+24>>3]=BigInt(o.size),M[r+32>>2]=4096,M[r+36>>2]=o.blocks;var a=o.atime.getTime(),s=o.mtime.getTime(),c=o.ctime.getTime();return ce[r+40>>3]=BigInt(Math.floor(a/1e3)),U[r+48>>2]=a%1e3*1e3,ce[r+56>>3]=BigInt(Math.floor(s/1e3)),U[r+64>>2]=s%1e3*1e3,ce[r+72>>3]=BigInt(Math.floor(c/1e3)),U[r+80>>2]=c%1e3*1e3,ce[r+88>>3]=BigInt(o.ino),0},doMsync(e,t,r,o,a){if(!n.isFile(t.node.mode))throw new n.ErrnoError(43);if(o&2)return 0;var s=G.slice(e,e+r);n.msync(t,s,a,r,o)},getStreamFromFD(e){var t=n.getStreamChecked(e);return t},varargs:void 0,getStr(e){var t=fe(e);return t}};function $r(e,t,r){j.varargs=r;try{var o=j.getStreamFromFD(e);switch(t){case 0:{var a=He();if(a<0)return-28;for(;n.streams[a];)a++;var s;return s=n.dupStream(o,a),s.fd}case 1:case 2:return 0;case 3:return o.flags;case 4:{var a=He();return o.flags|=a,0}case 12:{var a=Ne(),c=0;return le[a+c>>1]=2,0}case 13:case 14:return 0}return-28}catch(u){if(typeof n>"u"||u.name!=="ErrnoError")throw u;return-u.errno}}function zr(e,t,r){j.varargs=r;try{var o=j.getStreamFromFD(e);switch(t){case 21509:return o.tty?0:-59;case 21505:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tcgets){var a=o.tty.ops.ioctl_tcgets(o),s=Ne();M[s>>2]=a.c_iflag||0,M[s+4>>2]=a.c_oflag||0,M[s+8>>2]=a.c_cflag||0,M[s+12>>2]=a.c_lflag||0;for(var c=0;c<32;c++)F[s+c+17]=a.c_cc[c]||0;return 0}return 0}case 21510:case 21511:case 21512:return o.tty?0:-59;case 21506:case 21507:case 21508:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tcsets){for(var s=Ne(),u=M[s>>2],v=M[s+4>>2],A=M[s+8>>2],T=M[s+12>>2],N=[],c=0;c<32;c++)N.push(F[s+c+17]);return o.tty.ops.ioctl_tcsets(o.tty,t,{c_iflag:u,c_oflag:v,c_cflag:A,c_lflag:T,c_cc:N})}return 0}case 21519:{if(!o.tty)return-59;var s=Ne();return M[s>>2]=0,0}case 21520:return o.tty?-28:-59;case 21531:{var s=Ne();return n.ioctl(o,t,s)}case 21523:{if(!o.tty)return-59;if(o.tty.ops.ioctl_tiocgwinsz){var b=o.tty.ops.ioctl_tiocgwinsz(o.tty),s=Ne();le[s>>1]=b[0],le[s+2>>1]=b[1]}return 0}case 21524:return o.tty?0:-59;case 21515:return o.tty?0:-59;default:return-28}}catch(y){if(typeof n>"u"||y.name!=="ErrnoError")throw y;return-y.errno}}function Hr(e,t,r,o){j.varargs=o;try{t=j.getStr(t),t=j.calculateAt(e,t);var a=o?He():0;return n.open(t,r,a).fd}catch(s){if(typeof n>"u"||s.name!=="ErrnoError")throw s;return-s.errno}}var qr=e=>{var t=new WebAssembly.Exception(Mt(),[e],{traceStack:!0});throw t.message=ct(t),t},Yr=()=>{z("native code called abort()")},Gr=e=>{z(`Cannot enlarge memory arrays to size ${e} bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value ${F.length}, (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0`)},jr=e=>{G.length,e>>>=0,Gr(e)},mt={},Wr=()=>Ee||"./this.program",xe=()=>{if(!xe.strings){var e=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:e,_:Wr()};for(var r in mt)mt[r]===void 0?delete t[r]:t[r]=mt[r];var o=[];for(var r in t)o.push(`${r}=${t[r]}`);xe.strings=o}return xe.strings},Zr=(e,t)=>{for(var r=0;r{var r=0;return xe().forEach((o,a)=>{var s=t+r;U[e+a*4>>2]=s,Zr(o,s),r+=o.length+1}),0},Xr=(e,t)=>{var r=xe();U[e>>2]=r.length;var o=0;return r.forEach(a=>o+=a.length+1),U[t>>2]=o,0},Rt=0,xt=()=>Or||Rt>0,Kr=e=>{xt()||(i.onExit?.(e),re=!0),ae(e,new Tr(e))},Jr=(e,t)=>{if(An(),xt()&&!t){var r=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=${Rt}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;w(r),x(r)}Kr(e)},Qr=Jr;function en(e){try{var t=j.getStreamFromFD(e);return n.close(t),0}catch(r){if(typeof n>"u"||r.name!=="ErrnoError")throw r;return r.errno}}function tn(e,t){try{var r=0,o=0,a=0,s=j.getStreamFromFD(e),c=s.tty?2:n.isDir(s.mode)?3:n.isLink(s.mode)?7:4;return F[t]=c,le[t+2>>1]=a,ce[t+8>>3]=BigInt(r),ce[t+16>>3]=BigInt(o),0}catch(u){if(typeof n>"u"||u.name!=="ErrnoError")throw u;return u.errno}}var rn=(e,t,r,o)=>{for(var a=0,s=0;s>2],u=U[t+4>>2];t+=8;var v=n.read(e,F,c,u,o);if(v<0)return-1;if(a+=v,v>2]=s,0}catch(c){if(typeof n>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var on=9007199254740992,an=-9007199254740992,sn=e=>eon?NaN:Number(e);function ln(e,t,r,o){t=sn(t);try{if(isNaN(t))return 61;var a=j.getStreamFromFD(e);return n.llseek(a,t,r),ce[o>>3]=BigInt(a.position),a.getdents&&t===0&&r===0&&(a.getdents=null),0}catch(s){if(typeof n>"u"||s.name!=="ErrnoError")throw s;return s.errno}}var cn=(e,t,r,o)=>{for(var a=0,s=0;s>2],u=U[t+4>>2];t+=8;var v=n.write(e,F,c,u,o);if(v<0)return-1;a+=v}return a};function un(e,t,r,o){try{var a=j.getStreamFromFD(e),s=cn(a,t,r);return U[o>>2]=s,0}catch(c){if(typeof n>"u"||c.name!=="ErrnoError")throw c;return c.errno}}var Ge=e=>e%4===0&&(e%100!==0||e%400===0),dn=(e,t)=>{for(var r=0,o=0;o<=t;r+=e[o++]);return r},Ut=[31,29,31,30,31,30,31,31,30,31,30,31],Bt=[31,28,31,30,31,30,31,31,30,31,30,31],fn=(e,t)=>{for(var r=new Date(e.getTime());t>0;){var o=Ge(r.getFullYear()),a=r.getMonth(),s=(o?Ut:Bt)[a];if(t>s-r.getDate())t-=s-r.getDate()+1,r.setDate(1),a<11?r.setMonth(a+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else return r.setDate(r.getDate()+t),r}return r},ht=(e,t)=>{h(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),F.set(e,t)},mn=(e,t,r,o)=>{var a=U[o+40>>2],s={tm_sec:M[o>>2],tm_min:M[o+4>>2],tm_hour:M[o+8>>2],tm_mday:M[o+12>>2],tm_mon:M[o+16>>2],tm_year:M[o+20>>2],tm_wday:M[o+24>>2],tm_yday:M[o+28>>2],tm_isdst:M[o+32>>2],tm_gmtoff:M[o+36>>2],tm_zone:a?fe(a):""},c=fe(r),u={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var v in u)c=c.replace(new RegExp(v,"g"),u[v]);var A=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],T=["January","February","March","April","May","June","July","August","September","October","November","December"];function N(m,E,q){for(var P=typeof m=="number"?m.toString():m||"";P.length0?1:0}var P;return(P=q(m.getFullYear()-E.getFullYear()))===0&&(P=q(m.getMonth()-E.getMonth()))===0&&(P=q(m.getDate()-E.getDate())),P}function S(m){switch(m.getDay()){case 0:return new Date(m.getFullYear()-1,11,29);case 1:return m;case 2:return new Date(m.getFullYear(),0,3);case 3:return new Date(m.getFullYear(),0,2);case 4:return new Date(m.getFullYear(),0,1);case 5:return new Date(m.getFullYear()-1,11,31);case 6:return new Date(m.getFullYear()-1,11,30)}}function B(m){var E=fn(new Date(m.tm_year+1900,0,1),m.tm_yday),q=new Date(E.getFullYear(),0,4),P=new Date(E.getFullYear()+1,0,4),Q=S(q),H=S(P);return y(Q,E)<=0?y(H,E)<=0?E.getFullYear()+1:E.getFullYear():E.getFullYear()-1}var X={"%a":m=>A[m.tm_wday].substring(0,3),"%A":m=>A[m.tm_wday],"%b":m=>T[m.tm_mon].substring(0,3),"%B":m=>T[m.tm_mon],"%C":m=>{var E=m.tm_year+1900;return b(E/100|0,2)},"%d":m=>b(m.tm_mday,2),"%e":m=>N(m.tm_mday,2," "),"%g":m=>B(m).toString().substring(2),"%G":B,"%H":m=>b(m.tm_hour,2),"%I":m=>{var E=m.tm_hour;return E==0?E=12:E>12&&(E-=12),b(E,2)},"%j":m=>b(m.tm_mday+dn(Ge(m.tm_year+1900)?Ut:Bt,m.tm_mon-1),3),"%m":m=>b(m.tm_mon+1,2),"%M":m=>b(m.tm_min,2),"%n":()=>` +`,"%p":m=>m.tm_hour>=0&&m.tm_hour<12?"AM":"PM","%S":m=>b(m.tm_sec,2),"%t":()=>" ","%u":m=>m.tm_wday||7,"%U":m=>{var E=m.tm_yday+7-m.tm_wday;return b(Math.floor(E/7),2)},"%V":m=>{var E=Math.floor((m.tm_yday+7-(m.tm_wday+6)%7)/7);if((m.tm_wday+371-m.tm_yday-2)%7<=2&&E++,E){if(E==53){var P=(m.tm_wday+371-m.tm_yday)%7;P!=4&&(P!=3||!Ge(m.tm_year))&&(E=1)}}else{E=52;var q=(m.tm_wday+7-m.tm_yday-1)%7;(q==4||q==5&&Ge(m.tm_year%400-1))&&E++}return b(E,2)},"%w":m=>m.tm_wday,"%W":m=>{var E=m.tm_yday+7-(m.tm_wday+6)%7;return b(Math.floor(E/7),2)},"%y":m=>(m.tm_year+1900).toString().substring(2),"%Y":m=>m.tm_year+1900,"%z":m=>{var E=m.tm_gmtoff,q=E>=0;return E=Math.abs(E)/60,E=E/60*100+E%60,(q?"+":"-")+("0000"+E).slice(-4)},"%Z":m=>m.tm_zone,"%%":()=>"%"};c=c.replace(/%%/g,"\0\0");for(var v in X)c.includes(v)&&(c=c.replace(new RegExp(v,"g"),X[v](s)));c=c.replace(/\0\0/g,"%");var W=Ye(c,!1);return W.length>t?0:(ht(W,e),W.length-1)},hn=(e,t,r,o,a)=>mn(e,t,r,o),pn=e=>{var t=i["_"+e];return h(t,"Cannot call unknown function "+e+", make sure it is exported"),t},vn=(e,t,r)=>(h(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),qe(e,G,t,r)),$t=e=>{var t=dt(e)+1,r=Pe(t);return vn(e,r,t),r},zt=(e,t,r,o,a)=>{var s={string:S=>{var B=0;return S!=null&&S!==0&&(B=$t(S)),B},array:S=>{var B=Pe(S.length);return ht(S,B),B}};function c(S){return t==="string"?fe(S):t==="boolean"?!!S:S}var u=pn(e),v=[],A=0;if(h(t!=="array",'Return type should not be "array".'),o)for(var T=0;T(...a)=>zt(e,t,r,a);n.createPreloadedFile=xr,n.staticInit();function En(){kr("fetchSettings")}var Ht={__assert_fail:Mr,__syscall_fcntl64:$r,__syscall_ioctl:zr,__syscall_openat:Hr,__throw_exception_with_stack_trace:qr,abort:Yr,emscripten_resize_heap:jr,environ_get:Vr,environ_sizes_get:Xr,exit:Qr,fd_close:en,fd_fdstat_get:tn,fd_read:nn,fd_seek:ln,fd_write:un,strftime_l:hn},V=br();i._assertion=D("assertion",0),i._Session__create__=D("Session__create__",2),i._Session__destroy__=D("Session__destroy__",1),i._Session__params_ref=D("Session__params_ref",1),i._Session__module_ref=D("Session__module_ref",1),i._Session__device_ref=D("Session__device_ref",1),i._Session_run=D("Session_run",1),i._Session_dumpBuffers=D("Session_dumpBuffers",1),i._Session_start=D("Session_start",2),i._Session_printContext=D("Session_printContext",1),i._Session_step=D("Session_step",3),i._Session_continue=D("Session_continue",2),i._Session_print=D("Session_print",3),i._Session_switch=D("Session_switch",3),i._validate_wasm=D("validate_wasm",1),i._test_entry=D("test_entry",3),i._test_entry_no_tcf=D("test_entry_no_tcf",1),i._run_wasm=D("run_wasm",2),i._debug_wasm=D("debug_wasm",2),i._Session_fetch_shrubbery=D("Session_fetch_shrubbery",2),i._exception=D("exception",0);var qt=D("fflush",1),Yt=i._free=D("free",1);i._malloc=D("malloc",1);var Gt=()=>(Gt=V.__trap)(),jt=()=>(jt=V.emscripten_stack_init)(),pt=()=>(pt=V.emscripten_stack_get_end)(),Wt=e=>(Wt=V._emscripten_stack_restore)(e),Zt=e=>(Zt=V._emscripten_stack_alloc)(e),Vt=()=>(Vt=V.emscripten_stack_get_current)(),wn=D("__cxa_decrement_exception_refcount",1),yn=D("__thrown_object_from_unwind_exception",1),_n=D("__get_exception_message",3);i.wasmMemory=se,i.wasmExports=V,i.stackSave=st,i.stackRestore=lt,i.stackAlloc=Pe,i.ccall=zt,i.cwrap=gn,i.UTF8ArrayToString=ke,i.stringToUTF8Array=qe,i.stringToUTF8OnStack=$t,i.writeArrayToMemory=ht,i.decrementExceptionRefcount=Fr,i.getExceptionMessage=ct;var Sn=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getTempRet0","setTempRet0","growMemory","ydayFromDate","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","emscriptenLog","readEmAsmArgs","jstoi_q","listenOnce","autoResumeAudioContext","getDynCaller","dynCall","handleException","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asmjsMangle","HandleAllocator","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","safeSetTimeout","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","Browser_asyncPrepareDataCounter","setMainLoop","getSocketFromFD","getSocketAddress","FS_unlink","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","setErrNo","demangle","stackTrace"];Sn.forEach(Ar);var bn=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","addRunDependency","removeRunDependency","FS_createFolder","FS_createPath","FS_createLazyFile","FS_createLink","FS_createDevice","FS_readFile","out","err","callMain","abort","writeStackCookie","checkStackCookie","MAX_INT53","MIN_INT53","bigintToI53Checked","ptrToString","zeroMemory","exitJS","getHeapMax","abortOnCannotGrowMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","arraySum","addDays","ERRNO_CODES","ERRNO_MESSAGES","DNS","Protocols","Sockets","initRandomFill","randomFill","timers","warnOnce","readEmAsmArgsArray","jstoi_s","getExecutableName","keepRuntimeAlive","asyncLoad","alignMemory","mmapAlloc","wasmTable","noExitRuntime","getCFunc","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ToString","stringToUTF8","lengthBytesUTF8","intArrayFromString","stringToAscii","UTF16Decoder","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","getEnvStrings","doReadv","doWritev","promiseMap","getExceptionMessageCommon","getCppExceptionTag","getCppExceptionThrownObjectFromWebAssemblyException","incrementExceptionRefcount","Browser","getPreloadedImageData__data","wget","SYSCALLS","preloadPlugins","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","FS","FS_createDataFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack"];bn.forEach(Ot);var je;Ce=function e(){je||Xt(),je||(Ce=e)};function kn(){jt(),fr()}function Xt(){if(Se>0||(kn(),mr(),Se>0))return;function e(){je||(je=!0,i.calledRun=!0,!re&&(hr(),g(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),h(!i._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),pr()))}i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),e()},1)):e(),nt()}function An(){var e=pe,t=x,r=!1;pe=x=o=>{r=!0};try{qt(0),["stdout","stderr"].forEach(function(o){var a=n.analyzePath("/dev/"+o);if(a){var s=a.object,c=s.rdev,u=ge.ttys[c];u?.output?.length&&(r=!0)}})}catch{}pe=e,x=t,r&&ve("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.")}if(i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();Xt(),f=_;for(const e of Object.keys(i))e in l||Object.defineProperty(l,e,{configurable:!0,get(){z(`Access to module property ('${e}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return f}})();class Xn extends HTMLElement{constructor(){super(),this._p=new Promise((l,f)=>{this._resolve=l})}get connected(){return this._p}connectedCallback(){this.attachShadow({mode:"open",...this.attributes}).append(...this.childNodes),this._resolve()}_p;_resolve}customElements.define("shadow-root",Xn);const R=document.getElementById("talvos"),ee=R.querySelector("output.stdio")||{},K=R.querySelector("output.error")||{};var Kn={print:function(d){ee.value+=d+` +`},printErr:function(d){ee.value+=d+` +`}};window.addEventListener("error",d=>{K.value=""+d.message});window.addEventListener("unhandledrejection",function(d){K.value=""+d.reason});const Ue=new Promise(async(d,l)=>{const f=document.querySelectorAll("#talvos shadow-root");await Promise.all([...f].map(i=>i.connected));for(const i of f){const g=i.shadowRoot.querySelector("svg.vis0");if(g){d(g);return}}l("el not found")}),[gt,Jn]=(()=>{function*d(...p){const L=p.map(O=>O[Symbol.iterator]());let I=L.map(O=>O.next());for(;I.every(({done:O})=>!O);)yield I.map(({value:O})=>O),I=L.map(O=>O.next())}const l=async()=>{(await Ue).querySelectorAll(".lane").forEach(p=>{p.classList.remove("disabled","selected"),p.dataset.state="inactive",delete p.dataset.logCoords})};document.querySelector("#talvos button.stop").addEventListener("click",l),document.querySelector("#talvos button.continue").addEventListener("click",()=>setTimeout(l,0)),document.querySelector("#talvos button.run").addEventListener("click",l);function w(p){switch(p){case ne.Active:return"active";case ne.Inactive:return"inactive";case ne.AtBarrier:return"at-barrier";case ne.AtBreakpoint:return"at-breakpoint";case ne.AtAssert:return"at-assert";case ne.AtException:return"at-exception";case ne.NotLaunched:return"not-launched";case ne.Exited:return"exited";case ne.UNKNOWN:return"unkown"}}async function _(p){console.assert(""+p.Cores==(await Ue).dataset.cores),console.assert(""+p.Lanes==(await Ue).dataset.lanes);for(const[L,I,O]of d(function*(){let Y=0;for(;;)yield Y++}(),(await Ue).querySelectorAll("g > .lane"),p.LaneStates))console.assert(`{ ${O.PhyCoord.Core}, ${O.PhyCoord.Lane} }`==I.dataset.phyCoords),I.dataset.state=w(O.State),I.dataset.logCoords=`{ 0, (${O.LogCoord.X},${O.LogCoord.Y},${O.LogCoord.Z}) }`,I.classList.toggle("selected",p.SteppedLanes.has(L))}return[async p=>{let L=[];for(const I of[_])try{I(p)}catch(O){L.push(O)}if(L.length>0)throw L},l]})(),lr=document.querySelector("#talvos section.buffers");var Et={};function cr(d,l){lr.innerHTML="";const f=d.GlobalMemory,i=d.PipelineExecutor.Objects;for(const _ of l.Buffers){const p=document.createElement("figure"),L=document.createElement("figcaption");L.innerText=`Buffer '${_.Name.deref()?.asString()??""}' (${_.Size} bytes):'`,p.appendChild(L);const I=document.createElement("ol"),O=i.get(_.Id).Data.data.getBigUint64(0,Me),Y=f.deref(O,64),Te=4,Ee=$=>Y.data.getUint32($,Me),ae=Et["0x"+O.toString(16)]??[];for(var g=[],w=0;w<=15;w++){const $=document.createElement("li");$.innerText=g[w]=""+Ee(w*Te),w in ae&&ae[w]!=g[w]&&($.dataset.prev=ae[w]),I.appendChild($)}Et["0x"+O.toString(16)]=g,p.appendChild(I),lr.appendChild(p)}}const Oe=document.querySelector("#talvos .controls select");Oe.addEventListener("input",()=>{switch(Oe.value){case"v0":case"v1":document.querySelectorAll(`#talvos > .vis.${Oe.value}`).forEach(l=>{l.classList.remove("hidden")}),document.querySelectorAll(`#talvos > .vis:not(.${Oe.value})`).forEach(l=>{l.classList.add("hidden")});const d=Oe.value=="v1";document.querySelector("#talvos").classList.toggle("vis-wip",d);break;default:throw new Error(`unknown vis: ${Oe.value}`)}});const[Qn,eo,to,ro,{Session:et}]=function(d){return[d.then(l=>l.cwrap("validate_wasm","boolean",["string"])),d.then(l=>l.cwrap("exception",void 0,[])),d.then(l=>l.cwrap("assertion",void 0,[])),d.then(l=>l.getExceptionMessage),(()=>{var l=d.then(({wasmExports:{Session__create__:f,Session__destroy__:i,Session__params_ref:g,Session__module_ref:w,Session__device_ref:_,Session_run:p,Session_dumpBuffers:L,Session_start:I,Session_step:O,Session_switch:Y,Session_print:Te,Session_continue:Ee,Session_printContext:ae,Session_fetch_shrubbery:$},stackAlloc:rt,stackSave:ie,stackRestore:we,stringToUTF8OnStack:ye,HEAP32:Be,wasmMemory:te,_malloc:Ie,_free:De})=>{function pe(re){const h=Ie(re),F=te.buffer,G=new J(F,h,re);return[G,()=>De(G.addr)]}function x(re){const h=re.map(ye),F=rt(h.length);return h.forEach((G,le)=>{Be[F+le*4>>2]=G}),[h.length,F]}const _e=4096;class se{ptr;arena;lastOp;laneMask;params;module;device;static bind(h){try{var F=Object.create(this.prototype);F.ptr=h,F.arena=new Pn(...pe(_e)),F.lastOp=new Z(F.arena.alloc(Z.SIZE)),F.laneMask=new Ve(void 0,{data:F.arena.alloc(8).data}),F.params=new rr(new J(te.buffer,g(h),rr.SIZE)),F.module=new or(new J(te.buffer,w(h),or.SIZE)),F.device=new sr(new J(te.buffer,_(h),sr.SIZE))}catch(G){throw i(h),F?.arena&&Le(F.arena),G}return F}constructor(h){const F=ie(),[G,le]=[h,"EXEC"].map(ye),M=f(G,le);return we(F),se.bind(M)}run(){p(this.ptr)}dumpBuffers(){L(this.ptr)}start(){Et={},I(this.ptr,this.lastOp.ptr.asRef()),gt(this.lastOp),cr(this.device,this.module)}async step(){this.laneMask.clear(),(await Ue).querySelectorAll(".lane").forEach((F,G)=>{F.classList.contains("selected")&&this.laneMask.add(G)});var h=O(this.ptr,this.laneMask.asRef(),this.lastOp.asRef());return gt(this.lastOp),cr(this.device,this.module),h>0&&Jn(),h}switch(h){const F=ie();Y(this.ptr,...x(["switch",...h])),we(F)}print(h){const F=ie();Te(this.ptr,...x(["print",...h])),we(F)}continue(){Ee(this.ptr,this.lastOp.ptr.asRef()),gt(this.lastOp)}printContext(){ae(this.ptr)}fetchShrubbery(){var h=this.arena.alloc(8);return $(this.ptr,h.asRef()),new Ve(void 0,{data:h.data})}__destroy__(){console.log("Session.destroy..."),i(this.ptr),this.ptr=0,Le(this.arena)}}return{Session:se}});return{Session:l.then(f=>f.Session)}})()]}(Vn(Kn));function Le(d){d.__destroy__()}function tt(d,l){return ee.value="",K.value="",R.querySelector("output.timing").value="...",R.querySelectorAll("button.exec").forEach(f=>f.disabled=!0),l=l??window.performance.mark("talvos"),(async()=>d())().catch(async f=>{var i;if(f instanceof WebAssembly.Exception){var g;[g,i]=(await ro)(f),i=i||`of type ${g}`,console.error(f.stack)}else console.error(`in ${l.name}:`,f),i=""+f;K.value=i}).finally(()=>{const f=window.performance.measure(l.name,l.name);R.querySelector("output.timing").value=`done in ${f.duration}ms`,R.querySelectorAll("button.exec").forEach(i=>i.removeAttribute("disabled"))})}R.querySelector("button.validate").onclick=async function(){const d=R.querySelector(".module").value,l=window.performance.mark("validate_wasm",{detail:{text:d}}),f=await tt(async()=>(await Qn)(d),l);R.querySelector("output.stdio").value+=f?"ok!":"not ok :("};R.querySelector("button.assertion").onclick=async()=>tt(await to);R.querySelector("button.exception").onclick=async()=>tt(await eo);R.querySelector("button.shrubbery").onclick=async()=>{const d=(await et).bind(828927560446);try{const l=d.fetchShrubbery();console.log(l)}finally{Le(d.arena)}};R.querySelector("button.run").onclick=async function(){const d=R.querySelector(".module").value,l=window.performance.mark("run_wasm",{detail:{text:d}});tt(async()=>{const f=new(await et)(d),i=R.querySelector('select[name="entry"]');f.params.EntryName=i.selectedOptions.item(0)?.value??"main";try{f.run(),f.dumpBuffers()}finally{Le(f)}},l)};R.querySelector("button.debug").onclick=async function(){ee.value="",K.value="",R.querySelector("output.timing").value="...",R.querySelectorAll("button.exec").forEach(_=>_.disabled=!0);const d=R.querySelector(".module").value,l=window.performance.mark("debug",{detail:{text:d}}),f=new(await et)(d);f.params.EntryName=ur.selectedOptions.item(0)?.value??"main";const i=R.querySelector(".debugger");function g(){i.hidden=!0,i.querySelectorAll("button").forEach(p=>p.onclick=null),R.querySelectorAll("button.exec").forEach(p=>p.removeAttribute("disabled")),Le(f);const _=window.performance.measure(l.name,l.name);R.querySelector("output.timing").value=`done in ${_.duration}ms`}try{f.start(),f.printContext()}catch(_){throw g(),_}const w=1;i.querySelector("button.step").onclick=async function(){ee.value="",K.value="";try{await f.step()==w&&g(),f.printContext()}catch(_){throw g(),_}},i.querySelector("button.switch").onclick=function(){const _=prompt("Usage: switch: X [Y [Z]]","X [Y [Z]]");if(_==null)return;const p=_.split(/\s+/);f.switch(p)},i.querySelector("button.print").onclick=function(){const _=prompt("Usage: print: %","%15");if(_==null)return;const p=_.split(/\s+/);f.print(p)},i.querySelector("button.stop").onclick=g,i.querySelector("button.continue").onclick=function(){ee.value="",K.value="";try{f.continue()}finally{g()}},i.hidden=!1};const ur=R.querySelector('select[name="entry"]');setTimeout(async function(){const l=ee.value,f=K.value;ee.value="",K.value="";const i=R.querySelector(".module").value,g=new(await et)(i);try{console.log([...g.module.EntryPoints].map(w=>w.Name.asString())),ur.innerHTML=[...g.module.EntryPoints].map(w=>``).join("")}finally{Le(g)}ee.value&&console.log(ee.value),ee.value=l,K.value&&console.error(K.value),K.value=f},0); diff --git a/dist/docs/glossary/index.html b/dist/docs/glossary/index.html index 93efb01..e0bfc4a 100644 --- a/dist/docs/glossary/index.html +++ b/dist/docs/glossary/index.html @@ -33,6 +33,7 @@

Affordance is what the environment offers the individual that they can readily perceive.

via https://en.wikipedia.org/wiki/Affordance

Concurrent::

+

Composable independently executable work, i.e. work that is safe to re-order or overlap in execution without changing the outcome.

See also: parallel; in our usage, concurrency permits simple parallelism, but does not require or even imply it.

NB: this disagrees with CUDA’s less precise terminology, where they often use “concurrent” and “concurrency” to mean “parallel” and “parallelism,” e.g.

@@ -46,6 +47,12 @@

Each device has its own default stream […], so commands issued to the default stream of a device may execute out of order or concurrently with respect to commands issued to the default stream of any other device.

We might prefer to say that the fact that different devices have distinct default streams implies work submitted to both queues will be treated concurrently (i.e. as if it were safe to compose without regard to order or overlap) and therefore may run out of order or in parallel with each other.

+

Load-Store Architecture::

+

A computer architecture where data memory accesses are explicitly restricted to specific load and store instructions, and most operations are presumed to operate solely on registers. Load-store architectures are generally simpler to implement and scale, and vector processors (such as GPUs) are able to side-step many of the downsides by explicitly batching memory accesses in the form of strided vector loads.

+ +

SPIR-V models a load-store architecture, with OpLoad/OpStore operations that offer indirect access to memory, vs. operations like OpAdd that operate directly over previous result values.

+

Compare with: register-memory architectures, where most instructions may operate on either memory or registers in either their source or destination positions.

+

See also: RISC architecture, as a distinguishing attribute of many RISC processors is that they have relatively few implicit memory access operations compared to their CISC counterparts.

Parallel::

Simultaneous execution of work.

NB: the work may be inter-dependent, i.e. it may not produce the same result (or perhaps even complete at all) if the work is re-ordered or the overlap changes. For example, a process A that launches B, sends a signal, and then waits for B to exit will deadlock if B also waits for that signal and no parallelism exists.

diff --git a/dist/index.html b/dist/index.html index c834c55..65afbac 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,4 +1,4 @@ - gpgpu playground + gpgpu playground
-->
\ No newline at end of file diff --git a/dist/pagefind/fragment/en_61ebff9.pf_fragment b/dist/pagefind/fragment/en_61ebff9.pf_fragment new file mode 100644 index 0000000000000000000000000000000000000000..da89676f5252cd8ae01c808701be0dff5e64c08b GIT binary patch literal 1977 zcmV;q2S)fGiwFP!00002|BYBpizCSq{VR!1GoY4iuzk=R%uL(6G#K}I+iM?|Wk^*; zNl8~#)@Ei&Erx;q5xyAgtAAMk62BK&C8gTyVPWWz@-yPaix-g^>`ofj*PrUD{=67N zyVxw&wXfoO*ZLT3IIS1UMdkY>eZt(g)9A{)ZyF!!b^g!xm25WV^2NAlj(eL-+KZ9? z;DYZv9ASLZNQgR&Yu&-sqiyjuFFl#c_9lp}U3)Tvgi72&R_5TW*{3wb&3Y~U>gXQb zAhokAA9ibgE9_XATi;h>2)GV5-TH3u(QaG4PzJ%DKH+qEl4?vkarEJFY1|5X`7xUV z529_vBoBjbaJU5H@$Vp^wF3^DPH?_AN0;_~Os3k~e&_m~`iFtacR2Gw#Mn0ajTvmP zZ7c0NZues_V?+R!rkX9T)a%YAT<*F7w#{2y?3QMWJ8Cb{^gh9=pGFsiM#({X!}TZQ z(#rh#!v+?>f!g8xAlN_)&F%Mpc>nVJ&uChS(F{Q<7vUf;?0xHZrzL_WI8sC58w4E| zig|hd*V)4K^89aO`}%6II&l<8b%OX|X12OmTsp#GS?yNluX>%MLuNN(1&9WZnhPSS zfO#wFD6q-)C)1DJmJw;-Bss;EX;12yZR@MYXt2SWS`Ln!xXXB7`Pz+ba>N+cU2Ua# z#cl-eXipJ_05SkqxQ&oVWr>kO7KAHk%Gfi8uNnMIH^MjW!8 zA2nBIwyn&4pE-p;!GLA;@;WLPlxX~ns?E2JIGmp2`bgdkt*v0d_Vg+)*!qsw{Cr4s zp|ledFK%P? zYM;8+{NCIL)r#my8O`ua2zjy;i;elCt@bl(_cj_O;jzb1W5IS46F}(94=>OE`EhBY zC!`(Ngq1OlFdhM65MHeZ7UyJOtTPlUamvzJ94}}=iImP@!5~%Qxxf4>W`+7SXYb!} zt=sJrHLJ8>X?mg5NG;koQKwa1aV%0t3>k+oFo5qdqcCpl9XUKz}p;2qPcQR$$l;nL3T(2&b%%tZ&d=6f{mY2DvbUAKnxkB|tw0EzNWCKx&GaN$+c$EVLUb1o5eWT7=WgR7hUy zDn~aF$rM~Qp~I-U##N@pm1=s_Yh903W5qOyOC9e#G{>W=Ssm14sgh%tPs&q(%)_M< zbr&EZTxb&}hw{m#+4+>6^g<*~Q>|29=qGJ8)Tj!QmF+lSEAT^x(LawSUSG)- zFHTc`Is-7B>7YGVp2Z&*OfE27Q&Yx!^~oUNoSs~EUfC<5D_U3nohM)|(He1w= zR!!cPofqDQ6v>Ub*9QbHgs66uY`!**8qM;RMXU;(UA*90*4dZme@r`;|EJi_UCC8r z4T#QtbuD}hUG>#>^otc5nlaj`Y(;-l(fQYp9E5hKkAv(=(E}GA9WAl-BiohN&=@FB z&qSFhGS3GUYqaS?QR}3z^eU|1_^Its&Z_0LUTRa ztqyfAsyz|Hqg+1%@T+!R$My3rBNPlm|=iG%4^Kf@7iOQ+J|ge7l^lO?(h= zCn~HylyXBI#_g7NC_ZHtgWGuY!WaBf0aNNvDx{0e?|$>!<)U#dOUGjK`O9+ANwWB~ zNT}LU{F<@A9DX|3doKLp^Fne5fff5-<4{-Q)2HMId`|LI{tki>h>v=(*!=3tk6-=^ Ljxh^8Q4s(D!fxsdMg@6L$5Jgc>yKJ}C z?socTW=Bz^eF!c{aOJ`FN%*STp79J2A+2WZ{;m4ztFOwVZmF@ZeqWpV<0^-KwOws$ zZ{nuyeT+IBH>>r^c$df}%zZzNR_b}v_)u@kKkW={x9a?&Y*dF%CzU!<wG9GM#p=E$Q!Y9Pc9Gqcr;#Y;zcn5wo?Kg)HN9a3$^3J?t*HD^T90_Gj11HmTkj>_d> z#}R4ZBy);arjDtjcD*-uQDK8tHSH~P;#I->!q*}9$uh>U?qVyOx7dx~9rQ865I_dt z7H%UXWHe(WkOkruY)W<h)z*&M2|*Gpf4WmT@?Hj_V`yX6&_r0lVW>T(I>SU-R!Fk%iPxOgy`d)st)3 zq4(PMl2iZ!h#PPZnJLD1I@AY^<{9A_12z z+~tThx~@6p1|Miio226%^SFu8G~CG|rp>md4U5)&)uo|V->BC?v?5xj zjAVEr1l?;Ei>>-jn{H-pr=t=Q9vp@m4YsS80K%Z&K0f^QZmptcNC&V9D`U(s9s%JX zT&)Kdr)1z*7bryHgr&1Mp3#C537x@$kxb%q|Nm8-72?;Ny}#mG+jfaHt0}aJFk>zo zs?mG}zn#UP?2Uk7Pb`E93`keEMG;NQ`p9V-^A6IRifucXpgv^EG_eRV=1n|(;pZ1Z zQU<#L-s-?4nk&bY?56?|s6`U+%ymI|A`&1JZ2Xi`A-jJ-3?j|cDhLyYT;QtIkJAk5 z-W$vErXBel7ZN%t(p)1-?VI!0BGtpqsYuT0SEP$+4tmzvNY=x}L6V%&`~rrdZgqN$ zr53T@J%J$z2`qZT*qm+yZRd&#EGKc8>#CGcij{ilPrOEs^VNpM_j!qPud{=SM0E=q z6SGRAVzy5A>lsLtWzGC&`MG7t>7K*Gp{$|xtn_Twt<>hlS~_;m z2^KXEj%zd}Gz%rx1RDIFpD)Dl)hxiQvRddeRlX_i@jCG9iO|wd%q3!ORwM+=po>EH z_Ks2D1Y62A8cJ5Rt$Hn82QEYnL4NAMEy_WnxopiCs|C(Bo^f3!=i|d~(~k9jWaunq z7u6ULor-Zy+(BIw<5%n#r**U`3s8~8^v1CB*PRhU+e$}KTv-&(g+~X?*!s*GcMXk7 zIXF&~i6ZknCJi?lY;Z)Qxv=yitS|jkE4co7hpbN01eX2|V}(H8HJ|JCPE_Tw*$K(@ zVz)Rn*eLcy2#;`${Q|OxpXfO(5f5hHd3xb!QPMKF^iGljA0C$b3hs|5dd4T~`P#%? z1n)$XCf!x3!XfW=Y=_{p%wljGoicpE=M7A$-y3eZR@<+he!X5bwucbL)%N43^=hD` z@w7@d^|bf|T44^~8=dEcZ$GXGd@UbI-IqAj)_8iK{D|j7_sfqbj6i(EgVpxwr+1(J M2HRG)4u%Z?00EK`xc~qF diff --git a/dist/pagefind/index/en_bf77f48.pf_index b/dist/pagefind/index/en_bf77f48.pf_index new file mode 100644 index 0000000000000000000000000000000000000000..d91f796b69a89554e09e752453039e1460eef8b0 GIT binary patch literal 8777 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 P@qNjBtXjk>8E6dvmWM5} diff --git a/dist/pagefind/pagefind.en_8a6591f631.pf_meta b/dist/pagefind/pagefind.en_8a6591f631.pf_meta new file mode 100644 index 0000000000000000000000000000000000000000..e362d0ada83d8de7dc12bc507f2acc8e7c687a6f GIT binary patch literal 111 zcmb2|=3oE;rvIuZPx3Y>2sm6k62WpUA!*JIhN}}8(|Y7OR3A7=hNZHHB^`PEyZ&fr z1>e1j=faN6zSZxzS&f+@(_%$6Co^nyik|wle&X?SS&EwyByN0FdH43fHQSHB7Nu(L P3^&}znIg448E6dvagHt? literal 0 HcmV?d00001 diff --git a/dist/styles/index.css b/dist/styles/index.css index 8a05c0e..8713af8 100644 --- a/dist/styles/index.css +++ b/dist/styles/index.css @@ -21,15 +21,24 @@ textarea { width : 860px; height : 500px; } -#controls { +.vis-wip textarea { + height: 220px; + width : 110px; +} +.controls { text-align : center; background : #ccc; padding : .5em 0; } -#controls button { +.controls select { + position: absolute; + margin : 0 1em; + left: 0; +} +.controls button { margin : 0 1em; } -#controls div { +.controls div { padding-top: 0.5em; } output.stdio { @@ -88,3 +97,9 @@ nav li:not(:last-child) a::after { content: " (was: " attr(data-prev) ")"; color: lightslategrey; } +.hidden { + display: none; +} +shadow-root:not(:defined) { + display: none; +}